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

Nulls.su

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

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

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


Данной модификацией мы выводим последние комментарии под краткой новостью в DataLife Engine. Поддерживаются все версии скрипта. Количество запросов увеличится на 1 при просмотре коротких новостей.
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 (



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

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


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

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

В любое место вставить

[comments_here]{comments_here}[/comments_here]
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем
Другие новости по теме:
 (голосов: 0)
  • Просмотров: 491
  • Комментариев: 0

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

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

nulls.su

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