Подключение PHP библиотеки с помощью Libraries в Drupal

Итак, задача - нужно в собственном модуле проекта на Drupal 7 задействовать PHP библиотеку simple_html_dom для преобразования html кода в DOM и дальнейшего его синтаксического разбора. Задача простая до безобразия, кладем simple_html_dom.php в папку с модулем, пишем

require "simple_html_dom.php";

Это самый простой и действенный способ. Но как быть, если simple_html_dom нам нужно задействовать из разных модулей? Класть его в каталог с каждым модулем? Ну нет, есть способ лучше - воспользоваться услугами модуля libraries, который, конечно, все мы используем в своих Drupal проектах - а куда же без него? В данном случае все тоже достаточно просто: Пропишем libraries в зависимостях нашего модуля

dependencies[] = libraries

Далее в каталоге sites/all создадим каталог libraries, если еще не создан и в нем создадим каталог для PHP библиотеки, назовем его simple_html_dom, в него положим саму библиотеку simple_html_dom.php

Все, можно подключать библиотеку:

$path_to_lib = libraries_get_path('simple_html_dom');
require_once DRUPAL_ROOT . '/' . $path_to_lib . '/simple_html_dom.php';
 
function mymodule_article_submit_handler($form, &$form_state) {
  $html = str_get_html($form['body']['und'][0]['#default_value']);
  //Можно работать с объектами в $html
}
Комментарии