Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Вывод последних комментариев под краткой новостью в DLE.
Скачать бесплатно Вывод последних комментариев под краткой новостью в DLE.
Небольшая модификация хак дле если нужно вывести последние комментарии под краткой новостью. Будет полезен сайтам , которым важно ,чтобы пользователи видели какие новости обсуждаются .
Все версии DLE скрипта.
Количество запросов: увеличится на 1 при просмотре коротких новостей.
Автор: RedRat
Источник: admin-club.ru
Установка:
1. В файле engine/modules/show.short.php
найти
$tpl->compile( 'content' );
if( $user_group[$member_id['user_group']]['allow_hide'] ) $tpl->result['content'] = str_ireplace( "Внимание! У Вас нет прав для просмотра скрытого текста.", "", $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]
Готово.