Как да обвържете обект към модула Views в Drupal

В предишния урок ви казах как да създадете свой собствен обект. Днес ще ви покажа как да свържетеобект към модула Views. Не забравяйте да го изтеглите, ако още не сте го направили. Има два начина за решаване на този проблем и сега ще ги разгледаме.

Веднага отбелязвам, че този метод е подходящ само ако обектът е създаден с помощта на модула Entity API. В куката hook_entity_info() ние задавамеviews controller class за нашия обект:

Куката изглежда така:

Това е всичко, изчистваме кеша и можем да създаваме изгледи.

Първо, нека внедрим куката hook_views_api():

След това в корена на модула създайте директориятаviews и вътре в нея файла product.views.inc. Отворете този файл и имплементирайте куката hook_views_data() в този файл. В тази кука ще опишем наличните полета, филтри, сортиране и връзки:

Това, на което трябва да обърнете внимание тук, са манипулаторите. В този пример използваме стандартен Vyuz и няколко персонализирани.

Преглед на манипулатори

  • view_handler_relationship;
  • views_handler_field_date;
  • views_handler_field_user;
  • views_handler_argument_string;
  • views_handler_filter_date;
  • views_handler_filter_user_name;
  • views_handler_filter_numeric;
  • views_handler_filter_string;
  • views_handler_sort;
  • views_handler_sort_date.

Самонаписани манипулатори

  • product_handler_field_product;
  • product_handler_field_product_status;
  • product_handler_field_product_operations;
  • product_handler_argument_product_id;
  • product_handler_filter_product_status.

Следващата стъпка е да напишем нашите манипулатори. В директориятаviews на нашия модул създаваме директориятаhandlers. В тази директория заза всеки манипулатор създайте файл, чието име съвпада с името на манипулатора:

  • product_handler_field_product.inc
  • product_handler_field_product_status.inc
  • product_handler_field_product_operations.inc
  • product_handler_argument_product_id.inc
  • product_handler_filter_product_status.inc

След това отворете файла product.info и добавете следните редове към него:

Това е всичко. Сега нашетообект е свързано с Views.