Все для DataLife Engine / DLE хаки / Хак для DLE / Расширение функционала [list]...[/list]

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


Преставлением хак для DLE Расширение функционала [list]..., который позволит вам сделать дополнение к шаблонизатору для вывода списка коротких новостей. Расширение функционала шаблонизатора ([list]...) для списка коротких новостей невероятно удобным и многофункциональным хак для вашего сайта.

Получить качественное SEO DLE, сделать тонкую настройку страниц, оформить заголовки постов, ключевых слов, описания, главной страницы, категории и навигации, контента и улучшить видимость в поисковиках помогают полезные веб-разработки, как SEO плагин для DLE.


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

Rasshirenie-funkcionala-list.rar [18,02 Kb] (cкачиваний: 60)
  • 60
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent