Создаём entity в Друпал 7 (часть 5: добавляем поля)
Опубликовано: 17.06.2017
Чтобы добавить поддержку дополнительных полей к созданной нами ранее сущности, потребуется несколько изменений.
Для административного интерфейса управления полями нужен какой-либо приличный родительский пункт меню. Хорошо, когда у нас есть типы сущности: таким родительским пунктом будет страница настройки типа. А если нет? Текущий вариант сообщений не имеет никаких страниц настроек чего бы то ни было и «цеплять» настройки полей не к чему. Придется создать...
Drupal 7: multilanguage content, multi languages inside a site, translation
Добавим отдельный пункт меню для страницы настроек (не знаю, какие настройки могут быть у нашего примера, но в реальных условиях для реальных модулей какие-нибудь да есть...).
Для начала — константу с путем к этой странице:
// smessage.module // Путь к странице настроек модуля. define ( 'SMESSAGE_ADMIN_PATH' , 'admin/structure/smessage' ) ;Затем — пункт меню:
How to create a custom module in Drupal 7 and using hook_menu
// smessage.module /** * Implements hook_menu(). */ function smessage_menu ( ) { $items = array ( ) ; $items [ SMESSAGE_ADMIN_PATH ] = array ( 'title' => SMESSAGE_ADMIN_LABEL, 'description' => 'smessage' , 'page callback' => 'drupal_get_form' , 'page arguments' => array ( 'smessage_settings_form' ) , 'access callback' => 'user_access' , 'access arguments' => array ( 'administer smessage' ) , 'file' => 'smessage.admin.inc' , ) ; return $items ; }
Функция формы настроек будет в отдельном файле (люблю, знаете ли, код в отдельных файлах... :D) smessage.admin.inc в папке модуля. Возвращать она у меня будет пустую форму, поскольку мне никаких идей по поводу настроек в голову не идёт что-то...