Статьи

Отладка Twig шаблонов

При отладке переменных в Twig шаблоне нужно учитывать некоторые особенности шаблонизатора. Во-первых, Twig не позволит вам вызывать php функции, которые вы могли использовать при отладке php шаблонов: var_dump(), print_r(), dpm() (функция модуля devel) и другие. Привычная отладка с помощью xdebug в файлах twig шаблонов тоже недоступна. Во-вторых, шаблоны Twig компилируются в php файлы, которые кешируются в файловой системе (в Drupal 8 файлы хранятся в каталоге sites/default/files/php/twig). И после установки Drupal 8 отладочные функции twig будут недоступны, также вы не увидите изменений сделанных в шаблоне до очистки кеша (кеш в Drupal 8 с помощью drush чистится командой drush cr).

Twig функции

Twig в своих шаблонах не позволяет вызывать php функции. Взамен этого шаблонизатор создает свои собственные функции. Как и в случае с Twig фильтрами, twig обладает определенным набором встроенных функций, к которым Drupal 8 добавляет свои специфичные Twig функции. Любой разработчик в случае необходимости может добавить свою собственную twig функцию. Для вызова функции в twig шаблоне ее достаточно обернуть в двойные фигурные скобки и передать в нее все необходимые аргументы:


{{ function(arg1, arg2, ...) }}

Twig фильтры

Для вывода переменной в Twig шаблоне ее достаточно заключить в двойные парные фигурные кавычки {{ var }}. Если же переменную перед выводом нужно изменить (модифицировать), то для этого предусмотрены Twig фильтры. Фильтры отделяются от переменной символом | и могут опционально принимать аргументы. К одной переменной можно применить несколько фильтров, которые будут применены последовательно в порядке их указания. Абстрактный пример применения фильтров выглядит так:


{{ var|filter1(arg1, arg2)|filter2 }}

Twig шаблонизатор имеет большой набор фильтров "на все случаи жизни", но и Drupal тоже добавляет свои специфичные фильтры.

Twig теги

В этой статье рассмотрим Twig теги - конструкции шаблонизатора, которые выполняют разнообразные задачи, такие как: условные операторы, циклы, экранирование данных, создание макросов, использование наследования шаблонов, запись в переменные и многое другое. В общем виде они записываются с помощью открывающего тега и закрывающего (именуется префиксом end). Закрывающий тег нужен не для всех конструкций. Пример абстрактного тега выглядит так:


{% tag %} {% endtag %}

Twig: Введение

В Drupal 8 на замену PHPTemplate пришел шаблонизатор Twig - "компилирующий обработчик шаблонов с открытым исходным кодом, написанный на языке программирования PHP. Armin Ronacher написал Twig в 2008 году для платформы блогов Chyrp. Он больше не возвращался к разработке и в большей степени занимался разработкой на Python. Синтаксис языка шаблонов Twig берёт начало от движков шаблонов Jinja и Django, первый из которых также создан Ронакером. Идею данного шаблонизатора развивает и поддерживает Fabien Potencier, ведущий разработчик и идеолог фреймворка Symfony, в котором Twig используется по умолчанию." (https://ru.wikipedia.org/wiki/Twig).

Uptolike share buttons - модуль социальных кнопок UpToLike

Суть сервиса UpToLike

UpToLike – модуль кастомизируемых социальных кнопок, которые собирают общую статистику посещаемости, а также статистику социальной активности пользователей на сайте. Всё, что можно делать с помощью UpToLike, для того, чтобы растить поток трафика на сайт из соцсетей, увеличивать социальную активность пользователей, укреплять социальные и поведенческие метрики сайта.

Entity cache и Display Cache — комплексное кеширование сущностей

В Drupal 7 одним из главных нововведений было появление новой концепции сущностей (Entity). К сущностям относятся: ноды, комментарии, пользователи, термины таксономии и другие. К сущностям также можно крепить любой набор полей. Но, наверняка, многие знают о проблемах с производительностью при загрузке объектов сущности и дальнейшем их рендеринге, отрисовке в html код для вывода на страницу. А в особенности, если выводится сразу много сущностей, да еще и если к ним прикреплено штук пару-пятнадцать полей.

Новогодние украшения на сайт

В предверии наступающих Рождества и Нового года владельцы сайтов стараются всячески украсить сайт на новогоднюю тематику. Это как правило разнообразные снежинки, летающие по странице сайта, либо же просто добавленные в элементы дизайна. К украшениям сайта также относится и стилизация логотипа сайта на новогоднюю тематику. И на мой взгляд с этими украшательствами главное не переборщить. Нужно чтобы они выглядели уместно и не бросались чересчур в глаза. Ведь согласитесь, что летающие по странице сайта громадные снежинки, мешающие читать текст, нанесут больше вреда.

Stop Spam - Изменение системных путей

Самый простой пожалуй способ избавиться от спам-ботов в комментариях - это запретить возможность анонимным пользователям оставлять комментарии (добавлять новые материалы). Но, если убрать возможность анонимам комментировать, все равно спам-боты будут пытаться зарегистрироваться на сайте, выполнить вход и оставить комментарий. Они это делают в массовом порядке, изучив особенности CMS и зная стандартные пути для регистрации и входа пользователей.

Подсветка кода и html теги в комментариях Disqus

Система комментирования Disqus изначально не предоставляет визуального редактора ( WYSIWYG) для вставки и редактирования html тегов в поле комментирования. Также, если вставить какой-либо код в тело комментария, то disqus его просто обрежет. Первоначально Disqus только предоставляет кнопу вставки изображения, которое будет прикреплено сразу же за текстовым содержимым комментария. Так же допускается вставка ссылки на youtube ролик, который будет отображаться в виде превьюшки в теле комментария.