В Drupal контроллеры чаще всего возвращают Renderable
-массивы. Такие массивы автоматически проходят через систему рендеринга и подставляются в базовый шаблон темы (page.html.twig
). Но иногда бывает нужно получить полный Response
с темизацией вручную — например, когда дополнительно требуется работать с заголовками, cookie или особыми параметрами ответа.
Drupal: возврат страницы из контроллера с установкой cookie и использованием шаблона темы
GIT: перестать отслеживать файл или папку
Иногда в процессе разработки возникает ситуация, когда файл или целая директория уже добавлены в репозиторий, но их больше не нужно отслеживать. Например:
- вы по ошибке закоммитили файлы логов или временные данные;
- в проекте появилась папка с кэшем;
- какие-то данные должны оставаться только локально (например, настройки IDE).
GPT и кружка
Народ стебётся как может над GPT, типа «Восстание машин пока откладывается» и т.п. рассказывая о том, как GPT не может решить простую задачу.
Читать далее »Подключение к GitHub по SSH: пошаговая инструкция
Работа с репозиториями через SSH удобнее и безопаснее, чем по HTTPS — вам не нужно вводить пароль при каждом пуше, а авторизация выполняется с помощью криптографических ключей. Разберём процесс полностью: от создания ключа до проверки подключения.
Читать далее »Анимация прокрутки в CSS: animation-timeline: scroll()
Ещё недавно для прогресс-бара чтения на сайте приходилось подключать JavaScript: отслеживать событие scroll
, вычислять процент прокрутки и менять ширину элемента. Теперь это можно сделать чисто на CSS, благодаря новой возможности — Scroll-driven animations.
Эволюция материи: от Большого взрыва до самосознания

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

Oxygen Not Included — это игра-симулятор выживания колонии дупликантов внутри астероида. У вас нет готовых ресурсов, каждую мелочь — от воздуха до еды — приходится добывать и перерабатывать. Ошибки здесь стоят дорого: затопили базу, отравили атмосферу или забыли про питание — и ваша колония встаёт на грань существования.
Если вы только начинаете знакомство с ONI или уже пару раз загубили стартовую базу, этот гайд поможет понять, на что обратить внимание в первые циклы и чего не делать. Я собрал основные темы, без которых новичку сложно выжить, и разбил их на отдельные статьи, чтобы вы могли изучать игру шаг за шагом.
Читать далее »Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами
В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date
, а также функцию format_date()
.
В этой статье разберём основные варианты с примерами, в том числе:
- использование форматов из админки
/admin/config/regional/date-time
. - получение текущего timestamp;
- вывод даты в любом формате PHP;
- локализация с помощью
format_date()
; - работа с датами в ISO-формате;
Как работает position: sticky с bottom: 0 и почему он «не работает»
Иногда кажется, что position: sticky
работает только с top
. Указываешь bottom: 0
— и ничего не происходит. Особенно, если пытаешься сделать так, чтобы элемент «прилип» к нижней границе контейнера при прокрутке. Почему так?
Как программно отрендерить View в Drupal и получить HTML
В некоторых случаях удобно не только встроить View через UI или блок, но и программно срендерить представление (View
) и получить HTML — например, для отправки во внешнюю систему, в e-mail, или вывода в нестандартном месте.
В этой статье покажем, как это сделать правильно — через Views::getView()
и renderer->renderRoot()
.