Мы в твиттере Наша страничка на FaceBook! Сообщество вебмастеров в VK Мы в телеграме!

PW — всё для вебмастера » Всё для DataLife Engine » DLE хаки » Вторая кнопка Обсудить на форуме


Вторая кнопка Обсудить на форуме

Данный материал предоставлен сайтом ProWebber.ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Вторая кнопка Обсудить на форуме.

Вторая кнопка Обсудить на форуме


Добавляем в BulletEnergy 1.3 вторую кнопку "Обсудить на форуме"

Как то мне на сайте нужно была возможность, чтобы в новости было две кнопки "Обсудить на форуме", одна из которых ссылалась бы в одни категории обсуждения со своим префиксом, другая же в категории информативные со своим префиксом, но уже с другим наклоном (будь то ГИД, ГАЙД или полезные советы). То есть Создал 1 раздел с форумом и его подфорумами и к нему привязал одну кнопку "Обсудить", далее создал 2 раздел с форумом и его подфорумами, а к нему уже привязал вторую кнопку "Обсудить", тем самым получив два разных направления обсуждения новостей.
Может есть не которые недочеты в этом хаке, так как искал сам готовое решение, но в итоге решил сделать сам, в принципе все работает хорошо, чего я и добился, то и получилось. Может кому не будь такая вещь тоже будет по нраву.

Итак, не забываем сделать резервную копию редактируемых файлов и своей Базы Данных
Скачиваем архив предложенный ниже закидываем по папкам и приступаем.

В Базе Данных делаем запрос

ALTER TABLE dle_post ADD topic_id2 int(11) unsigned DEFAULT '0';
ALTER TABLE dle_be_attachment ADD topic_id2 int(11) unsigned NOT NULL DEFAULT '0';


Идем по пути:
engine\bullet_energy\classes\admin.class.php
Ищем:
        if($row['action'] == 'discussion') {
          $row['param'] = unserialize($row['param']);
        }

Ниже вставляем:
        if($row['action'] == 'discussion2') {
          $row['param'] = unserialize($row['param']);
        }

