Донецкий техникум промышленной автоматики

Грамотна установка модулів в Drupal 7, структура модулів

  1. Як встановити модуль Drupal?
  2. Структура модулів в Drupal
  3. Структура .info файлу
  4. Структура .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 підключається автоматично).
  1. name = Angarsky module

  2. description = "Adds new features for Blog."

  3. package = Blog

  4. core = 7. x

  5. ; This requires Drupal 7.15 or newer.

  6. dependencies [] = system (> = 7.15)

  7. ; CTools and Token are also required.

  8. dependencies [] = ctools

  9. dependencies [] = token

  10. configure = admin / config / angarsky

  11. files [] = angarsky_module .admin .inc

  12. files [] = angarsky_module .pages .inc

Структура .module файлу

Складно описати якусь загальну структуру .module файлу, так як набір функцій безпосередньо залежить від необхідного функціоналу. Тому я дам кілька рекомендацій з написання коду:

  • імплементацію хуков ставте завжди вище опису інших функцій;
  • пишіть зрозумілі коментарі, не тільки до функцій, але і ділянкам коду, де реалізована складна логіка;
  • дотримуйтесь стандарти кодування (читаємо про стандарти кодування , Є і по-російськи);
  • не лінуйтеся створювати додаткові .inc файли - в майбутньому буде простіше орієнтуватися в коді.

Власне на цьому вступна стаття в модулі і закінчується. Про те, що таке хукі і як розширювати функціонал коробкового Drupal, я розповім в наступному пості.

Як встановити модуль Drupal?
Як встановити модуль Drupal?
Ви ж не хочете, щоб вас згадували недобрим словом?