вопрос
Есть необходимость реализовать вывод картинок из дополнительных полей в модуле topnews. Нашел такой модуль _http://nfhelp.ru/dle/hacks/179-topnews-s-shablonom.html доработал немного поискав вопросы по сайту. В результате все заработало, кроме одного - при выводе новостей у самой верхней отсутствует картинка, модуль не выводит дополнительное поле. Пробовал с разными базами данных, результат один и тот же.
Исходный код: topnews.php
Картинки выводятся из поля [xfvalue_image]. Прошу сильно не пинать, с php знакомлюсь недавно)
Исходный код: topnews.php
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
Mod by Олег Одоевский a.k.a Sander
ICQ: 404-037-556
http://nfhelp.ru/
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2010 SoftNews Media Group
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: topnews.php
-----------------------------------------------------
Назначение: вывод рейтинговых статей (улучшенная сортировка)
=====================================================
*/
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");
################################# Настройки ############################################
$cut_titile= 0; // На сколько символов обрезать заголовок. Поставить ноль, чтобы заголовок не обрезало
$last_days= 365; // Выбирать новости не старше * дней
$count_news= 5; // Сколько новостей выводить в блоке.
############################## Дальше не трогать! #######################################
$topnews=dle_cache("topnews",$config['skin']);
if(!$topnews){$this_month=date('Y-m-d H:i:s',$_TIME);
$last_days=intval($last_days);$last_days=($last_days)?$last_days:31;
$count_news=intval($count_news);$count_news=($count_news)?$count_news:10;
$xfields = xfieldsload();
$db->query( "SELECT id, title, date, alt_name, category, flag, autor, news_read, xfields, comm_num FROM " . PREFIX . "_post WHERE approve AND date>='$this_month' - INTERVAL ".$last_days." DAY AND date<'$this_month' ORDER BY (rating+1)*news_read DESC, comm_num DESC, date DESC LIMIT 0,".$count_news );
while($row=$db->get_row()){
$row['date']=strtotime($row['date']);$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['id']."-".$row['alt_name'].".html";
else $full_link=$config['http_home_url'].$row['id']."-".$row['alt_name'].".html";
}else $full_link=$config['http_home_url'].date('Y/m/d/',$row['date']).$row['alt_name'].".html";
}else $full_link=$config['http_home_url']."index.php?newsid=".$row['id'];
if(date(Ymd,$row['date'])==date(Ymd,$_TIME)) $date=$lang['time_heute'].langdate(", H:i",$row['date']);
elseif(date(Ymd,$row['date'])==date(Ymd,($_TIME-86400))) $date=$lang['time_gestern'].langdate(",H:i",$row['date']);
else $date=langdate($config['timestamp_active'],$row['date']); $cut_titile=intval($cut_titile);
if($cut_titile AND strlen($row['title'])>$cut_titile) $title=stripslashes(substr($row['title'],0,$cut_titile)." ...");
else $title=stripslashes($row['title']);
$go_page=($config['ajax'])?"onclick=\"DlePage('newsid=".$row['id']."');return false;\"":"";
if($config['allow_comments_wysiwyg']=="yes") $go_page='';
if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false ) {
$xfieldsdata = xfieldsdataload( $row['xfields'] );
foreach ( $xfields as $value ) {
$preg_safe_name = preg_quote( $value[0], "'" );
if( empty( $xfieldsdata[$value[0]] ) ) {
$tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
} else {
$tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "\\1", $tpl->copy_template );
}
$tpl->copy_template = str_replace( "[xfvalue_{$preg_safe_name}]", stripslashes( $xfieldsdata[$value[0]] ), $tpl->copy_template );
}
}
$tpl->load_template('topnews.tpl');
$tpl->set('{title}',$title);
$tpl->set('{author}',$row[autor]);
$tpl->set('[xfvalue_image]',$xfieldsdata['image']);
$tpl->set('{date}',$date);
$tpl->set('{views}',intval($row['news_read']));
$tpl->set('{comments-num}',intval($row['comm_num']));
$tpl->set('[full-link]',"<a ".$go_page." href=\"" . $full_link . "\" title=\"".$title."\">");$tpl->set('[/full-link]',"</a>");
$tpl->compile('topnews');}$topnews = $tpl->result['topnews'];
$db->free();$tpl->clear();create_cache( "topnews", $topnews, $config['skin'] );}
?>
Картинки выводятся из поля [xfvalue_image]. Прошу сильно не пинать, с php знакомлюсь недавно)