Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Drupal

С этим тегом используют

IT Программирование Разработка Backend Программист Web Web-программирование Все
53 поста сначала свежее
1
DELETED
3 года назад
Web-технологии

Настройка антиспама в Drupal 8⁠⁠

Устанавливаем и включаем модуль Antibot через терминал:

composer require drupal/antibot ; drush en antibot -y

В настройках модуля Webform можно задать на все формы защиту от спама, поставив один чекбокс:

Настройка антиспама в Drupal 8 Разработка, Программирование, IT, Backend, Drupal, Web-программирование

Либо указать id форм в настройках модуля Antibot:

Настройка антиспама в Drupal 8 Разработка, Программирование, IT, Backend, Drupal, Web-программирование
[моё] Разработка Программирование IT Backend Drupal Web-программирование
1
2
DELETED
3 года назад

Установка патчей в Drupal 8⁠⁠

Ставим пакет, позволяющий композеру работать с патчами:

composer require cweagans/composer-patches

В файле composer.json, что в корне сайта, в разделе extra необходимо создать дополнительное вложение patches.

В нем патчи будут описываться по следующем образцу:

"patches": {
  "drupal/config_installer": {
    "Memory leak": "https://www.drupal.org/files/issues/2018-08-21/2991182-6.pat..."
  }
}

Модуль, который будет пропатчен, обязательно должен быть установлен через composer.


Для того чтобы применить патч — в терминале в корневой папке сайта прописываем команду:

composer update nothing
[моё] Разработка Программирование IT Backend Patch Фикс Drupal Cms Баг Текст
1
DELETED
3 года назад

Простейший поиск в Drupal 8⁠⁠

Добавляем новое представление:

/admin/structure/views/add

Если вы выводите содержимое вместо полей, то в настройках формата поставьте галку Принудительно использовать поля.

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

Добавьте поля, по которым будет производится поиск:

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

В Критериях фильтрации добавляем поле Фильтр комбинированных полей и делаем его раскрытым.

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

В селекте «Оператор» выбираем «Содержит».

В поле «Выберите объединяемые для фильтрации поля», зажимая клавишу CTRL, выберите поля, по которым будет производится поиск.

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

Сохраняем представление.


Переходим на страницу поиска:

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

Форма поиска привязана к странице. Для того чтобы сделать ее отдельным блоком:


В настройках представления → Расширенные → Раскрытая форма → Раскрытая форма в блоке → Ставим radiobutton в положение «Да».

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

В схеме блоков:

/admin/structure/block

Добавляем блок поиска нашего представления:

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

Я расположил в сайдбар:

Простейший поиск в Drupal 8 Разработка, Программирование, IT, Drupal, Поиск, Backend, Web-программирование, Длиннопост

Если вам нужно сделать очень простой поиск — данный подход для вас.

В иных случаях советую смотреть в сторону SEARCH API.

Показать полностью 6
[моё] Разработка Программирование IT Drupal Поиск Backend Web-программирование Длиннопост
1
DELETED
3 года назад

Меняем иконки в AddToAny / Drupal 8⁠⁠

Заходим в настройки модуля:

/admin/config/services/addtoany

Стандартная разметка выглядит так:

<a class="a2a_button_facebook"></a>
<a class="a2a_button_twitter"></a>
<a class="a2a_button_google_plus"></a>

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

<a class="a2a_button_facebook">
  <img src="/sites/default/files/custom/icons/fb.png" width=32 height=32>
</a>
<a class="a2a_button_twitter">
  <img src="/sites/default/files/custom/icons/tw.png" width=32 height=32>
</a>
<a class="a2a_button_google_plus">
  <img src="/sites/default/files/custom/icons/google.png" width=32 height=32>
</a>
[моё] Программирование Разработка IT Drupal Текст
1
1
DELETED
3 года назад

Обновление ядра и модулей / Drupal 8⁠⁠

Прежде чем приступать к обновлению — всегда читайте логи на странице релиза ядра/модуля и уже на основании этой информации — принимайте решение — обновляться или нет.


Бэкап

Делаем резервную версию сайта:

drush ard

Если сайт сделан через Drupal Project, то девятый drush будет поставлен локально. Команда drush ard может не сработать.

Именно поэтому бэкап придется сделать вручную.

