Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

DLE Хак | шаблон-обертка для {custom...}

Тема в разделе "Хаки DLE", создана пользователем iCooLER, 16 фев 2018.

16.02.18 в 09:47
16.02.18 в 10:22
6
925
0
  1. TopicStarter Overlay
    iCooLER

    Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    390
    Лучших ответов:
    6
    Рейтинги:
    +320 / 12 / -0
    Хак позволяет «обернуть» результат выполнения {custom'а в свой шаблон с возможностью использовать два условия. Все поймете по данному примеру(должны понять!):
    HTML:
    [result]
    <h2>Новости по теме</h2>
    <ul>
         {result}
    </ul>
    [/result]
    
    [not-result]
    новостей нет
    [/not-result]
    Чтобы заюзать хак нужно добавить кусок кода в файл(сделать одну правку) и после этого можно использовать параметр result="название_шаблона" в {custom...}. К примеру: {custom category="20" limit="100" result="customs/one"}

    P.S.: Предвидя вопросы отвечаю сразу: параметр template="шаблон новости" вы используйте как хотите. Данных хак его не касается. Хак «оборачивает» результат выполнения {custom'а в шаблон, название которого вы укажете в result="шаблон дял кастома". Если вы его не укажете, то {custom выполнится как обычно — вы можете продолжат юзать тег {custom в привычном режиме даже после установки хака!

    Установка: /engine/modules/functions.php
    Найти:
    PHP:
    if ( $custom_news create_cache"news"$tpl->result['content'], $custom_cache_idtrue );
    Заменить на:
    PHP:
    if ( preg_match"#result=['\"](.+?)['\"]#i"$param_str$match ) ) {
        if ( 
    file_existsTEMPLATE_DIR '/' $match[1] . '.tpl' ) ) {
            
    $result file_get_contentsTEMPLATE_DIR '/' $match[1] . '.tpl' );
            
    $result str_replace'{result}'$tpl->result['content'], $result );
            
    $result preg_replace( array( '#\\[result\\](.*?)\\[/result\\]#iusU''#\\[not-result\\](.*?)\\[/not-result\\]#iusU' ), $custom_news ? array( '\1''' ) : array( '''\1' ), $result );

            
    $tpl->result['content'] = $result;
        }
    }

    create_cache"news"$tpl->result['content'], $custom_cache_idtrue );
     
    #1 iCooLER, 16 фев 2018
    Последнее редактирование: 16 фев 2018
    • Полезно Полезно x 3
    • Лучший Лучший x 1
  2. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    {result} использует шаблон краткой новости? как ему задать можно отдельный свой шаблон?
     
  3. TopicStarter Overlay
    iCooLER

    Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    390
    Лучших ответов:
    6
    Рейтинги:
    +320 / 12 / -0
    :eek:o_O:confused::mad: ска.....

    юзай template="майн_шаблон_для кастомной_новости" )))))

    {custom template="шаблон новости" result="обернем результат выполнения"}
     
    • Нравится Нравится x 1
  4. TopicStarter Overlay
    iCooLER

    Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    390
    Лучших ответов:
    6
    Рейтинги:
    +320 / 12 / -0
    Спасибо, настроение поднял ;)
     
  5. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    3
    я просто по примеру кастома вставку сделал, и увидел результат :)

    Всё работает отлично! Спасибо! ;)
     
  6. TopicStarter Overlay
    iCooLER

    Кодер

    Регистрация:
    13 сен 2016
    Сообщения:
    390
    Лучших ответов:
    6
    Рейтинги:
    +320 / 12 / -0
    Только когда тему создавал подумал, то что наверно хорошо было бы в обертке выводить хотя-бы название новости. Чтобы можно было прописать типа
    HTML:
    <h2>Новости к сериалу {title}</h2>
     
    • Нравится Нравится x 1
  7. byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    было бы отлично :)
     
Яндекс.Метрика