В сайтах на Drupal широкое распространение имеет понятие блоков. Блоки - это самостоятельные участки содержания страницы. Каждый блок имеет заголовок и тело.
Каркас страницы сайта делится на зоны, вот в эти самые зоны мы и можем выставлять наши блоки. Кроме того для блоков можно определять их видимость, в зависимости от роли пользователя, раздела сайта или по каким либо другим признакам мы можем определить - показываться этому блоку или нет.
Так вот создавая очередной сайт на этой прекрасной системе управления я писал модуль. Одна из задач, которую должен был решить мой модуль - это определение блока, тело которого должно было содержать динамическую информацию, которая формировалась при соблюдении определенных условий. Для того чтобы определить блок, в модуле используется хук hook_block - специальная функция, которая определяет блоки и управляет ими в режиме показа, конфигурирования, сохранения и прочих событий.
Написал код, обновил кэш и увидел, что с сайта исчезли все блоки вообще. Поиски ошибок успехом не увенчались. Решил начать все сначала и обратился в раздел документации на системы.
В результате следующую тонкость системы - при создании сайта на Drupal, следует учитывать, что имя вашего модуля и имя вашей темы не должны быть одинаковыми. Это был какраз мой случай!
Кроме того имеются дополнительные тонкости, а именно:
- коллега по цеху подсказал, что в случае с одинаковыми именами модуля и темы, функция path_to_theme() будет возвращать 'module/system';
- если вы используете в качестве 'delta' ваших блоков строковые значения, убедитесь, что строки короче 32 символов, в противном случае они будут укорочены, и блок не будет реагировать на события;
- 'delta' в дальнейшем используется в качестве части аттрибута 'class' для div элемента, в который система помещает блок, так что если вы реализуете свой набор блоков, вы можете использовать строки вместо целого для удобства верстальщика.
Конечно, идеальных систем не бывает. Мы работаем с различными, в том числе и с платными CMS, и каждая из них имеет целый ряд особенностей, создающих те или иные неудобства. Тем не менее это не мешает нам находить правильные решения и делать качественные сайты.


Поздравляю вас Старо-Новым годом, желаю вам в новом году успехов и спасибо что вы находите время поддерживать ваш замечательный блог!
Большое спасибо!
Отправить комментарий