Эволюция материи: от Большого взрыва до самосознания

  27 Авг, 2025

С момента Большого взрыва прошло почти 14 миллиардов лет. За это время Вселенная претерпела поразительные изменения: из раскалённого хаоса элементарных частиц возникли звёзды и планеты, а из простой химии — жизнь и разум. Мы привыкли воспринимать себя отдельно от этой цепочки событий, но на самом деле являемся её частью. Эта статья — краткий путь по основным этапам эволюции материи: от рождения первых атомов до появления сознания и размышлений о будущем.

Читать далее »

Oxygen Not Included: гайд для новичков

  20 Авг, 2025

Oxygen Not Included — это игра-симулятор выживания колонии дупликантов внутри астероида. У вас нет готовых ресурсов, каждую мелочь — от воздуха до еды — приходится добывать и перерабатывать. Ошибки здесь стоят дорого: затопили базу, отравили атмосферу или забыли про питание — и ваша колония встаёт на грань существования.

Если вы только начинаете знакомство с ONI или уже пару раз загубили стартовую базу, этот гайд поможет понять, на что обратить внимание в первые циклы и чего не делать. Я собрал основные темы, без которых новичку сложно выжить, и разбил их на отдельные статьи, чтобы вы могли изучать игру шаг за шагом.

Читать далее »

Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами

  8 Авг, 2025

В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date, а также функцию format_date().

В этой статье разберём основные варианты с примерами, в том числе:

  • использование форматов из админки /admin/config/regional/date-time.
  • получение текущего timestamp;
  • вывод даты в любом формате PHP;
  • локализация с помощью format_date();
  • работа с датами в ISO-формате;
Читать далее »

Как работает position: sticky с bottom: 0 и почему он «не работает»

  6 Авг, 2025

Иногда кажется, что position: sticky работает только с top. Указываешь bottom: 0 — и ничего не происходит. Особенно, если пытаешься сделать так, чтобы элемент «прилип» к нижней границе контейнера при прокрутке. Почему так?

Читать далее »

Как программно отрендерить View в Drupal и получить HTML

  3 Авг, 2025

В некоторых случаях удобно не только встроить View через UI или блок, но и программно срендерить представление (View) и получить HTML — например, для отправки во внешнюю систему, в e-mail, или вывода в нестандартном месте.

В этой статье покажем, как это сделать правильно — через Views::getView() и renderer->renderRoot().

Читать далее »

Как запретить Drupal использовать sites/default для неизвестных хостов

  30 Июл, 2025

В Drupal при использовании мультисайтовой конфигурации (sites/sites.php) существует скрытая особенность: если домен не найден в $sites, Drupal по умолчанию загружает настройки из sites/default. Это может привести к неожиданным проблемам:

  • Открытие сайта по IP-адресу;
  • Подмена домена в Host-заголовке (в том числе в атакующих целях);
  • Доступ к сайту в неподходящем контексте (на продакшене с тестовым доменом и т.д.);
  • Использование кеша с абсолютными ссылками с «чужого домена»;
  • и т.д.

К счастью, поведение легко изменить.

Читать далее »

Эффективное кеширование по доступу к ноде: параметрический Cache Context в Drupal

  26 Июл, 2025

Когда мы используем кеширование в Drupal, типичный подход — добавить user в список контекстов: ['user']. Это означает, что для каждого пользователя будет создана своя версия кеша. Иногда это оправдано. Но если доступ можно классифицировать в ограниченное число состояний — гораздо разумнее кешировать по этим состояниям.

Читать далее »

Отключаем страницы терминов таксономии в Drupal

  21 Июл, 2025

По умолчанию Drupal генерирует маршруты для каждого термина таксономии. Это означает, что у каждого термина появляется своя страница с URL вида /taxonomy/term/123. В некоторых случаях такие страницы могут быть полезны, например, если вы используете термины как категории для материалов и хотите отображать подборку по ним. Но чаще всего — особенно для вспомогательных словарей (тегов, фильтров, FAQ-групп) — такие страницы не нужны вовсе.

Читать далее »

Drupal: шаблоны для taxonomy_term и view mode — как добавить?

  19 Июл, 2025

При работе с таксономией в Drupal нередко возникает потребность отображать термины по-разному в зависимости от контекста. Например, один и тот же термин в режиме teaser должен выводиться компактно, а в режиме full — с подробным описанием.

Если вы используете разные view mode для терминов таксономии, вполне логично захотеть разные Twig-шаблоны для каждого режима. Но есть нюанс: в отличие от сущностей node, по умолчанию Drupal не предоставляет template suggestions для taxonomy_term в зависимости от view mode.

Читать далее »

WordPress: вывод рубрик и тегов таксономии в шаблоне single.php

  17 Июл, 2025

Если вы хотите отобразить рубрики (категории) и теги поста в шаблоне single.php — т.е. шаблоне одиночной статьи, WordPress предоставляет удобные функции из API-шаблонов. В этой статье разберем, как их использовать правильно и оформить вывод.

Читать далее »