Добрый день !
Допустим, у меня есть php-файл с моими пользовательскими функциями, которым я уже давно пользуюсь.
В какой папке Drupal такой файл (или такие файлы) принято размещать размещать, чтобы иметь к ним доступ как из своих модулей, так и из файлов, отвечающих за темизацию ?
В папке sites/all/modules ? Или в какой-нибудь другой ?
Комментарии
sites/all/libraries/ПАПКА_БИБЛИОТЕКИ
Поставьте модуль Library API, дайте знать ему о вашей библиотеке при помощи
<?php
hook_libraries_info
() ?>Взять путь к вашей библиотеке
<?php
$libraries
= libraries_get_libraries();if (isset(
$libraries[$library])) {$path = libraries_get_path($library);
} ?>
А если такое решение ?
Там, где эта библиотека будет использоваться, просто писать такую строчку.
<?php require_once(DRUPAL_ROOT.'/sites/all/libraries/mylib.php');?>
Это не DrupalWay
Это не DrupalWay
Так а что в этом случае нарушается ?
Стандарты разработки под Drupal, на которые ориентируются другие разработчики. Ну есть еще подводный камень - скорее всего вставится этот код куда-нить в тему или блок. А это - и потенциальная уязвимость (включаете PHP Filter) и отладить такой код вы не сможете. Например, в случае ошибки в теме, в логе ошибок Apache проблемный участок почти никогда не фиксируется. По моему даже в дебаггере и профайлере вы не найдете, где же собственно споткнулся PHP.
Если использование Library API для подключения модуля - стандарты Drupal, то почему этот модуль отсутствует в ядре и я не нашел никаких о нем упоминаний в литературе по Drupal ?
А насчет отладки - я сейчас интереса ради сделал ошибки в библиотеке - при выводе темы без проблем сообщение об ошибке выдается.
И функция dpm() внутри библиотеки работает.
Думаю, для отладки этого хватит.
Хорошо, если так. Но проблема не в использовании / не использовании Libraries. А в том, что код вы пишете не в модуле, а непонятно где - в этом неправильность.
Есть базовая поддержка, см
http://api.drupal.org/api/drupal/modules!system!system.api.php/function/...
Просто Library API расширяет возможности для подключения других библиотек.