Выгружаем базу данных в текущую папку:

drush cr ; drush sql-dump > dump.sql

Архивируем папку с сайтом:

zip -r site.zip site

Обновление ядра

Ядро обновляется командой:

composer update drupal/core --with-dependencies -o

После обновления ядра необходимо обновить базу данных и выгрузить конфиги:

drush cr ; drush updb --entity-updates -y ; drush cex -y

Идем на страницу “Отчет о состоянии” и проверяем на наличие ошибок и смотрим на версию ядра:

/admin/reports/status

В некоторых случаях, когда нужно обновить старый сайт, нужно удалять папки core, vendor и composer.lock, предварительно сделав резервную копию:

zip -r core.zip core ; zip -r vendor.zip vendor ; zip composer.lock.zip composer.lock ; rm -rf core ; rm -rf vendor ; rm composer.lock

И обновить весь сайт:

composer update --with-dependencies -o ; drush updb --entity-updates -y ; drush cr ; drush cex -y

Будьте крайне осторожны, обновляя все на сайте. После обновления некоторых модулей — часть функционала сайта может оказаться неработоспособной.


Обновление модуля

Модуль обновляется точно также как и ядро. Единственное отличие, что вместо core необходимо прописать название модуля:

composer update drupal/modulename ; drush updb --entity-updates -y ; drush cr ; drush cex -y

Если модуль не обновился - возможно его нет в файле composer.json. Как правило, это значит, что модуль был установлен через drush.

Нужно заново установить его через composer:

composer require drupal/modulename ; drush updb --entity-updates -y ; drush cr ; drush cex -y

Все настройки модуля сохранятся.


Восстановление сайта через бэкап

Это больше актуально, если вы по каким-то причинам обновили сайт сразу на продакшине. Этого делать не рекомендуется. Лучше сделать апдейт на локалке или техническом сервере, после чего — перенести изменения на основной сайт.


drush

Если сайт сломан и нет времени разбираться, то лучше сразу развернуть бэкап.

drush arr backup.tar.gz --overwrite

Файл с бэкапом должен располагаться параллельно с папкой сайта.


Вручную

Если бэкап был сделан вручную, то просто разархивируем архив и заменяем старый на него.

Импортировать БД, которая находится в файле dump.sql можно командой:

drush sql-drop ; drush sql-cli < dump.sql

sql-drop полностью очистит БД, доступы к которой хранятся в файле:

/sites/default/settings.php

sql-cli < dump.sql импортирует БД из файла dump.sql в БД, доступы к которой хранятся в файле:

/sites/default/settings.php

Убедитесь, что файл dump.sql на месте. Иначе можно очистить текущую БД, а импортировать будет нечего.

Сбрасываем кэш:

drush cr

Возможные проблемы


Последние записи журнала

Если сайт перестал работать, вместо страницы открывается непредвиденная ошибка или страница 500, то причину можно прочитать на странице “Последние записи журнала”:

/admin/reports/dblog

Находим последнюю ошибку. Если по контексту понятно в чем проблема - исправляем. Если нет - копируем ошибку и гуглим.


Журнал в ISPmanager

Попасть в журнал ISPmanager можно по адресу:

site.ru:1500/ispmgr

Журналы ошибок находится в сайдбаре -> WWW -> Журналы.

Открываем:

site.ru.error.log

Далее, аналогично с пунктов “Последние записи журнала”


Проблемные модули

Должен предупредить, что все, что написано ниже — это проблемы, с которыми столкнулся лично я. Вполне вероятно, что я делал что-то не так, и информация не отражает действительности. Если это так — напишите мне, буду рад исправиться.


Следующие модули лучше не обновлять:

- Block tabs;

- Color field;

С этими стоит быть осторожнее:

- Webform;

- Admin Toolbar;


После апдейта может поменяться разметка, а следовательно - верстка слетит.

Для того чтобы модули не обновились после команды:

composer update --with-dependencies -o

Нужно установить конкретную версию модуля. Например мы видим, что Block Tabs требует обновления:

Обновление ядра и модулей / Drupal 8 Программирование, Программист, Обучение, Drupal, Backend, IT, Разработка, Урок, Isp, Длиннопост

