Блог музицирующего веб-девелопера

Подписка на Лента Блог музицирующего веб-девелопера
URL-адрес: http://xandeadx.ru
Обновлено: 40 мин. 27 сек. назад

Drupal: Добавить в токен [term:parents:*] текущий термин

ср, 06/07/2016 - 23:58

Понадобилось в Metatag вывести через запятую иерархию имён термина. Нашёл токен [term:parents:join:, ], но проблема в том, что в него не входит текущий термин. Пришлось реализовать свой токен [term:parents-with-current:*]:

/** * Implements hook_token_info(). */ function MODULENAME_token_info() { $info['tokens']['term']['parents-with-current'] = array( 'name' => t('Parents with current term'), 'description' => t("An array of all the term's parents with current term, starting with the root."), 'type' => 'array', );

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Добавить в мета-тег canonical номер текущей страницы

чт, 19/05/2016 - 17:36

Модуль Metatag не позволяет с помощью токенов добавить в canonical номер текущей страницы. Создадим собственный токен [current-page:url:with-current-pager]:

/** * Implements hook_token_info(). */ function modulename_token_info() { return array( 'tokens' => array( 'url' => array( 'with-current-pager' => array( 'name' => t('URL with current page number'), 'description' => t('URL with current page number'), ), ), ), ); }   /** * Implements hook_tokens(). */

Читать дальше →

Похожие записи:

Категории: Друпалургия

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

чт, 12/05/2016 - 16:37

Программное удаление всех терминов из словаря с vid=1:

$vocabulary_vid = 1;   $root_terms = taxonomy_get_tree($vocabulary_vid, 0, 1); foreach ($root_terms as $term) { taxonomy_term_delete($term->tid); }

Комментарии

Похожие записи:

Категории: Друпалургия

Drupal: Универсальная очередь для выполнения произвольных функций

чт, 12/05/2016 - 04:07

Часто хочется выполнить отложенно какие-то функции, без описания очереди в hook_cron_queue_info() и реализации worker callback-a. Сделать это можно несколькими строчками кода:

/** * Implements hook_cron_queue_info(). */ function modulename_cron_queue_info() { $queues['universal_queue'] = array( 'worker callback' => 'modulename_universal_queue_callback', ); return $queues; }   /** * Universal queue worker callback. */ function modulename_universal_queue_callback($data) { if (isset($data['file'])) {

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Bad Practices

пт, 06/05/2016 - 02:55

Список худших практик в друпале, в противовес к Best Practices:

  1. Игнорирование coding standards. Самая распространённая ошибка как новичков, так и бывалых. Стандарты кодирования - первое что должен выучить друпал разработчик.

  2. Транслит в машинных именах. Когда разработчик называет что-то в духе novosti, field_razdel, razmeri, где-то умирает котик.

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Разрешить сабмит формы с открытым автокомплитом (autocomplete)

пн, 02/05/2016 - 04:19

В семёрке невозможно отправить форму с открытым автокомплитом ни нажатием на кнопку сабмита, ни клавишей Enter в поле ввода. Виновата в таком поведении функция Drupal.autocompleteSubmit(), которая навешивается на onsubmit. Чиним:

(function ($) { Drupal.autocompleteSubmit = function () { var $autocomplete = $('#autocomplete'); if ($autocomplete.length) { var selected = $autocomplete.get(0).owner.selected; $autocomplete.get(0).owner.hidePopup();

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Разрешить анонимам отправлять пользователям сообщения через их персональную контактную форму

пн, 18/04/2016 - 22:41

В седьмом друпале не работает разрешение Use users' personal contact forms для анонимных пользователей. Решение:

/** * Implements hook_menu_alter(). */ function MODULENAME_menu_alter(&$items) { // Override access callback. See contact_menu() if (isset($items['user/%user/contact'])) { $items['user/%user/contact']['access callback'] = 'MODULENAME_user_contact_access'; } }   /** * Personal contact form access callback. * @see _contact_personal_tab_access() */ function MODULENAME_user_contact_access($account) { global $user;

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Заменить страницу управления материалами на свой Views

пн, 18/04/2016 - 19:59

Способ заменить страницу admin/content своим представлением:

  1. Создаём представление типа Page.

  2. Указываем путь admin/content

  3. В настройках меню прописываем:

    Type = Normal menu entry
    Title = Content
    Menu = Managment
    Weight = -10

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Автоматический редирект с http на https версию сайта

вт, 12/04/2016 - 20:42

В .htaccess, перед

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ index.php [L]

добавляем:

RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Комментарии

Похожие записи:

Категории: Друпалургия

Разное: Настройка PhpStorm+Xdebug+OpenServer

пн, 11/04/2016 - 18:16

Настроил Xdebug в PhpStorm? Напиши на хабр! (с) хаброкоммент

Настройка OpenServer
  1. В используемых версиях PHP открываем php.ini и редактируем настройки:
    zend_extension = "%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll" xdebug.remote_enable = 1 xdebug.remote_autostart = 0 xdebug.remote_port = 9000 xdebug.remote_connect_back = 1 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir = "%sprogdir%/userdata/temp/xdebug/" xdebug.profiler_output_name = "cachegrind.out.%H%R" xdebug.idekey = ""
  2. Перезапускаем OpenServer.

Читать дальше →

Похожие записи:

Категории: Друпалургия

CSS: Компиляция LESS в PhpStorm на Windows с помощью less.php (без Ruby, без Node.js, без СМС)

сб, 09/04/2016 - 00:54

Пример настройки PhpStorm для компиляции LESS в CSS, без необходимости установки Ruby, Node.js и подобного, достаточно только PHP и LESS компилятора oyejorge/less.php.

Читать дальше →

Похожие записи:

Категории: Друпалургия

Drupal: Сгруппировать два дисплея Views в табы (локальные задачи)

пт, 12/02/2016 - 22:24

Есть два дисплея Views типа Page, например один выводит какие то ноды, а второй форму их сортировки с помощью DraggableViews. Нужно объединить представления в друпаловские табы:

Читать дальше →

Похожие записи:

Категории: Друпалургия

Страницы