Навигация отдельным тегом v.1.0 для DLE 10.1 и выше

<div id=»dle-content»>
    {shortstory.tpl}
    {shortstory.tpl}
    {shortstory.tpl}
    {navigation.tpl}
</div>Т.е. навигация прикрепляется сразу после коротких новостей или перед ними или совместно и там и там.
Однако порой это очень ограничивает возможности дизайна/верстки когда навигацию необходимо отделить от контента.
Для этой цели и был написан этот простенький хак/плагин. С его помощью можно вывести навигацию в любом месте шаблона main.tpl посредством тега:

{navigation}Если навигации на странице нет, то тег выведет просто пустоту. Так же для удобства добавлен тег:
[navigation] … [/navigation]Если тега навигации нет, то она останется по умолчанию в конце контента (или как задано в настройках).

Автор: Sander
Версия DLE: 10.1 и старше
Версия PHP: 5.4 и старше

  Ручная установка
Открыть файл engine/modules/show.short.php
Найти строку:
$tpl->compile( ‘navi’ );Ниже нее вставить:
$tpl->result[‘navi’] = ‘<!—navigation_start_’ . md5(DBNAME . DBUSER . $config[‘key’]) . ‘—>’ . $tpl->result[‘navi’] . ‘<!—navigation_end—>’;Открыть файл 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);
}

Скачать

Источник: siberian-federal.net

Добавить комментарий