В командной разработке на Git регулярно возникает ситуация: вы работаете над фичей в ветке feature/xxx, ответвившись от master. Пока вы пишете код, коллеги успевают задеплоить в master несколько других фич, которые не пересекаются с вашей, но вносят изменения в общий код (например, исправляют баги, добавляют утилиты, меняют конфигурацию). Ваша задача — обновить свою ветку так, чтобы она включила эти “чужие” изменения, но при этом не тащила в историю лишние merge-коммиты и не смешивала логику. Идеальное решение — git pull origin master --rebase. Разберём этот кейс подробно.
Все записи категории ‘Программирование’
Как обновить базовую ветку фичи: кейс с rebase
CSS-префиксер для изоляции стилей: добавляем класс-обёртку ко всем правилам
При разработке крупных проектов или интеграции готовых UI-библиотек часто возникает проблема конфликта имён CSS-классов. Стили одной библиотеки могут неожиданно повлиять на элементы другой, даже если вы старались использовать уникальные имена. Обычно эту проблему решают через CSS Modules или Scoped CSS.
Читать далее »C5BB 1.0.11 обновления
Вышло небольшое, но полезное обновление модуля c5bb. Продолжаю заниматься поддержкой этого проекта.
Читать далее »Изменяем историю коммитов в GIT
Рассмотрим две наиболее частые операции — изменение названия коммита и слияние нескольких коммитов в один.
Читать далее »Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей
Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение и оставит тип text (или тот, который определён через #type).
Создание системы хлебных крошек в WordPress
Есть готовые решения, плагины, которые могут решать ваши задачи в области генерации хлебных крошек. Они отлично подойдут для готовых к использованию тем оформления. Здесь я их не рассматриваю.
В статье я покажу пару «собственных» подходов к генерации крошек, и это может стать основной для вашего решения.
Читать далее »Защита зараженного сайта: автоматическая сборка черного списка IP-адресов из логов Nginx
Представьте ситуацию: ваш сайт подвергся атаке. В корне и других папках появились подозрительные PHP-файлы, которых там быть не должно. Вы их удаляете, но через некоторое время они возникают снова. Очевидно, злоумышленники нашли и используют неизвестную вам уязвимость (дыру) — возможно, в одном из плагинов CMS или стороннем компоненте.
Читать далее »Ошибка формирования чека в best2pay для WooCommerce при использовании купонов — разбор и решение
В одном из проектов столкнулся с проблемой формирования фискального чека в модуле оплаты best2pay для WooCommerce. Ошибка проявлялась не всегда, а только при использовании промокодов и нескольких товаров в корзине. Формально платеж проходил, но строки в чеке формировались некорректно: вместо скидки появлялась строка с «авансовым платежом».
Читать далее »Использование модального диалога в Drupal
В комплекте Drupal включает в себя jquery dialog, который можно подключить и использовать для ваших целей на фронт-енд. Эта статья о том, как это быстро сделать и начать собственно использовать в своей теме оформления.
Читать далее »Добавляем кнопку регистрации на форму авторизации

В этой статье мы рассмотрим, как добавить кнопку «Register» в форму авторизации в Drupal, которая будет перенаправлять пользователя на страницу регистрации. Мы добавим кнопку в раздел actions формы и используем правильный подход для создания ссылки через маршруты с помощью сервиса маршрутизации.