Хак Использование тегов [declination=X][/declination] во всех .tpl файлах шаблона и незначительное измен

Тема в разделе "DLE", создана пользователем mishiko, 15 ноя 2014.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. mishiko

    mishiko Создатель

    Регистр.:
    5 сен 2011
    Сообщения:
    276
    Симпатии:
    117
    Этот хак позволяет использовать теги [declination=X][/declination] во всех .tpl файлах шаблона и вносит незначительное, но удобное изменение в работу этих тегов.

    Открыть index.php в корне сайта и найти:
    Код:
    echo $tpl->result['main'];
    Выше вставить:
    Код:
    $tpl->result['main'] = preg_replace_callback ( "#\\[declination=(\d+)\\](.+?)\\[/declination\\]#is", "declination", $tpl->result['main'] );
    Открыть файл engine/modules/functions.php и найти:
    Код:
    return $matches[1]." ".$word;
    Заменить на:
    Код:
    return $word;
    Готово.

    Теперь расскажу об изменение работы этих тегов.
    Если использовать такую конструкцию:
    У вас
    Код:
    [declination={new-pm}]сообщен|ие|ия|ий[/declination]
    То результат на странице будет выглядеть вот так:
    У вас 10 сообщений

    Этот хак убирает число и пробел между словом, оставляя только склоненное слово, создавая потребность писать числовой тег дополнительно. Тем самым позволяет использовать более сложные конструкции такого вида:
    У вас
    Код:
    {new-pm} [declination={new-pm}]нов|ое|ых|ых[/declination] [declination={new-pm}]сообщен|ие|ия|ий[/declination]
    Результат на странице будет выглядеть вот так:
    У вас 10 новых сообщений

    Кто не понял, без доработки - это выглядело бы так:
    У вас 10 10 новых 10 сообщений


    Надеюсь пригодится в ваших проектах ;)
     
    stels и killoff нравится это.