
Небольшая модификация хак 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 ( "#Внимание! У Вас нет прав для просмотра скрытого текста.#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 вывод последних комментариев под краткой новостью