Оптимизация старых изображений на сайте с помощью ImageMagick. Bash-скрипт

Когда на хостинге заканчивается место, нужно сжимать картинки.

Следующий скрипт оптимизирует изображения, выполняя рекурсивный поиск в папках:

  • убирает анимацию gif, оставляя только нулевой фрейм [0];
  • сжимает картинки, большие 60Кб, до размера 380х380 пикселов;
  • сжимает картинки, большие 30Кб, но меньшие 60Кб, до размера 220х220 пикселов;
  • оптимизирует jpeg, большие 30Кб, меняя качество на 75%.

Drupal 8: Добавить классы в тег body

Drupal: 
Уровень сложности: 

Разработчики настраивают специфические css-стили html-элементов для отдельных страниц, разделов сайта с помощью дополнительных классов в теге body.

Для Главной страницы стиль логотипа, отличный от других страниц, задаёт код css: .path-frontpage .site-logo img {width:450px;}

Следующий код Twig добавляет классы в тег body для разных страниц, ролей, для различных вариантов отображения темы. Это даёт возможность настраивать отдельных страниц.

Drupal 8 темизация блока: добавить html, классы, изменить вывод блока

Drupal: 
Уровень сложности: 

Блоки в Drupal 8 создаются пользователем или модулями и отображаются в регионах.
Если необходимо управлять выводом блока Меню, Представления, тогда необходимо пользоваться хуком.
Следующий код позволяет темизировать блоки, влиять на содержимое блоков, созданных модулями или пользователем, учитывая переменные окружения (id блока, роль пользователя, тип страницы, разрешение экрана и т.д.)

Drupal 7 ошибка 500 после включения сложных модулей

После включения модуля Views Bulk Operations в Представлениях не добавился нужный функционал, но стала появляться ошибка 500 на страницах:

  • на странице Производительность - при очистке кэша,
  • на странице Блоки.

 

Ошибка 500

Причины ошибки описаны тут https://www.drupal.org/node/416906

  • неправильная конфигурация Nginx,
  • неправильные настройки прав и пользователей папок в Linux,
  • испорченные файлы.

 

Перевести сайт Drupal 7 на протокол HTTPS с бесплатными сертификатами LetsEncrypt на сервере Debian Nginx

Drupal: 
Уровень сложности: 

Переход на работу по протоколу HTTPS необходим для того, чтобы Chrome 56 не отображал сообщения о незащищённом соединении (новость 1, новость 2). Это основная причина, побудившая перевести http://tlito.ru на https://tlito.ru

Эта задача не из простых, в уроке вы узнаете ответы на вопросы и подробные инструкции.

Проверить наличие видео YouTube. PHP-скрипт проверки битых ссылок YouTube

Существует ли видео YouTube, или ссылка уже стала нерабочей?
Следующий скрипт проверяет наличие видео и разрешение публичного доступа по ссылкам двух типов: youtube.com/watch?v=... и youtu.be/...
Так можно проверить все вставленные на сайт видео, в специальном поле или внутри статей.
Закрыто ли видео от просмотра в стране, скрипт не проверяет.
Наследовано: http://stackoverflow.com/questions/1383073/how-do-i-check-if-a-video-exi...

Защита Контактной формы Drupal от надоедливого спамера (php-скрипт)

IP-адрес — идентификатор узла компьютерной сети. Это код, который присваивается каждому пользователю Интернета, поэтому посетителей сайтов можно считать, различать между собой и создавать персональные взаимодействия, даже если пользователь не предпринимает к этому усилий (не вводит логин и пароль).

Полезные утилиты администратора VPS

Уровень сложности: 

Базы данных

Adminer - скачать https://www.adminer.org - лёгкий и простой в использовании скрипт управления базами данных, аналог PHPmyadmin. В отличие от гиганта PHPmyadmin, код Adminer размещается в одном файле, который достаточно загрузить на сайт и открыть в браузере (без необходимости установки и настройки хоста).

 

Спойлер на CSS, без JavaScript

Без JS сайты быстрее и надёжнее.
Вот как делать динамический элемент на CSS. По кнопке <label>Кнопка</label> открывается блок .spoiler_body.

Drupal 8: ошибки в работе Composer и решения

Composer не только сложен, но и опасен для новичков. Его работа не видна, а поломки возможны.

Сайт не открывается после работы Composer

Error: The website encountered an unexpected error. Please try again later.
Ошибка: Сайт обнаружил непредвиденную ошибку. Пожалуйста, повторите попытку позже."

Страницы