Ищем такие строки:
    } elseif(in_array(self::$action['get'], array(
      'category',
      'questions',
      'advertising',
      'trophies',
      'discussion',

Ниже вставляем:
      'discussion2',

Ищем:
      $menu .= '<li><a class="template" href="' . self::$path . '?mod=bullet_energy&action=discussion">' . self::$bullet_energy_lang['setting_300'] . '</a></li>';

Ниже вставляем:
      $menu .= '<li><a class="template" href="' . self::$path . '?mod=bullet_energy&action=discussion2">' . self::$bullet_energy_lang['setting_300'] . '</a></li>';


Идем по пути:
engine\bullet_energy\classes\link.class.php
Ищем:

  public function discussion($id = 0)
  {
    if($this->cpu) {
      $result = "{$this->root}{$this->router['main']}/discussion-{$id}{$this->endLinckSymbol}";
    } else {
      $result = "{$this->root}?do={$this->router['main']}&action=discussion&id={$id}";
    }
    return $result;
  }

Ниже вставляем:

  public function discussion2($id = 0)
  {
    if($this->cpu) {
      $result = "{$this->root}{$this->router['main']}/discussion2-{$id}{$this->endLinckSymbol}";
    } else {
      $result = "{$this->root}?do={$this->router['main']}&action=discussion2&id={$id}";
    }
    return $result;
  }


Идем по пути:
engine\bullet_energy\action\admin\references.php
Ищем:

    $rewRulle[] = 'RewriteRule ^' . parent::$bulletRouter['main'] . '/discussion-([0-9]+)(/?)+$ index.php?do=' . parent::$bulletRouter['main'] . '&action=discussion&id=$1 [L]';

Ниже вставляем:

    $rewRulle[] = 'RewriteRule ^' . parent::$bulletRouter['main'] . '/discussion2-([0-9]+)(/?)+$ index.php?do=' . parent::$bulletRouter['main'] . '&action=discussion2&id=$1 [L]';


[i][b]Идем по пути:

engine\bullet_energy\api\bullet_api.class.php
Ищем:

          if($row['action'] == 'discussion') {
            $row['param'] = unserialize($row['param']);
          }

Ниже вставляем:

          if($row['action'] == 'discussion2') {
            $row['param'] = unserialize($row['param']);
          }

Ищем:

    public function setLinckDiscus(array $data = array())

Выше вставляем:

    public function setLinckDiscus2(array $data = array())
    {  
      $this->cache['template'] = $this->getCache('template');
      
      if(!is_array($this->cache['template'])) {
        $this->_setCache();
        return $this->setLinckDiscus2($data);
      }    

      if($this->member_id['user_group'] == 0 OR !isset($this->cache['template']['discussion2']['tree'][$data['tree']])) {
        return false;
      }
      if(empty($data['id'])) {
        return '<a href="' . $this->link->discussion2($data['idPost']) . '">' . $this->bullet_energy_lang['topic_148_1'][0] . '</a>';
      } else {
        $row = $this->db->super_query("SELECT reply_count, title FROM " . PREFIX . "_be_topic WHERE id = {$data['id']}");
            
        if ( !$row ) {
        $this->db->query("UPDATE " . PREFIX . "_post SET topic_id2 = 0 WHERE id = {$data['idPost']}");
        return '<a href="' . $this->link->discussion2($data['idPost']) . '">' . $this->bullet_energy_lang['topic_148_1'][0] . '</a>';
        }
        else return '<a href="' . $this->link->topic_linck($data['id'], totranslit($row['title'], true, true)) . '">' . $this->bullet_energy_lang['topic_148_1'][1] . '(' . $this->bullet_energy_lang['topic_148'][2] . $row['reply_count'] . ')' . '</a>';
      }
   }


Тут не большое примечание в этом public я поставил видимость кнопки "Обсудить" для гостей, но была проблема с тем, что гости могли создавать темы в форуме просто кликая по кнопке, теперь все исправлено, если гость кликнет по кнопке, то он перейдет на страницу форума с надписью "Вы неавторизованы, или не опредёлен идентификатор публикации."

Идем по пути:
engine\bullet_energy\library\language\utf-8\Russian\site.lng
Ищем:

'topic_148' => array(

Выше вставляем:

  'topic_148_1' => array(
    '<strong>ОБСУДИТЬ НА ФОРУМЕ 2</strong>',
    'Перейти к обсуждению на форуме ',
    'Ответов '),

Ну или свое название, как кнопка должна называться

Идем по пути:
.htaccess
Ищем:

RewriteRule ^forum/discussion-([0-9]+)(/?)+$ index.php?do=forum&action=discussion&id=$1 [L]

Ниже вставляем:[/b][/i]

RewriteRule ^forum/discussion2-([0-9]+)(/?)+$ index.php?do=forum&action=discussion2&id=$1 [L]


engine\modules\show.full.php
Ищем:

$tpl->copy_template = preg_replace ( "#\{date=(.+?)\}#ie", "langdate('\\1', '{$row['date']}')", $tpl->copy_template );

Ниже вставляем:

        if ( $view_template != "print") {$tpl->set('{forumDiscus2}', $apiBullet->setLinckDiscus2(array(
            'idPost' => $row['id'],
            'id' => $row['topic_id2'],
            'tree' => $category_id)));}


В шаблоне полной новости
templates\Default\fullstory.tpl
Будет доступен тег
{forumDiscus2}
Вставляем его в то место, где хотим увидеть кнопку [i][b]"Обсудить на форуме 2"

СКАЧАТЬ:

Z gk_discusion2.rar Размер: 4.75 Kb, скачали 48 раз




Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


0


Просмотры: 1118 :: Комментарии (0) :: :: Нужна помощь? Задайте вопрос на форуме ::
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

Наши баннеры
Скрипты, cms, шаблоны, статьи по раскрутке

Опросы

Нужна ли категория "Интернет магазины"?

Да
Нет

Архив новостей
Июнь 2021 (145)
Май 2021 (235)
Апрель 2021 (449)
Март 2021 (440)
Февраль 2021 (149)
Январь 2021 (95)

Последние комментарии:

Искать людей

Ваши переписки