drupal

Drupal 8 notes

  1. urls
    $current_url = \Drupal\Core\Url::fromRoute('<current>', array(), array("absolute" => TRUE))->toString();  // get full url

     

  2. Variables
    Drupal\Core\Site\Settings::get('some_setting_here'); // Get a setting from settings.php

     

Мультисайтинг c ServerAlias

Надо было создать 2 домена работающих на одном друпале (базы разные), у каждого есть синоним.

Т.е.

foo1.example.com (foo2.example.com, ... )

doo1.example.com (doo2.example.com, ... )

По дефолту пусть у нас будет  foo1.example.com

Для doo1.example.com создаем папку sites/doo1.example.com. Создаем в ней каталог files, копируем в нее файл settings.php, меняем в нем настройки доступа к бд и т.д.

Для его синонимов (doo2.example.com, ... ) создаем жесткие ссылки, указывающие на doo1.example.com

Geofield Yandex Maps от xandeadx

Недавно наткнулся на модуль для размещения яндекс карт в drupal.

Описание: http://xandeadx.ru/blog/drupal/704

Модуль: https://www.drupal.org/project/geofield_ymap

Координаты для модуля можно получить здесь: https://constructor.maps.yandex.ru/location-tool/

Правда идут они в другом порядке, т.е. не x,y , а y,x

drush

drush - утилита для работы с drupal в командной строке

Установка:

sudo apt-get install php-pear
sudo pear channel-discover pear.drush.org
sudo pear install drush/drush
sudo drush status

Чистка кеша для мультисайта:

 drush -l site_domain.here cache-clear all 

wysiwyg. Невозможно определение версии редактора CKEditor.

drupal version of ckeditor could not be detected
drupal Невозможно определение версии редактора CKEditor.

В новых версия ckeditor, версия модуля стала писаться в двойных кавычках. В то время как модуль wysiwyg ее ищет в одинарных.

Необходимо отредактировать файл: sites/all/modules/wysiwyg/editors/ckeditor.inc :

2147483647

  • Это наибольшее число, которое вмещает 32-битный знаковый целый тип данных signed int32.
  • Также это число связано с проблемой 2038 года, когда стандартный тип данных для хранения времени time_t переполнится на 32-битных компьютерах.

Убрать ссылку у пункта меню в Drupal

1. Ставим модуль Special menu items, включаем

2. На странице /admin/config/system/special_menu_items устанавливаем тег для будущего раздела меню без ссылки
(по умолчанию стоит <span>, я поменял на <a>)

3. Для пункта меню, не требующего ссылки, устанавливаем путь <nolink>

Убиваем spam на Drupal

У меня стоят 2 модуля:

https://www.drupal.org/project/simpleantispam

  1. Блокировка комментариев без отмеченного чекбокса "Я не спамер". И отмеченного скрытого чекбокса "Я спамер".

  2. Блокировка комментариев с количеством ссылок больше n количества

  3. Блокировка комментариев со словами из чёрного списка (надо вписывать)

  4. Блокировка комментариев с текстом длиннее n символов.

  5. Бан по ip после n неудачных попыток отправить спам комментарий.

Уведомление о невозможности отправки email в модуле webform; установка фокуса на поле заполненное с ошибкой

Условие задачи: имеется форма, перед формой расположена большая инструкция (на несколько страниц). Переодически случаются сбои в отравке почты.

Задача:

  1. Если пользователь заполнил форму с ошибкой, перемещать его к этому полю.
  2. В случае невозможности отправки почты, заного отображать заполненную форму, а также выводить сообщение об ошибке под кнопкой отправки. Перемещать страницу к этому сообщению.

Страницы