Постраничная навигация отдельным тегом 1.0
По умолчанию навигация прикрепляется автоматически к списку новостей в теге {content}. В настройках есть возможность только выбрать расположение навигации в пределах контента - перед списком новостей, после или комбинировано. Однако порой это очень ограничивает возможности дизайна/верстки, когда навигацию необходимо отделить от контента. Для этой цели был написан этот простенький хак, который позволяет вывести блок навигации шаблона navigation.tpl в любом месте в файле шаблона main.tpl.
Если навигации на странице нет, то тег выведет просто пустоту. Так же для удобства добавлен тег:
[navigation] ... [/navigation]
Если тега навигации нет, то она останется по умолчанию в конце контента или как задано в настройках.
Установка:
1. Открыть engine/modules/show.short.php и найти:
$tpl->compile( 'navi' );
Добавить ниже:
$tpl->result['navi'] = '<!--navigation_start_' . md5(DBNAME . DBUSER . $config['key']) . '-->' . $tpl->result['navi'] . '<!--navigation_end-->';
2. Открыть engine/modules/main.php и найти:
$tpl->set ( '{info}', $tpl->result['info'] );
Добавить ниже:
if (preg_match('#<!--navigation_start_' . md5(DBNAME . DBUSER . $config['key']) . '-->(.+?)<!--navigation_end-->#is', $tpl->result['content'], $navi)) {
if (stripos($tpl->copy_template, '{navigation}') !== false) {
$tpl->result['content'] = str_replace($navi[0], '', $tpl->result['content']);
} else {
$tpl->result['content'] = str_replace($navi[0], $navi[1], $tpl->result['content']);
}
$tpl->set('{navigation}', $navi[1]);
$tpl->set('[navigation]', '');
$tpl->set('[/navigation]', '');
} else {
$tpl->set('{navigation}', '');
$tpl->copy_template = preg_replace('#\\[navigation\\](.*?)\\[/navigation\\]#is', '', $tpl->copy_template);
}
Готово!
Важно: это функционал уже встроен в DLE начиная с версии 14.0 и использование хака не требуется.
• Кодировка: utf-8
• Версия PHP: 5.4 и выше
• Автор: Sander
• Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.