Расширение функционала [list]...[/list]

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Расширение функционала [list]...</li></ul><!--dle_list_end-->
Преставлением хак для DLE Расширение функционала [list]..., который позволит вам сделать дополнение к шаблонизатору для вывода списка коротких новостей. Расширение функционала шаблонизатора ([list]...) для списка коротких новостей невероятно удобным и многофункциональным хак для вашего сайта
<a href="http://www.dle9.com/">DLE</a>


Суть проблемы:
Нужно было вывести новости на сайте под управлением DataLife Engine для разных категорий и с разными шаблонами. Хотя в настройках категорий DLE присутствует параметр "Шаблон короткой новости", однако все бы ничего, но что если вам надо выводить данные в виде списка, плиткой и таблицей. Можно конечно в main.tpl добавить конструкции с помощью тега [category...] и [aviable...], но когда у вас на ресурсе категорий много, то получается довольно громоздко и неудобно. В частности, если категорий около 100 на сайте и периодически приходится добавлять новые категории.
Стоит помнить о том, что в системной обертке добавляется автоматически перед выводом:
<div id="dle-content">&#123;content}</div>


В табличном методе вывода контента еще можно приспособить как-то
#dle-content{display: table;}
.shortstory{display:table-row;}


Но вот со списком:
<ul><li>...</li></ul>


Валидно уж точно не получится.
Я уж молчу о том, что навигацию тоже нужно будет приспосабливать под вышеуказанные теги.

Решение:
Решение вышло простым, но невероятно удобным и многофункциональным!
Для оформления желаемого списка используется только шаблон shortstory.tpl (или какой выбран для категории). В main.tpl никаких дополнительных тегов не нужно.
Вот пример шаблона короткой новости:
[page-count=1]<h1>Какое-то описание SEO для выбранной категории</h1>[/page-count]
<table>
<thead>
<tr>
    <td>Фото</td>
    <td>Описание</td>
</tr>
</thead>
<tbody>
[list]
<tr>
    <td><img src="{image-1}"></td>
    <td>
        [full-link]{title}[/full-link]
        <div>{short-story limit="200"}</div>
    </td>
</tr>
[/list]
</tbody>
</table>
{navigation}


Как видно добавился тег:
[list]...[/list]


Внутри тега (list) находится именно тот самый шаблон короткой новости, все остальное непосредственная обертка. Так же обратите внимание на тег навигации. Его можно вручную разместить где угодно или придать ему индивидуальный стиль. Если тег не указан, по умолчанию он будет выведен снизу.

Установка Расширение функционала шаблонизатора ([list]...) для списка коротких новостей:
Открыть файл engine/modules/show.short.php
Найти строку (это кусок строки, для простоты):
if( strpos( $tpl->copy_template, "[xfvalue_"

ПЕРЕД ней вставить:

    if( preg_match( "#\\[list\\](.+?)\\[/list\\]#is", $tpl->copy_template, $list_tpl ) ){
        $global_tpl = $tpl->template;
        $tpl->template = $tpl->copy_template = $list_tpl[1];
    }else $global_tpl = '';


Найти строку:
            switch ( $config['news_navigation'] ) {


ПЕРЕД ней вставить:
            if( !$global_tpl )


В самом низу найти код:
}
?>


ПЕРЕД ним вставить:

    if( $global_tpl AND $news_found ){
        $tpl->result['content'] = str_replace( $list_tpl[0], $tpl->result['content'], $global_tpl );
        if (stripos ( $tpl->result['content'], "[category=" ) !== false) $tpl->result['content'] = preg_replace_callback ( "#\\[(category)=(.+?)\\](.*?)\\[/category\\]#is", "check_category", $tpl->result['content'] );
        if (stripos ( $tpl->result['content'], "[not-category=" ) !== false) $tpl->result['content'] = preg_replace_callback ( "#\\[(not-category)=(.+?)\\](.*?)\\[/not-category\\]#is", "check_category", $tpl->result['content'] );
        if(stripos($global_tpl,"{navigation}")!==false) $tpl->result['content'] = str_replace( "{navigation}", $tpl->result['navi'], $tpl->result['content'] );
        else $tpl->result['content'] .= $tpl->result['navi'];
    }


Вот и все.
Если в шаблоне короткой новости не используется тег [list], то движок работает в стандартном режиме.

Версия DLE: 10.0 и выше, в том числе на новой версии DLE 11.1
Расширение функционала шаблонизатора для списка коротких новостей
Пример: color. sandev . pro

С уважением,
Олег Александрович a.k.a. Sander

Рекомендуем хаки для дле, хак dle Расширение функционала [list]... скачать
  • 60
Рубрика: DLE хаки » Хак для DLE
Ранее » DLE Хак Дополнительные поля по средством Вкладок« Далее Просилка отключить AdBlock
Добавление комментарияОставить комментарий