Шаблон обертка для { custom... }
Хак «оборачивает» результат выполнения {custom'а в свой шаблон, название которого укажете в result="шаблон для кастома". Если его не укажете, то {custom выполнится как обычно. Можно продолжить использовать тег {custom в привычном режиме даже после установки хака. Параметр template="шаблон новости" используйте как хотите, хак его не касается.
Пример:
[result]
<h2>Новости по теме</h2>
<ul>{result}</ul>
[/result]
[not-result]новостей нет[/not-result]
Установка:
1. Открыть engine/modules/functions.php и найти:
if ( $custom_news ) create_cache( "news", $tpl->result['content'], $custom_cache_id, true );
Заменить на:
if ( preg_match( "#result=['\"](.+?)['\"]#i", $param_str, $match ) ) {
if ( file_exists( TEMPLATE_DIR . '/' . $match[1] . '.tpl' ) ) {
$result = file_get_contents( TEMPLATE_DIR . '/' . $match[1] . '.tpl' );
$result = str_replace( '{result}', $tpl->result['content'], $result );
$result = preg_replace( array( '#\\[result\\](.*?)\\[/result\\]#iusU', '#\\[not-result\\](.*?)\\[/not-result\\]#iusU' ), $custom_news ? array( '\1', '' ) : array( '', '\1' ), $result );
$tpl->result['content'] = $result;
}
}
create_cache( "news", $tpl->result['content'], $custom_cache_id, true );
2. Теперь можно использовать параметр result="название_шаблона" в {custom...}. Для этого в нужное место шаблона добавить, например:
{custom category="20" limit="100" result="customs/one"}
Готово!
• Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.