7

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

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

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

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

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

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

Таблица помечена как повреждённая (crashed), и не создаётся материал

Проблема: При создании материала с тегами или другими полями типа ссылка на термин таксономии материал создаётся частично из-за возникновения ошибки в работе таблицы field_taxonomy_name.
Причина: Таблица могла быть повреждена из-за какого-либо сбоя сервера баз данных.
Решение: подключитесь к серверу баз данных (или войдите в phpmyadmin) и выполните sql-код, указав ваше название таблицы:

Обзор модулей мобильных меню

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

Под названием - ссылка на страницу модуля, через тире - доступность для версий Drupal.

Responsive CSS Menu - доступно для Drupa 7, Drupal 8 - делает отличное сжатие до одной кнопки любого меню, мощный со множеством стилей меню. Настраивается в админке, можно задавать размер экрана, при котором меню сворачивается, например, в кнопку ☰ или ☰ Навигация.

Оптимизация объёма страниц сайта на Drupal

Просмотр сайтов при низкой скорости Интернет-соединения бывает некомфортным. Это требует от разработчика сайта решения вопроса оптимизации объёма страниц. Ускорить загрузку сайта на CMS Drupal - это обычно означает включить кэширование Boost и отключить не используемые JavaScript.

Было на сайте тлито

Субъективная оценка: визуально, довольно быстрая загрузка страниц при таком speedtest:
speedtest

Модуль обновления стиля картинки при каждом редактировании материала

Допустим, у вас сложный Вид показа изображений (в официальном переводе - Стиль изображений), применяемый для отображения картинок в материалах Фото. Например, вы вставляете в картинку текст из другого поля с помощью Image Effects Text или другие действия с модулем Imagecache Actions. Если содержимое картинки зависит от нескольких полей материала, то при редактировании материала стилизованная картинка не будет обновляться, если файл картинки остался прежним. То есть, если вы поменяли текст, который должен быть на картинке, то останется старый текст.

Подборка статей о настройке VPS Nginx для Drupal

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

Владельцам друпал-сайтов на VPS/VDS будет полезно узнать об оптимальной настройке сервера. Настройка Nginx без Апача и с Апачем предложена в следующих статьях.
( В этом обзоре преимущественно о Nginx без Апача, о связке Apache2 + Nginx или только об Апаче - в другой статье: http://tlito.ru/node/267 )

Официальная группа Drupal Nginx https://groups.drupal.org/nginx
Там отображаются вопросы новичков и статьи профессоналов. Около 200 материалов.

KSnapshot - скриншоты с временной задержкой

Сделать скриншот в Linux с динамическими элементами, типа список выбора select или в игре, видео позволяет программа KSnapshot.
Часто бывает необходимым сделать принтскрин с раскрытым списком select на сайте или другими динамическими элементами. Это невозможно, потому что при раскрытом списке не работает клавиша PrtScr, а если пользоваться Shutter и другими программами, они снимают то что есть на экране в данный момент.

Экстремальное ускорение Drupal-сайта на виртуальном хостинге

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

Если вы настроили модуль Boost для анонимов и хотите повторить успех для авторизованных, тогда попробуйте закомментировать строку в .htaccess в секции Boost:

# RewriteCond %{HTTP_COOKIE}

После этого все авторизованные пользователи будут видеть кэшированные для анонимов страницы, если имеются (а если не имеются, то обычный вывод Друпал для авторизованных, без буст).

Настроить кэширование для анонимов и авторизванных на виртуальном хостинге или сервере

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

Этим занимается модуль Authcache. В нём есть несколько модулей для кэширования различных типов данных: представлений, блоков, меню, комментариев, полей, форм. Я использовал его в связке с File Cache, включив при этом Authcache Builtin Storage Backend. В результате на виртуальном хостинге скорость работы сайта стала очень комфортной.

Настройки Colorbox для адаптивных сайтов

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

После вопроса https://toster.ru/q/264189 предлагаю точную инструкцию как сделать Колорбокс респонсивным. Если ваш сайт респонсивный, тогда и всплывающие окна Colorbox тоже должны адаптироваться под размер окна/экрана.

Это делается на странице настроек Колорбокс, то есть: Конфигурация - Медиа-файлы - Colorbox, тут: /admin/config/media/colorbox

Создание нового региона в шаблоне Drupal и вывод региона в page.tpl.php

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

Регионы - это части страницы, в которых могут размещаться Блоки. Так как модуль Block широко используется в Друпал для отображения меню, представлений, собственных блоков с текстом, слайдов, языков, поиска, то часто возникает необходимость работы с регионами.

Добавив новый регион вы можете легко управлять содержимым, отображаемым в это регионе. Используя модуль Block можно проще и быстрее менять содержимое для разных страниц, вместо того, чтобы править файл шаблона page.tpl.php

Отключить для анонимов все JavaScript в хуке, кроме определённой страницы

JavaScript ускоряет сайт в руках профессионалов, обновляя страницы без перезагрузки. Также js помогает подобрать фразы для поиска. Но есть случаи, когда js отнимает скорость загрузки страниц, а его польза сомнительна. Если вашему сайту не нужен слайдер, выпадающие меню с js, или слайдер нужен только на главной, отключите javascript там, где он не нужен. Пользователи мобильного Интернета или гаджетов получат больше пользы на вашем сайте (скорость загрузки).

Отключить все JS из админки Друпал невозможно (о таком модуле мне ещё неизвестно), и друпал будет добавлять по умолчанию:

Респонсивный видеоплеер. CSS адаптивных видео

Адаптивный дизайн на Drupal - это ещё и адаптивный видеоплеер. Предложенные здесь css-коды для Drupal 7 и Drupal 8 делают респонсивным плеер с именами классов Video Embed. Вы можете переписать эти примеры css для видео внутри текстовых полей и любых других имён классов (не только друпал).

Все модули вставки видео на Drupal

Вставлять видео из YouTube и Vimeo очень удобно с модулем Video Embed Field. Этот модуль позволяет выбирать стиль отображения поля типа Video Embed, создавать и управлять этими стилями. В настройках каждого стиля можно задать:

Программно изменить название материала в тегах title и h1

Допустим, вы хотите создавать материалы, в которых название должно складываться из двух полей. Работать с тегами title можно при помощи модуля Page Title, в котором можно задавать шаблоны с токенами для тега title разных типов страниц, но он не работает с тегами h1. Для работы с обоими тегами title и h1 существуют Title field UI, Title Override, но если вдумчиво прочитать страницы этих модулей или попробовать, то можно не найти решение этой конкретной проблемы.

Свой модуль User Field Access with Entity reference - Показывать поле материала только определённым пользователям, указанным в поле Доступ

Этот модуль разграничивает доступ к содержимому материалов для определённых пользователей. Автор материала при создании может указывать в поле Доступ имена пользователей, которые будут иметь доступ к полю body (Текст). Все другие пользователи не будут видеть это поле.

По умолчанию всегда показывается это поле для ролей: administrator, editor - а также для самого автора материала.

Страницы

Подписаться на Front page feed