Т.к. сейчас установлена версия 8x-1.0-alpha3, то я копирую все, после 8x- и переустанавливаю Block Tabs, чтобы он не обновлялся и был зафиксирован на этой версии:

composer require drupal/blocktabs:1.0-alpha3
Показать полностью 1
[моё] Программирование Программист Обучение Drupal Backend IT Разработка Урок Isp Длиннопост
1
DELETED
3 года назад

Создание вебформы в Drupal 8⁠⁠

Устанавливаем и включаем модуль Webform:

composer require drupal/webform ; drush en webform_ui -y

Заходим на страницу списка всех вебформ:

/admin/structure/webform

Нажимаем кнопку «Add webform» и пишем заголовок вебформы.

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Наша вебформа будет состоять из:

- Имя;

- Почта;

- Комментарий;

- Согласие на обработку персональных данных;

- Кнопка отправки.


Добавим текстовое поле. Для этого в настройках вебформы нажимаем кнопку «Добавить элемент» и выбираем «Текстовое поле»:

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Пишем название поля и меняем машинное имя:

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Сохраняем. Аналогично добавляем Почту и Комментарий, но вместо текстового поля — Email и Текстовая область соответственно.

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Теперь добавим поле с согласием на обработку персональных данных. Нам понадобится чекбокс / флажок:

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Осталось только настроить кнопку и форма готова:

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Заходим на страницу «Подтверждение».

/admin/structure/webform/manage/машинное_имя_вебформы/settings/confirmation

Что увидит пользователь после заполнение формы?

Самый простой способ — модальное окно!

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Теперь можем протестировать нажав на кнопку «Тест».

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Все заявки можно увидеть на странице «Результаты»:

/admin/structure/webform/manage/машинное_имя_вебформы/results/submissions
Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Для того чтобы сообщения с вебформы приходили на почту — заходим на страницу «Emails/Handlers»

/admin/structure/webform/manage/feedback/handlers

Нажимаем кнопку «Add email». Необходимо заполнить следующие настройки:

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Здесь я настраиваю отправку почты для себя, чтобы иметь возможность протестировать вебформу.

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Кому будут приходить письма с вебформы? CC email и BCC email это второй и третий получатель. Но я никогда не пользуюсь этими полями.

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

От кого будут приходить письма. Почта отправителя не обязательно должна существовать. Главное, чтобы домен отправителя совпадал с доменом сайта.

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Тема и содержимое сообщения. Особое внимание к Twig — он позволит более или менее оформить письмо.


После окончания тестирования формы — отправку можно отключить во вкладке «Расширенные»:

Создание вебформы в Drupal 8 Разработка, Программирование, IT, Drupal, Backend, Cms, Электронная почта, Длиннопост

Если сайт не отправляет формы — вам нужно настроить SMTP.

Если письма не приходят сверстанными — вам нужно настроить Mime Mail.

Показать полностью 14
[моё] Разработка Программирование IT Drupal Backend Cms Электронная почта Длиннопост
6
DELETED
3 года назад

Отключаем кэширование в Drupal 8⁠⁠

Открываем файл:

sites/default/settings.php

Раскомментируем следующие строки:

if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}

Создаем файл settings.local.php:

cp sites/example.settings.local.php sites/default/settings.local.php

Раскомментируем следующие строки:

$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['page'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

Создаем файл development.services.yml:

cp sites/development.services.yml sites/default/development.services.yml

Создаем файл services.yml:

touch sites/default/services.yml

И добавляем в него параметры:

parameters:
twig.config:
debug : true
auto_reload: true
cache: false

Сбрасываем кэш:

drush cr
[моё] Разработка Программирование IT Drupal Cache Backend Cms Текст
6
DELETED
3 года назад

Оптимизация CSS и JS в Drupal 8⁠⁠

1. Перейти в раздел производительность.

/admin/config/development/performance

Оптимизация CSS и JS в Drupal 8 Drupal, Backend, CSS, Javascript, Разработка, Программирование, IT, Перформанс

2. Поставить галки на Объединение CSS файлов и Объединить файлы JavaScript.

3. Нажать кнопку Сохранить конфигурацию.


Это простейший способ оптимизировать CSS и JS, которого должно быть достаточно в 90% случаев (в рамках drupal).

[моё] Drupal Backend CSS Javascript Разработка Программирование IT Перформанс
1
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии