чтение rss ленты

Nulls.su

nulls.su » Datalife Engine » Хаки » Вывод последних комментариев под краткой новостью для DLE
Здесь обезаельно что то появиться 8)

Вывод последних комментариев под краткой новостью для DLE

Вывод последних комментариев под краткой новостью для DLE


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

Все версии DLE скрипта.
Количество запросов: увеличится на 1 при просмотре коротких новостей.
Автор: RedRat
Установка:
1. В файле engine/modules/show.short.php


найти

$tpl->compile( 'content' );

        if( $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace( "[hide]", "", str_ireplace( "[/hide]", "", $tpl->result['content']) );
        else $tpl->result['content'] = preg_replace ( "#\[hide\](.+?)\[/hide\]#ims", "<div class=\"quote\">" . $lang['news_regus'] . "</div>", $tpl->result['content'] );


вставить выше

if($row['comm_num']>0){
            $newsIDs[] = $row['id'];
            $tpl->set('{comments_here}', '{comments_here:'.$row['id'].'}');
            $tpl->set('[comments_here]','');
            $tpl->set('[/comments_here]','');
        }else{
            $tpl->set('{comments_here}', '');
            $tpl->set_block ("'\\[comments_here\\](.*?)\\[/comments_here\\]'si", '');
        }        


найти

    $tpl->clear();
    $db->free( $sql_result );
    
    if( $do == "" ) $do = $subaction;
    if( $do == "" and $year ) $do = "date";
    $ban_short = array ();
    unset( $ban_short );



вставить выше

    if(count($newsIDs) && $lang['tplCommCount']>0 && $lang['tplCommShortNews']!=''){
        if($lang['CommIncludeStandartTemplate']==1){
            $lang['tplCommShortNews'] = file_get_contents($tpl->dir . DIRECTORY_SEPARATOR . 'comments.tpl');
        }
        $queComms = $db->query("SELECT * FROM ".PREFIX."_comments LEFT JOIN ".PREFIX."_users ON ".PREFIX."_comments.user_id = ".PREFIX."_users.user_id WHERE post_id = ".join(' OR post_id = ',$newsIDs)." ORDER by ".PREFIX."_comments.id DESC");
        $lastComms = array();
        $cIDs = array();
        while($row2 = $db->get_row($queComms)){
            if($cIDs[$row2['post_id']]<$lang['tplCommCount']){
                $lastComms[$row2['post_id']][] = $row2;
                $cIDs[$row2['post_id']]++;
            }
        }
        function InsertLastComms($id){
            global $lastComms, $lang, $user_group, $config;
            if(!isset($lastComms[$id])) return '';
            $r = '';
            foreach($lastComms[$id] as $v){
                $r_ = preg_replace ( "#\\[aviable=lastcomments\\](.*?)\\[/aviable\\]#ies", '', $lang['tplCommShortNews'] );
                $r_ = preg_replace ( "#\\[not-group=5\\](.*?)\\[/not-group\\]#ies", '', $r_ );
                $r_ = preg_replace ( "#\\[fast\\](.*?)\\[/fast\\]#ies", '', $r_ );
                if($v['signature']=='') $r_ = preg_replace ( "#\\[signature\\](.*?)\\[/signature\\]#ies", '', $r_ );
                
                $r .= strtr($r_,array(
                    '{post_id}' => $v['post_id'],
                    '{author}' => $v['author'],
                    '{email}' => $v['email'],
                    '{author}' => $v['is_register']?'<a href="/user/'.urlencode($v['name']).'/">'.$v['name'].'</a>':$v['autor'],
                    '{name}' => $v['name'],
                    '{user_id}' => $v['user_id'],
                    '{date2}' => $v['date'],
                    '{date}' => date('d.m, H:i', strtotime($v['date'])),
                    
                    '{comment}' => $v['text'],
                    '{news_title}' => '',
                    '{mass-action}' => '',
                    '{icq}' => $v['icq']?$v['icq']:'---',
                    '{group-name}' => $user_group[$v['user_group']]['group_name'],
                    '{news-num}' => $v['news_num'],
                    '{comm-num}' => $v['comm_num'],
                    '{registration}' => date('d.m.Y', $v['reg_date']),
                    '{foto}' => $v['foto']?'uploads/fotos/'.$v['foto']:'/templates/'.$config['skin'].'/images/noavatar.png',
                    '{signature}' => $v['signature']
                )).$lang['tplCommShorNewsExplorer'];
            }
            return $r;
        }
        $tpl->result['content'] = preg_replace ( "#{comments_here:(.*?)}#ies", "InsertLastComms('\\1')", $tpl->result['content'] );
    }





2. В файле language/Russian/website.lng. Данную вставку желательно провести в каждый языковую папку.

найти

$lang = array (



ниже вставить


'tplCommShortNews' => 'Комментарий: {comment}, от <strong>{name}</strong> ({date})',
'tplCommShorNewsExplorer' => '<br/>',
'tplCommCount' => 3,
'CommIncludeStandartTemplate' => 1,


tplCommShortNews - строка-шаблон, если вдруг Вы решите не использовать стандартный шаблон comments.tpl.
tplCommShorNewsExplorer - вставляется после каждого блока комментариев,
tplCommCount - количество последних комментариев,
CommIncludeStandartTemplate - 1 использовать стандартный шаблон comments.tpl, 0 не использовать стандартный шаблон.



3. В файле шаблона shortstory.tpl

В любое место вставить
[comments_here]{comments_here}[/comments_here]



Готово.
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем
Другие новости по теме:
 (голосов: 0)
  • Просмотров: 786
  • Комментариев: 0

Комментарии к статье

Если Вам понравилась эта статья или не понравилась напишите об этом в комментариях
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Переместиться наверх

nulls.su

Внимание, вся информация размещена на сайте пользователями, поэтому владельцы сайта не несут ответственности за правдивость, валидность, степень контрафактности. Если вы считаете что информация размещена неправомерно, сообщите пожалуйста в службу поддержки и информация будет незамедлительно удалена. Вся информация размещена на основании соглашения
Шаблон разработан студией CENTROARTS