Все записи категории ‘Программирование’

Квантование ширины: способ балансировать текст в кнопках на CSS

 25 Сен, 2025

Иногда кнопки на сайте содержат очень разный по длине текст. С коротким текстом всё просто: он помещается в одну строку и выглядит аккуратно. Но как только текст становится длиннее, приходится переносить его на две строки. Проблема в том, что при автоматическом переносе строки получаются неравномерными: в первой может влезть почти вся фраза, а одно слова оказаться во второй строке.

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

Как удалить дубликаты из таблицы в MySQL

 24 Сен, 2025

Под дублями можно иметь в виду разные условия. Возьмем как пример таблицу имен. В этой таблице есть повторяющиеся значения в поле name. Разберём практический способ удалить такие записи в MySQL с помощью одного SQL-запроса.

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

Drupal: как получить список target_id из ссылочного поля без перебора массива

 20 Сен, 2025

При работе с сущностями в Drupal нередко возникает задача: из ссылочного поля (entity reference) нужно достать список ID связанных объектов.

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

Скрипт для рекурсивной распаковки

 18 Сен, 2025

Столкнулся с задачей на практике — в архиве tar.gz лежит еще один архив, в котором еще один и так далее… Как с кощеевым яйцом, только цепочка в матрешке куда более длинная.

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

Как в шаблоне параграфа получить заголовок родительской ноды

 15 Сен, 2025

Иногда возникает задача: в Twig-шаблоне параграфа (paragraph.html.twig) нужно отобразить заголовок материала (ноды), к которому этот параграф прикреплён.

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

Drupal: возврат страницы из контроллера с установкой cookie и использованием шаблона темы

 12 Сен, 2025

В Drupal контроллеры чаще всего возвращают Renderable-массивы. Такие массивы автоматически проходят через систему рендеринга и подставляются в базовый шаблон темы (page.html.twig). Но иногда бывает нужно получить полный Response с темизацией вручную — например, когда дополнительно требуется работать с заголовками, cookie или особыми параметрами ответа.

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

GIT: перестать отслеживать файл или папку

 10 Сен, 2025

Иногда в процессе разработки возникает ситуация, когда файл или целая директория уже добавлены в репозиторий, но их больше не нужно отслеживать. Например:

  • вы по ошибке закоммитили файлы логов или временные данные;
  • в проекте появилась папка с кэшем;
  • какие-то данные должны оставаться только локально (например, настройки IDE).
Читать далее »

Как полностью удалить поле в Drupal, если оно «зависло» в хранилище полей

 5 Сен, 2025

Иногда в Drupal возникает ситуация: вы удаляете поле с типов сущностей (bundle), но оно не исчезает полностью из системы. UI говорит, что поле «используется», хотя на самом деле ни одна сущность его не использует. В этом случае поле остаётся в конфигурации как FieldStorageConfig.

Разберёмся, как удалить такое «висящее» поле.

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

Подключение к GitHub по SSH: пошаговая инструкция

 3 Сен, 2025

Работа с репозиториями через SSH удобнее и безопаснее, чем по HTTPS — вам не нужно вводить пароль при каждом пуше, а авторизация выполняется с помощью криптографических ключей. Разберём процесс полностью: от создания ключа до проверки подключения.

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

Анимация прокрутки в CSS: animation-timeline: scroll()

 1 Сен, 2025

Ещё недавно для прогресс-бара чтения на сайте приходилось подключать JavaScript: отслеживать событие scroll, вычислять процент прокрутки и менять ширину элемента. Теперь это можно сделать чисто на CSS, благодаря новой возможности — Scroll-driven animations.

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