Як створити сутність в drupal

У сьогоднішньому уроці я розповім, як написати свою сутність. Писати ми будемо з застосуванням модуля Entity API. тому нам необхідно завантажити та встановити цей модуль. Для прикладу, створимо сутність product. Файлова структура модуля у мене вийшла така:

1. Створюємо інформацію про модулі в product.info:

2. У product.install описуємо таблицю, в якій буде зберігатися інформація про сутності:

3. Перейдемо до product.module. У таблиці я створив колонку статус, в якій буде зберігатися статус продукту, всього у мене 3 статусу, для кожного із статусів створюємо константу:

4. Описуємо інформацію про нашої сутності в хук hook_entity_info ():

5. Створюємо функцію product_uri (), яка повертає uri суті:

6. Створюємо права доступу, які нам будуть потрібні надалі, для цього імплементуємо хук hook_permission ():

7. Створюємо функцію product_access (), яка буде перевіряти, чи може користувач здійснювати будь-які операції над сутністю:

8. Створюємо функції, які будуть завантажувати сутність з бази даних:

9. Створюємо функції, які будуть видаляти сутність з бази даних:

10. Створюємо функцію темізаціі суті. для цього імплементуємо hook_theme ():

11. Створюємо функції, які будуть виводити суті:

12. У hook_menu () створюємо сторінки, які будуть потрібні для роботи модуля:

13. За допомогою hook_admin_paths (). говоримо системі, які сторінки є адміністративними:

14. Останньою функцією в product.module буде product_status_get_title (), яка по id статусу продукту буде повертати людино-зрозумілу назву статусу:

18. Як ви могли помітити, для створення і редактірвоанія суті у мене використовується одна і таж форма product_form. створюємо функцію, яка формує цю форму:

19. Створюємо форму видалення суті:

21. Тепер переходимо до шаблону product.tpl.php:

21. Залишилася справа за малим, якщо пам'ятаєте, в формі створення / редагування продукту ми зробили веріткальние вкладки, тому в файл product-fieldset-summaries.js додаємо кілька рядків коду для прикраси цих вкладок:

Схожі статті