вопрос
Здравствуйте!
Установил на dle 10.3 модуль "блок последних комментариев". Но из этого блока ссылки формируются правильно только на те комменты, которые находятся на одной - первой странице. Подскажите, пожалуйста, что нужно подправить или добавить, чтобы при многостраничных комментариях ссылки не вели "вникуда"?
Код модуля
Установил на dle 10.3 модуль "блок последних комментариев". Но из этого блока ссылки формируются правильно только на те комменты, которые находятся на одной - первой странице. Подскажите, пожалуйста, что нужно подправить или добавить, чтобы при многостраничных комментариях ссылки не вели "вникуда"?
Код модуля
if ( ! defined( 'DATALIFEENGINE' ) ) die( 'Hacking attempt!' );
$debag = ( isset( $debag ) ) ? intval( $debag ) : false;
$cache = ( isset( $cache ) ) ? intval( $cache ) : 0;
if ( $debag )
{
$Timer = new microTimer ( );
$Timer->start ( );
}
if ( $config['allow_cache'] != 'yes' )
{
$allow_cache = true;
$config['allow_cache'] = 'yes';
} else $allow_cache = false;
if ( $cache > 0 )
{
if( $is_logged ) $name = $member_id['user_group'];
else $name = '0';
if ( $config['version_id'] >= '8.5' ) $cache_id = '7a1920d61156abc05a60135aefe8bc67';
else $cache_id = 'last_comments';
$filename = ENGINE_DIR . '/cache/last_comments' . '_' . $cache_id . '_' . $name . '.tmp';
if ( time( ) - @filemtime( $filename ) > $cache * 60 ) @unlink( $filename );
}
$tpl->result['result'] = dle_cache( 'last_comments', $config['skin'], true );
if ( $tpl->result['result'] === false )
{
function trimming( $text, $limit, $postfix = '' )
{ global $config;
if ( strtolower( $config['charset'] ) == 'utf-8' )
{
if ( iconv_strlen( $text, 'utf-8' ) > $limit )
return iconv_substr( $text, 0, $limit, 'utf-8' ) . $postfix;
} else
{
if ( strlen( $text ) > $limit )
return substr( $text, 0, $limit ) . $postfix;
}
return $text;
}
function search( $str, $needle )
{ global $config;
if ( strtolower( $config['charset'] ) == 'utf-8' ) return iconv_strpos( $str, $needle, 0, 'utf-8' );
else return strpos( $str, $needle );
}
$replase = array( );
$comment = ( isset( $comment ) AND intval( $comment ) > 0 ) ? intval( $comment ) : 20;
$tpl->load_template ( 'last_comments.tpl' );
$allow_cats = explode ( ',', $user_group[$member_id['user_group']]['allow_cats'] );
if ( $allow_cats[0] != 'all' )
{
if ( $config['allow_multi_category'] ) $allow_news = " AND category regexp '[[:<:]](" . implode ( '|', $allow_cats ) . ")[[:>:]]'";
else $allow_news = " AND category IN ('" . implode ( "','", $allow_cats ) . "')";
} else $allow_news = '';
$result = $db->query( "SELECT " . PREFIX . "_comments.id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor, " . PREFIX . "_comments.text, is_register, " . PREFIX . "_post.id AS pid, " . PREFIX . "_post.autor AS pautor, " . PREFIX . "_post.date AS pdate, title, category, alt_name, " . PREFIX . "_post.comm_num, " . PREFIX . "_users.news_num, " . PREFIX . "_users.comm_num as ucomm_num, user_group, lastdate, reg_date, info, foto, fullname, land FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id = " . PREFIX . "_post.id LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id = " . PREFIX . "_users.user_id WHERE " . PREFIX . "_comments.approve = '1' AND " . PREFIX . "_post.approve = '1'{$allow_news} ORDER BY " . PREFIX . "_comments.id DESC LIMIT 0,{$comment}" );
while ( $row = $db->get_row( $result ) )
{
$row['pdate'] = strtotime( $row['pdate'] );
$row['category'] = intval( $row['category'] );
if ( $config['allow_alt_url'] == 'yes' )
{
if ( $row['flag'] and $config['seo_type'] )
{
if ( $row['category'] and $config['seo_type'] == 2 ) $full_link = $config['http_home_url'] . get_url( $row['category'] ) . '/' . $row['pid'] . '-' . $row['alt_name'] . '.html';
else $full_link = $config['http_home_url'] . $row['pid'] . '-' . $row['alt_name'] . '.html';
} else $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['pdate'] ) . $row['alt_name'] . '.html';
} else $full_link = $config['http_home_url'] . 'index.php?newsid=' . $row['pid'];
if ( search( $tpl->result['content'], '{content-' . $row['pid'] . '}' ) === false )
{
$row['title'] = strip_tags( stripslashes( $row['title'] ) );
$tpl->copy_template = preg_replace ( "#\\[main\\](.*?)\\[/main\\]#is", '', $tpl->copy_template );
$tpl->copy_template = preg_replace ( "#\\[comment\\](.*?)\\[/comment\\]#is", '', $tpl->copy_template );
$tpl->set ( '[news]', '' );
$tpl->set ( '[/news]', '' );
$tpl->set( '[news-link]', '<a href="' . $full_link . '">' );
$tpl->set( '[/news-link]', '</a>' );
$tpl->set ( '{id}', $row['pid'] );
$tpl->set ( '{news-link}', $full_link );
$tpl->set ( '{title}', $row['title'] );
if ( search( $tpl->copy_template, '{title=' ) !== false ) $tpl->copy_template = preg_replace ( "#\{title=([0-9]{0,3})\|?([^\}]+)?\}#ie", "trimming( '{$row['title']}', '\\1', '\\2' )", $tpl->copy_template );
if ( date( Ymd, $row['pdate'] ) == date( Ymd, $_TIME ) ) $tpl->set( '{date}', $lang['time_heute'] . langdate( ', H:i', $row['pdate'] ) );
elseif ( date( Ymd, $row['pdate'] ) == date( Ymd, ( $_TIME - 86400 ) ) ) $tpl->set( '{date}', $lang['time_gestern'] . langdate( ", H:i", $row['pdate'] ) );
else $tpl->set( '{date}', langdate( $config['timestamp_active'], $row['pdate'] ) );
if ( search( $tpl->copy_template, '{date=' ) !== false ) $tpl->copy_template = preg_replace ( "#\{date=(.+?)\}#ie", "langdate('\\1', '{$row['pdate']}')", $tpl->copy_template );
$tpl->set ( '{author}', $row['pautor'] );
$tpl->set( '[/day-news]', '</a>' );
if ( $config['version_id'] >= '9.0' ) $go_page = "onclick=\"ShowProfile('" . urlencode( $row['pautor'] ) . "', '" . htmlspecialchars( $go_page ) . "'); return false;\"";
else $go_page = "onclick=\"return dropdownmenu(this, event, UserNewsMenu('" . htmlspecialchars( 'href="' . $go_page . '"' ) . "', '" . htmlspecialchars( 'href="' . $news_page . '"' ) . "','" . urlencode( $row['pautor'] ) . "', '" . $user_group[$member_id['user_group']]['admin_editusers'] . "'), '170px')\" onmouseout=\"delayhidemenu()\"";
if( $config['allow_alt_url'] == 'yes' ) $tpl->set( '[profile]', "<a {$go_page} href=\"" . $config['http_home_url'] . "user/" . urlencode( $row['pautor'] ) . '/">' );
else $tpl->set( '[profile]', "<a {$go_page} href=\"$PHP_SELF?subaction=userinfo&user=" . urlencode( $row['pautor'] ) . '">' );
$tpl->set ( '[/profile]', '</a>' );
$tpl->set ( '{comment-num}', $row['comm_num'] );
$tpl->set ( '{news-read}', $row['news_read'] );
if ( $row['allow_rate'] ) $tpl->set( '{rating}', ShortRating( $row['pid'], $row['rating'], $row['vote_num'], false ) );
else $tpl->set( '{rating}', '' );
$tpl->set ( '{comment}', '{content-' . $row['pid'] . '}' );
$tpl->compile ( 'content' );
}