Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Реализация hook_entity_info()
- */
- function album_entity_info() {
- return array(
- 'album' => array( // Системное имя сущности
- 'label' => t('Album'), // Человеко-понятное имя сущности
- 'entity class' => 'Entity', // Класс сущности
- 'controller class' => 'EntityAPIController', // Контроллер сущности
- 'base table' => 'albums', // Таблица, в которой хранится информация об альбомах
- 'entity keys' => array(
- 'id' => 'aid', // Название поля, в котором распологаются идентификаторы альбомов
- 'label' => 'title' // Название поля, в котором распологаются названия альбомов
- ),
- 'admin ui' => array(
- 'path' => 'admin/structure/albums' // Путь, по которому будет доступна админка
- ),
- 'access callback' => 'album_access', // Имя функции, отвечающей за проверку прав доступа
- 'module' => 'album',
- ),
- );
- }
- /**
- * Проверка прав доступа
- */
- function album_access($op, $entity, $account = NULL, $entity_type = 'album') {
- return user_access('administer site configuration'); // сущность будет доступна только администратору сайта
- }
- /**
- * Возвращает альбом по его идентификатору
- */
- function album_load($aid) {
- $result = entity_load('album', array($aid));
- return $result ? reset($result) : FALSE;
- }
- /**
- * Форма создания/редактирования альбома
- */
- function album_form($form, &$form_state, $album, $op = 'edit') {
- $form['title'] = array(
- '#title' => 'Название',
- '#description' => 'Название альбома',
- '#type' => 'textfield',
- '#default_value' => isset($album->title) ? $album->title : '',
- '#required' => true,
- );
- $form['group'] = array(
- '#title' => 'Группа',
- '#description' => 'Название группы',
- '#type' => 'textfield',
- '#default_value' => isset($album->group) ? $album->group : '',
- '#required' => true,
- );
- $form['year'] = array(
- '#title' => 'Год',
- '#description' => 'Год выхода альбома',
- '#type' => 'textfield',
- '#default_value' => isset($album->year) ? $album->year : '',
- '#required' => true,
- '#size' => 5,
- );
- $form['actions']['submit'] = array(
- '#type' => 'actions',
- );
- $form['actions']['submit'] = array(
- '#type' => 'submit',
- '#value' => 'Сохранить',
- );
- return $form;
- }
- /**
- * Background entity form submit callback
- */
- function album_form_submit(&$form, &$form_state) {
- $album = entity_ui_form_submit_build_entity($form, $form_state);
- $album->save();
- $form_state['redirect'] = 'admin/structure/albums';
- }
- /**
- * Реализация hook_menu()
- */
- function album_menu() {
- $items['admin/structure/albums/list'] = array(
- 'title' => 'List',
- 'type' => MENU_DEFAULT_LOCAL_TASK,
- 'weight' => -10,
- );
- return $items;
- }
- /**
- * Реализация hook_field_extra_fields().
- */
- function album_field_extra_fields() {
- $return = array();
- $return['album']['album'] = array(
- 'form' => array(
- 'title' => array(
- 'label' => t('Title'),
- 'description' => t('Album title'),
- 'weight' => -10,
- ),
- 'group' => array(
- 'label' => t('Group'),
- 'description' => t('group'),
- 'weight' => -10,
- ),
- 'year' => array(
- 'label' => t('Year'),
- 'description' => t('Album year'),
- 'weight' => -10,
- ),
- ),
- );
- return $return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement