Мы в твиттере Мы в телеграме!

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

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

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

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

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


Добавляем в 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"

СКАЧАТЬ:
gk_discusion2.rar [4.75 Kb] (cкачиваний: 56)
MD5: cddfdc399d6f918901e01ee2116d0816


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


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

Архив новостей
Декабрь 2024 (9)
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)

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