- Як встановити модуль Drupal?
- Структура модулів в Drupal
- Структура .info файлу
- Структура .module файлу
Привіт юним друпалерам! Цей пост призначається саме вам, хоча і для розробників середньої ланки теж буде пару цікавих моментів. Після прочитання цього матеріалу ви дізнаєтеся з чого складаються Drupal модулі , Як їх правильно встановлювати і використовувати.
Стандартний Drupal «з коробки» володіє, як правило, недостатнім набором функціоналу навіть для зубожілого сайту-візитки. Розширюється перелік повноважень установкою і налаштуванням вже готових модулів або ж написанням власних рішень. Всі модулі раджу скачувати з офіційного сайту Drupal.org, щоб в один прекрасний день не виявити, що ваш сайт упав або, ще того гірше, його зламали.
Як встановити модуль Drupal?
Для початку треба запам'ятати, що «зона» розробника - це папка "sites". Всі інші папки - це ядро Drupal, в яке лізти взагалі не варто, тим більше, початківцям розробникам. Якщо вам раптом здасться, що рішенням всіх проблем буде внесення правок в код ядра - відкрийте Drupal API і курите його до просвітління свідомості. Все, що стосується додаткових модулів, має зберігатися в папці "sites / all / modules".
Так, в адмінці Drupal є функція «Встановити модуль», однак мені вона ніколи не подобалася - зараз поясню чому. Якщо у вас серйозний проект, то вам, напевно, крім установки стандартних модулів доведеться патчить деякі з них або ж взагалі писати власні рішення. Тому на своїх проектах я взяв за правило розділяти все це скупчення коду. Для цього в папці "sites / all / modules" створюємо три підкаталогу:
- contrib - для зберігання стандартних (на сленгу «контріб») модулів;
- patched - для зберігання контріб модулів з застосованими патчами;
- custom - для зберігання власних модулів.
Все, тепер залишається вручну заливати модулі в відповідні папки і включати їх в адмінки ( "admin / modules") - Drupal все знайде, не переживайте. Подібна архітектура спрощує спільну розробку, спрощує життя розробнику, якому, можливо, колись доведеться доопрацьовувати ваш проект. Ви ж не хочете, щоб вас згадували недобрим словом?
Структура модулів в Drupal
Будь-модуль Drupal має строго задану структуру і складається, як мінімум, з двох файлів:
- .info файл - містить інформацію про модуль;
- .module файл - містить набір функцій, що реалізують необхідний функціонал.
Крім основного .module файлу хорошим тоном вважається створення додаткових .inc файлів, що дозволяє групувати окремі набори функцій. Наприклад, опис всіх адміністративних форм і функцій, як правило, виноситься в .admin.inc файл. Опис своїх функцій темізаціі прийнято виносити в .theme.inc файл.
У серйозних модулях Drupal можна зустріти .install файл, в якому описуються функції, що спрацьовують в при інсталяції і деінсталяції. Також .install файл може містити інформацію про структуру таблиці бази даних, необхідної для роботи модуля.
Структура .info файлу
Першим файлом при створенні будь-якого модуля буде .info файл (module_name.info):
- name - назва модуля;
- description - опис модуля;
- core - версія гілки Drupal;
- package - назва групи, до якої належить цей модуль (опціонально);
- dependencies - вказівка залежності нашого модуля від інших (опціонально);
- configure - посилання на сторінку конфігурації модуля (опціонально);
- files - вказівка списку додаткових файлів, підвантажуваних модулем (.module підключається автоматично).
name = Angarsky module
description = "Adds new features for Blog."
package = Blog
core = 7. x
; This requires Drupal 7.15 or newer.
dependencies [] = system (> = 7.15)
; CTools and Token are also required.
dependencies [] = ctools
dependencies [] = token
configure = admin / config / angarsky
files [] = angarsky_module .admin .inc
files [] = angarsky_module .pages .inc
Структура .module файлу
Складно описати якусь загальну структуру .module файлу, так як набір функцій безпосередньо залежить від необхідного функціоналу. Тому я дам кілька рекомендацій з написання коду:
- імплементацію хуков ставте завжди вище опису інших функцій;
- пишіть зрозумілі коментарі, не тільки до функцій, але і ділянкам коду, де реалізована складна логіка;
- дотримуйтесь стандарти кодування (читаємо про стандарти кодування , Є і по-російськи);
- не лінуйтеся створювати додаткові .inc файли - в майбутньому буде простіше орієнтуватися в коді.
Власне на цьому вступна стаття в модулі і закінчується. Про те, що таке хукі і як розширювати функціонал коробкового Drupal, я розповім в наступному пості.
Як встановити модуль Drupal?Як встановити модуль Drupal?
Ви ж не хочете, щоб вас згадували недобрим словом?