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

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть

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

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Drupal + Программирование

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

IT Разработка Backend Программист Web Web-программирование IT юмор Python Картинка с текстом Юмор Все
40 постов сначала свежее
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
0
DELETED
3 года назад

Экспорт БД в Drupal 8⁠⁠

Drush

В папке, где находится файл с базой данных, используем команду:

drush cr ; drush sql-dump > dump.sql

phpMyAdmin

- Переходим в phpMyAdmin;

- Выбираем БД из списка;

- Жмем вкладку Экспорт;

- Нажимаем кнопку Вперед.

Экспорт БД в Drupal 8 Программирование, Разработка, IT, Программист, Обучение, База данных, Drupal, Экспорт

Docker container

Если вы работаете на локалке, то этот способ предпочтительней. Особенно, если у вас большая База Данных.

В терминале пишем:

docker ps
Экспорт БД в Drupal 8 Программирование, Разработка, IT, Программист, Обучение, База данных, Drupal, Экспорт

Я нахожу строку с mariadb и узнаю нужный мне CONTAINER_ID

Экспорт БД из контейнера докера происходит по следующему образцу:

docker exec -i CONTAINER_ID mysqldump -uUSERNAME -pPASSWORD DATABASE_NAME > ./dump.sql

В моем случае, значения имеют следующий вид:

CONTAINER_ID: daf7d5df2d5eUSERNAME: drupalPASSWORD: drupalDATABASE_NAME: drupal

Следовательно, для того чтобы экспортировать БД я пропишу следующее:

docker exec -i daf7d5df2d5e mysqldump -udrupal -pdrupal drupal > ./dump.sql

Не забывайте прописывать -u перед логином и -p перед паролем.

Показать полностью 2
[моё] Программирование Разработка IT Программист Обучение База данных Drupal Экспорт
2
Партнёрский материал Реклама
specials
specials

Только каждый третий пикабушник доходит до конца⁠⁠

А сможете ли вы уложить теплый пол, как супермонтажник?

Проверить

Ремонт Теплый пол Текст
1
DELETED
3 года назад

Создаем страницу Help для модуля в Drupal 8⁠⁠

Сначала я создам тестовый модуль, чтобы было где показывать:

drush generate module

Назову его tester helper

Создаем страницу Help для модуля в Drupal 8 Помощь, Drupal, Программирование, IT, Разработка, Backend, Hook, Софт

Отрываем файл .module и воспользуемся следующим шаблоном:

<?php
use Drupal\Core\Routing\RouteMatchInterface;
/**
* Implements hook_help().
*/
function tester_helper_help($route_name, RouteMatchInterface $route_match) {
 switch ($route_name) {
  case 'help.page.tester_helper':
   $output = '';
   $output .= '<h3>' . t('About') . '</h3>';
   $output .= '<p>' . t('The module is example:') . '</p';
   $output .= '<ul>';
   $output .= '<li>' . t('To show simple hook template') . '</li>';
   $output .= '<li>' . t('To show how the page looks like') . '</li>';
   $output .= '<li>' . t('To show it is very easy to create help page for module') . '</li>';
   $output .= '</ul>';
   return $output;
  default:
  } 
}

tester_helper меняем на машинное имя своего модуля.

В переменную $output записываем содержимое страницы help.

Вот так эта страница выглядит у меня:

Создаем страницу Help для модуля в Drupal 8 Помощь, Drupal, Программирование, IT, Разработка, Backend, Hook, Софт
Показать полностью 1
[моё] Помощь Drupal Программирование IT Разработка Backend Hook Софт
4
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии