drupal 6

УрокМодульное тестирование с помощью Simpletest

В Друпале существует два варианта тестирования - модульное и функциональное. Про функциональное тестирование с Simpletest я уже рассказал. Пришло время поговорить о модульном.

Сразу хочу отметить, что модульное тестирование - это не значит, что тестироваться будут модули. Просто в английском языке оно называется Unit testing, что по традиции переводиться именно как модульное тестирование. А то, что в Друпале всё построено на модулях - это досадное совпадение ;)

Как и раньше, для примеров я буду использовать код из модуля Simpletest Example, который является частью examples. Для вас это хорошо тем, что можно скачать и посмотреть исходники, или же опробовать их в деле.

УрокБезопасный SQL запрос к базе данных в секции IN при работе с динамическими данными

В Друпал 6 значения, подставляемые в sql запрос могут заменяться %f, %d, %s. Однако что делать, если надо передать в запрос массив данных, который использует секцию IN? Пример:

$result = db_query('SELECT title FROM {node} WHERE nid IN (1, 10, 25)');

Если значения nid заранее известны то проблем не возникает - просто пользуемся вариантом выше и получаем профит. Однако, если количество передаваемых значений не известно, то могут возникнуть трудности. Конечно, можно было бы сделать так:

УрокViews 2: Отображение количества элементов под их выводом

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

Если вы не боитесь использования PHP снипетов внутри вьюхи, то в настройках вьюса в подвале (footer) укажите формат ввода - php code и вставьте туда вот это:

<?php
  $current_view = views_get_current_view();
  print count($current_view->result);
?>

Это же можно сделать и другим способом. Например, через свой модуль. Для этого надо имплементировать хук hook_views_pre_render():

УрокТонкости программного создания страниц на сайте

В Друпале программно обычные страницы создаются допольно легким способом. И в 6й, и в 7й, и в 8й версии ядра они создаются похожим образом, а именно - имплементированием хука hook_menu() в свой модуль. В этой статье я не буду подробно останавливаться на базовой части - непосредственном добавлении страниц, так как это очень просто и не вызывает затруднений при самостоятельном обучении. Ведь для добавления страницы достаточно написать несколько строк:

function mymodule_menu() {
  $items = array();
  $items['new_page'] = array(
      'page callback' => 'mymodule_page',
    );
  return $items; 
}

Здесь создаётся страница с урлом new_page. При переходе на этот урл будет возвращено значение из функции mymodule_page().

УрокТемизация Drupal 7. Значения по умолчанию для info файла

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

Некоторые значения по умолчанию принимаются группой. Это значит, что перекрыв хотя бы один групповой параметр в .info файле, значения по умолчанию для этого параметра сбросятся. Например, если в файл добавить regions[header] = My header region, то все региноны по умолчанию будут сброшены, и в теме будет доступен только один регион - header.

УрокРабота с AJAX в Drupal

AJAX - Asynchronous Javascript and XML. Использование AJAX позволяет делать запросы к серверной части сайта и получать от него ответ без перезагрузки страницы. Преимущество использования AJAX в том, что загружается только необходимая часть - соответственно, загрузка происходит быстрее (не надо подгружать остальные элементы сайта).

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

УрокШпаргалка по хукам для drupal 6

Здесь собраны и описаны основные хуки для внедрения в модули Drupal версии 6.x.

Быстрый переход: ABCDEFHILMNPRSTUVWX

УрокКак программно изменять информацию в ноде

Содержимое ноды можно менять программно при реализации в своём модуле хука hook_nodeapi (для Drupal 6) или хуков nodeapi (для Drupal 7). Для этого сначала надо создать info-файл модуля (mymodule.info) и поместить его в папку sites/all/modules/mymodule.

Для Drupal 6:

Страницы