Предоставляем срочную помощь по DLE, пишем эксклюзивные модули для вашего проекта, парсеры грабберы, исправляем базу данных, удаляем вирусы редиректы, обновляем скрипты, помощь с переездом на другой хостинг, перенос домена, большой опыт работы с высоконагруженными проектами, защита ddos атаки, ботов и спама, оптимизация модулей и серверов дле, более 10 лет работы, тысячи модификаций и доработок, короткие сроки, дорого, качественно. skype: rdn-team.com

Вывод сообщений с форума в полную новость

  1. Оффлайн

    KachalkinGeorg

    Посетители

    Сообщений: 2

    Вывод сообщений с форума в полную новость

    Задался я вопросом, как сделать вывод сообщения с форума в полную новость. К примеру, есть кнопка "обсудить на форуме", которая закреплена к новости и надо было так, чтобы к этой новости отображались еще 2 или 3 сообщения с "Обсуждения форума".

    То вот ее реализация.

    engine/modules/show.full.php
    Ищем:
    
    if ( $row['fixed'] ) {
    


    Выше вставляем:
    
    		if( $row['forum_discus'] ) {
    		if ( $view_template != "print") {$tpl->set('{forumPost}', $apiBullet->setLinckDiscusInput(array(
    			'idPost' => $row['id'],
    			'id' => $row['topic_id'],
    			'tree' => $category_id))) ;}
    			$tpl->set( '[forumPost]', "" );
    			$tpl->set( '[/forumPost]', "" );		
    		} else {
    			$tpl->set( '{forumPost}', "" ); 
    			$tpl->set_block( "'\\[forumPost\\](.*?)\\[/forumPost\\]'si", "" );
    		}
    


    engine/bullet_energy/api/bullet_api.class.php
    Ищем:
    
    public function isAvatarUser($imgName = '')
    

    Выше вставляем:
    
        public function setLinckDiscusInput(array $data = array())
        {  
          $this->cache['template'] = $this->getCache('template') ;
          
          if(!is_array($this->cache['template'])) {
            $this->_setCache();
            return $this->setLinckDiscusInput($data) ;
          }     
          
          if($this->member_id['user_group'] == 0 OR !isset($this->cache['template']['discussion']['tree'][$data['tree']])) {
            return false ;
          }
          
          if(empty($data['id'])) {
            return '<a href="' . $this->link->discussion($data['idPost']) . '">' . $this->bullet_energy_lang['topic_148'][0] . '</a>' ;
          } else {
            $row = $this->db->super_query("SELECT reply_count, title FROM " . PREFIX . "_be_topic WHERE id = {$data['id']}") ;
    
            $row2 = $this->db->super_query("SELECT message_text FROM " . PREFIX . "_be_message WHERE id_topic = {$data['id']} ORDER by id ASC LIMIT 2,2") ;
    		$row2mes=stripslashes( $row2['message_text'] );
    		if ( !$row ) {
            $this->db->query("UPDATE " . PREFIX . "_post SET topic_id = 0 WHERE id = {$data['idPost']}");
            return '<a href="' . $this->link->discussion($data['idPost']) . '">' . $this->bullet_energy_lang['topic_148'][0] . '</a>' ;
            }
            else return '
    ' . $row2mes. '' ;
          }
       }
    

    Где
    LIMIT 2,2
    Означает отображать со 2-го сообщения 2 следующих сообщения

    Теперь в файле, Вашего шаблона, fullstory.tpl будет доступен тег:
    {forumPost}
    [forumPost]{forumPost} [/forumPost]
    Grey нравится это сообщение.
    Сообщение отредактировал KachalkinGeorg 10 июня 2020 - 22:43
    10 июня 2020 - 22:41 / #1
Модераторы форума: greyPowered by Bullet Energy Forum