Нуждаюсь в вашей помощи с переработкой кусочка скрипта, если быть точнее - CMS DLE. Опишу вкратце, это обычный новостной движок, есть шаблон для вывода коротких новостей, в него можно вставить {link-category} (ссылка на категорию, которая присвоена новости). Но вот беда, функционал позволяет присвоить несколько категорий новости, соответственно тогда все присвоенные новости категории выводятся в {link-category}, а мне бы как-то нужно сделать, чтобы выводилась только одна, первая.
Покопавшись, нашла в файле /engine/module/show.short.php (отвечает за вывод кратких новостей) следующий код:
$i ++;
if( ! $row['category'] ) {
$my_cat = "---";
$my_cat_link = "---";
} else {
$my_cat = array ();
$my_cat_link = array ();
$cat_list = explode( ',', $row['category'] );
if( count( $cat_list ) == 1 OR ($view_template == "rss" AND $config['rss_format'] == 2)) {
$my_cat[] = $cat_info[$cat_list[0]]['name'];
$my_cat_link = get_categories( $cat_list[0] );
} else {
foreach ( $cat_list as $element ) {
if( $element ) {
$my_cat[] = $cat_info[$element]['name'];
if( $config['allow_alt_url'] == "yes" ) $my_cat_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
else $my_cat_link[] = "<a href=\"$PHP_SELF?do=cat&category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
}
}
$my_cat_link = implode( ', ', $my_cat_link );
}
$my_cat = implode( ', ', $my_cat );
}
if( strpos( $tpl->copy_template, "[catlist=" ) !== false ) {
$tpl->copy_template = preg_replace( "#\\[catlist=(.+?)\\](.*?)\\[/catlist\\]#ies", "check_category('\\1', '\\2', '{$row['category']}')", $tpl->copy_template );
}
if( strpos( $tpl->copy_template, "[not-catlist=" ) !== false ) {
$tpl->copy_template = preg_replace( "#\\[not-catlist=(.+?)\\](.*?)\\[/not-catlist\\]#ies", "check_category('\\1', '\\2', '{$row['category']}', false)", $tpl->copy_template );
}
$row['category'] = intval( $row['category'] );
$news_find = array ('{comments-num}' => $row['comm_num'], '{views}' => $row['news_read'], '{category}' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'], '{PAGEBREAK}' => '' );
$tpl->set( '', $news_find );
if( $cat_info[$row['category']]['icon'] ) {
$tpl->set( '{category-icon}', $cat_info[$row['category']]['icon'] );
} else {
$tpl->set( '{category-icon}', "{THEME}/dleimages/no_icon.gif" );
}
if ( $row['category'] )
$tpl->set( '{category-url}', $config['http_home_url'] . get_url( $row['category'] ) . "/" );
else
$tpl->set( '{category-url}', "#" );
if( date( 'Ymd', $row['date'] ) == date( 'Ymd', $_TIME ) ) {
$tpl->set( '{date}', $lang['time_heute'] . langdate( ", H:i", $row['date'] ) );
} elseif( date( 'Ymd', $row['date'] ) == date( 'Ymd', ($_TIME - 86400) ) ) {
$tpl->set( '{date}', $lang['time_gestern'] . langdate( ", H:i", $row['date'] ) );
} else {
$tpl->set( '{date}', langdate( $config['timestamp_active'], $row['date'] ) );
}
Интуитивно понимаю, что подправить нужно совсем чуток и именно здесь, но что именно и как - не знаю :ph34r:
Структура поля category в базе данных стандартная:
Будьте добры, помогите, пожалуйста :rolleyes:
Благодарю за внимание.
С уважением, Анастасия.