Добрый день.
Решил поделиться хаком, который добавляет новый тег:
[not-related-news]текст[/not-related-news] - Выводят текст, заключенный в них, если у данной публикации отсутствуют похожие новости.
Писали под мои "хотелки", т.к. в интернете такого не нашел, а разработчики не предусмотрели (на сколько мне известно). В любом случае, думаю многим окажется полезным.
/* Добавляем новый макрос [not-related-news]Если нету похожих новостей[/not-related-news] */
/* Открываем \www\engine\modules\show.full.php */
/* Найти: */
if ( $related_buffer ) {
$tpl->set( '[related-news]', "" );
$tpl->set( '[/related-news]', "" );
} else $tpl->set_block( "'\\[related-news\\](.*?)\\[/related-news\\]'si", "" );
$tpl->set( '{related-news}', $related_buffer );
}
/* Заменить на: */
if ( $related_buffer ) {
$tpl->set( '[related-news]', "" );
$tpl->set( '[/related-news]', "" );
$tpl->set_block( "'\\[not-related-news\\](.*?)\\[/not-related-news\\]'si", "" );
} else {
$tpl->set_block( "'\\[related-news\\](.*?)\\[/related-news\\]'si", "" );
$tpl->set_block( "'\\[not-related-news\\](.*?)\\[/not-related-news\\]'si", "\\1" );
}
/* Открываем \www\index.php */
/* Найти: */
$tpl->load_template ( 'main.tpl' );
/* После, добавить: */
if($newsid) {
if ( $related_buffer ) {
$tpl->set( '[related-news]', "" );
$tpl->set( '[/related-news]', "" );
$tpl->set_block( "'\\[not-related-news\\](.*?)\\[/not-related-news\\]'si", "" );
} else {
$tpl->set_block( "'\\[related-news\\](.*?)\\[/related-news\\]'si", "" );
$tpl->set_block( "'\\[not-related-news\\](.*?)\\[/not-related-news\\]'si", "\\1" );
}
} else {
$tpl->set_block( "'\\[related-news\\](.*?)\\[/related-news\\]'si", "" );
$tpl->set_block( "'\\[not-related-news\\](.*?)\\[/not-related-news\\]'si", "" );
}
/* Найти: */
$tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
/* Перед или после, добавить: */
$tpl->set( '{related-news}', $related_buffer );
Сам использую для замены тега {related-news}, на тег {top-news} при условии, что для публикации нет похожих новостей.
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|
Сообщение отредактировал taxi2008 - 17.11.2013, 15:19