Блог Евгения Попова :: Программы :: DataLife Engine

Хак для скрытия всего блока, содержащего cusom в случае пустой выборки


В DLE из коробки есть отличная реализация вывода новостей по заданным параметрам — custom. Думаю многие сталкивались с проблемой.

Расскажу на примере стандартного шаблона. У нас есть такой блок
    <div class="block top_block">
        <h4 class="title"><b>Популярное</b></h4>
        <ol class="topnews">
            {custom limit="3" category="10"}
        </ol>
    </div>

Ситуация следующая, выборка custom не дала никаких результатов, на сайте у нас остается в коде страницы такое
    <div class="block top_block">
        <h4 class="title"><b>Популярное</b></h4>
        <ol class="topnews">

        </ol>
    </div>

Обычные пользователи видят надпись «Популярное», а ниже пустота.
Данный хак решает проблему, с его помощью можно оформлять начало и конец блока, содержащего custom при помощи параметров block_start и block_end в самом теге.
В block_start='…' мы помещаем часть блока до тега {custom}, в block_end='…' оставшуюся часть блока. Покажу вам на примере.
У меня был такой блок в шаблоне:
    <div class="block top_block">
        <h4 class="title"><b>Популярное</b></h4>
        <ol class="topnews">
            {custom limit="3" category="10"}
        </ol>
    </div>

Заменил его на следующее
{custom limit="3" category="1" block_start='<div class="block top_block"><h4 class="title"><b>Популярное</b></h4><ol class="topnews">' block_end='</ol></div>'}

[attachment=207:ckrytie-vsego-bloka-soderzhaschego-cusom-v-sluchae-pustoj-vyborki.zip]
Источник
Перейти на сайт (скачивать файлы можно только на сайте)