Как выполнить js код до и после печати страницы

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

$(window, context).load(function() {
  // То, что выполнится перед открытием диалога печати.
  var beforePrint = function() {
    console.log('Functionality to run before printing.');
  };
 
  // То, что выполнится после закрытия диалога печати.
  var afterPrint = function() {
    console.log('Functionality to run after printing');
  };

  if (this.matchMedia) {
    var mediaQueryList = this.matchMedia('print');
    mediaQueryList.addListener(function(mql...
Benya

Как заменить стандартные иконки файлов

Чтобы заменить стандартные иконки файлов необходимо в файле template.php добавить функцию theme_file_icon. Для примера заменим стандартную иконку excel файлов:

function themeName_file_icon($variables) {
  $file = $variables['file'];
  $icon_directory = $variables['icon_directory'];

  $mime = check_plain($file->filemime);
  if ($mime == 'application/vnd.ms-excel') {
    $icon_directory = path_to_theme() . '/images';
  }
  $icon_url = file_icon_url($file, $icon_directory);
  return '<img class="file-icon" alt="" title="' . $mime . '" src="' . $icon_url . '" />';
}

Далее кладем в...

Benya

Удаленный доступ к Quickstart

В предыдущем уроке я рассказывал как установить Quickstart. Из коробки Virtualbox настроен так, что Quickstart может видеть локальную сеть, но сеть не может видеть Quickstart. Для открытия удаленного доступа мы будем использовать сетевой мост.

Настройка сетевого моста

Если у Вас уже запущен Quickstart, то необходимо выключить его. Затем запускаем Virtualbox, в списке виртуальных машин находим нашу и кликаем по ней правой кнопкой мыши, в контекстном меню выбираем пункт "Настроить":

В открывшемся окне переходим на вкладку Сеть:

Выбираем тип...

Benya

Быстрый старт в разработке на Drupal

Долгое время я разрабатывал сайты используя платформу Open Server, при этом постоянно приходилось делать рутинные действие, такие как создать базу, создать домен, перезапустить Open Server, скачать и установить ядро, пройти все шаги по созданию и настройке учетной записи, скачать часто используемые модули (Ctools, Views и д.р). В конечном итоге мне надоело при создании нового проекта выполнять все эти рутинные действия и я задумался, а нет ли другой платформы для разработки, чтобы исключить эти шаги и экономить на них время? Долго искать не пришлось и мой выбор пал на виртуальную...

Benya

Как создать operation для Views Bulk Operations с помощью Rules

Сегодня в очередной раз пришлось поработать с модулем Views Bulk Operations (VBO). Суть задачи состояла в том, что необходимо было изменить стандартную страницу администрирования пользователей, расположенную по адресу "admin/people". Поставленную задачу я решил реализовывать с помощью модулей Views и Views Bulk Operations. И вроде бы все отлично получалось, но вот незадача, по умолчанию Views Bulk Operations предоставляет меньше операций над пользователями, чем доступно на стандартной странице.

В качестве примера приведу операцию Unblock the selected users, в модуле Views Bulk...

Benya

Как подключить jQuery UI Datepicker к форме в Drupal 7

Не так давно мне была поставлена задача написать модуль для резервации номеров в отеле. Выбор дат в форме резервации я решил реализовать с помощью виджета jQuery UI Datepicker. Весь модуль мы разбирать не будем, а остановимся на основных моментах с которыми столкнулся я в процессе разработки.

Сперва нам надо создать форму, к которой мы будем подключать виджет jQuery UI Datepicker, я покажу только кусок кода из модуля:

/**
 * Form constructor for the reservation form.
 *
 * @ingroup forms
 */
function mymodule_reservation_form($form, &$form_state) {

  $form['arrival'] = array...
Benya

Как подключиться к другой базе данных

Иногда приходится подключиться к другой базе данных и забрать из неё какие-либо данные. Сейчас я покажу, как правильно это делать в Drupal 7.

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

$other_database = array(
  'database' => 'database_name', // Название базы данных к которой будем подключаться.
  'username' => 'database_user', // Имя пользователя, который будет подключаться к базе данных.
  'password' =...
Benya

Ctools modal API. Работа с модальными окнами

Последнее время появляются все больше и больше сайтов с попапами. Благодаря Эрлу Майлзу мы имеем замечательный инструмент - Ctools, представляющий мощный API для друпалера. Сегодня мы рассмотрим modal API и научимся с ним работать.

В качестве примера будем открывать форму обратной связи в модальном окне. Но прежде чем начать, я быстренько пробегусь по командам AJAX-фреймворка.

  • ajax_command_after($selector, $html, $settings = NULL) – вставляет содержимое $html после селектора $selector;
  • ajax_command_alert($text) – выводит алерт с текстом $text;
  • ajax_command_append($selector, $html...
Benya