[Хак] Добавляем тег [not-related-news] DLE 10.x

timirov
На сайте с 15.11.2010
Offline
104
1383

Добрый день.

Решил поделиться хаком, который добавляет новый тег:

[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" );

}



/* Открываем \ */

/* Найти: */
$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} при условии, что для публикации нет похожих новостей.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий