комментарии dle

комментарии dle

комментарии dle

комментарии dle

комментарии 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]

Готово. комментарии dle

3 thoughts on “комментарии dle

Добавить комментарий