Drupal - урок 16 - пишемо свій модуль для drupal, зробити сайт просто!

Незважаючи на величезну кількість модулів для Drupal. завжди знайдуться ще не реалізовані ідеї. Про те як їх реалізувати у вигляді модуля для Drupal, ми сьогодні і поговоримо. Для того що б Drupal відобразив ваш модуль на сторінці modules, необхідно створити папку з назвою модуля в / sites / all / modules (можна закинути ще в пару місць, але про це не сьогодні), і створити всередині 2 файли - імямодуля.info і імямодуля.module. У першому буде інформація про модуль, у другому код модуля. Сьогодні ми зробимо модуль-приклад, який створить сторінку з настройками, а так же блок, в якому буде виводити Тиц, PR і Alexa rank сайту. Назвемо його seoblock.

Для початку створюємо папку seoblock в / sites / all / modules і там 2 файли seoblock.info і seoblock.module.

Drupal - урок 16 - пишемо свій модуль для drupal, зробити сайт просто!

Нутрощі файлу інфо виглядають так:

Розберемо кожен рядок детальніше:; $ Id $ Цей рядок нас не цікавить. Якщо ви будете заливати свій модуль на drupal org, сюди автоматом вставиться інформація про модуль. name (обов'язковий) Ім'я модуля, яке буде відображатися в списку. description (обов'язковий) Опис модуля. core (обов'язковий) Підтримувана версія ядра. dependencies (Не обов'язковий) Список модулів, необхідних для роботи нашого. Наприклад: dependencies [] = taxonomy dependencies [] = comment package (Не обов'язковий) До якого пакунку відносити модуль. Тобто, якщо ви хочете що б ваш модуль відображався в списку CCK, то потрібно додати рядок: package = "CCK" Якщо нічого не задано, то модуль відображається в групі «Other».

Не забуваємо що файли повинні бути в кодуванні utf-8. На даний момент вже можна встановити модуль, але він поки нічого не робить. Перейдемо до файлу .module. Здебільшого, модуль Drupal складається з хуков (hook - слово страшне, але на ділі все простіше ніж здається), спеціальних функцій, кожна з яких призначена для конкретного завдання. Наприклад, hook_perm - визначає права доступу, hook_help - створює сторінку допомоги, hook_block - додає блок. Хуков багато, але нам знадобиться всього кілька. Список хуков і інформацію про них ви знайдете на сайті api.drupal.org, - мегополезний ресурс. Повернемося до модуля, першим з хуков у нас йде hook_help, який ми вже згадували трохи вище.

Слово hook в назві модуля замінено на назву модуля, це стандартно для друпал, як в програмуванні, так і в темізірованіі (тільки в темізірованіі замінюється слово theme, і замінити його можна не тільки на назву теми, а й на назву движка теми). Другим хуком йде hook_perm. function seoblock_perm () // function seoblock_perm () Він задає дозволу (Permissions) для модуля. Якщо ви хочете додати кілька прав, то їх можна записати через кому:

Пізніше в інших хуках можна буде перевіряти, чи встановлено якийсь дозвіл для конкретного користувача, чи ні (не забуваємо що у адміна за замовчуванням всі права, тому, слід перевіряти роботу модуля і під іншими користувачами, на всякий -)). Тепер давайте створимо сторінку налаштувань, на якій можна буде ввести цільової сайт, і вказати які характеристики ми будемо виводити. Хук hook_menu () дозволяє створювати пункти меню, і в залежності від налаштувань, виводити їх або в меню, або на сторінці «Управління» (administer). Ми використовуємо його для створення нашої сторінки.

Більш докладний опис можете подивитися на api.drupal.ru. Тепер потрібно заповнити сторінку, цим займається функція seoblock_admin, яку ми викликали в seoblock_menu:

Це всього лише масив, в якому ми передаємо параметри елементів форми. Елементів у нас 3: 'sitename' - назва сайту, 'alexa' - alexa rank сайту, 'tic' - Мотор і 'pr' - PR сайту. '#type' - тип елемента. '#title' - заголовок. '#default_value' - значення за замовчуванням, в даному випадку ми довантажувати (якщо воно є) Введення даних у. Більш детально, про роботу з формами можна прочитати тут Нарешті виведемо сам блок:

Тут нам цікавий параметр $ op, від нього залежить, інформацію якого роду повертає функція. $ Op == "list" - виводить список блоків. $ Op == 'view' - виводить вміст блоку. Вміст якого блоку виводити, визначається по змінній $ delta. Якщо об'єднати всі разом, і встановити, отримаємо Налаштування

Drupal - урок 16 - пишемо свій модуль для drupal, зробити сайт просто!
блок
Drupal - урок 16 - пишемо свій модуль для drupal, зробити сайт просто!
Наступного разу ми продовжимо роботу над цим модулем. Зробимо кешування блоку, і прив'яжемо його до крону. Відділимо дизайн і викинемо його в окремий tpl.php файл, і може бути створимо окрему сторінку дублюючу наш блок. Залишайтеся на зв'язку -)

А PR виводить
Потрібні якісь інші функції для ТІЦ і ALEXA

Схожі статті