twodrill@2drill.net [~/public_html/2drill_dev]# drush generate module-content-entity Welcome to module-content-entity generator! ––––––––––––––––––––––––––––––––––––––––––––– Module name: ➤ Entity Test Module machine name [entity_test]: ➤ Package [Custom]: ➤ Dependencies (comma separated): ➤ Entity type label [Entity Test]: ➤ Entity type ID [entity_test]: ➤ Entity base path [/admin/content/entity-test]: ➤ Make the entity type fieldable? [Yes]: ➤ Make the entity type revisionable? [No]: ➤ Make the entity type translatable? [No]: ➤ The entity type has bundle? [No]: ➤ Yes Create entity template? [Yes]: ➤ Create CRUD permissions? [No]: ➤ Add "title" base field? [Yes]: ➤ Add "status" base field? [Yes]: ➤ Add "created" base field? [Yes]: ➤ Add "changed" base field? [Yes]: ➤ Add "author" base field? [Yes]: ➤ Add "description" base field? [Yes]: ➤ Create REST configuration for the entity? [No]: ➤ The following directories and files have been created or updated: ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– • modules/custom/entity_test/config/schema/entity_test.entity_type.schema.yml • modules/custom/entity_test/entity_test.info.yml • modules/custom/entity_test/entity_test.links.action.yml • modules/custom/entity_test/entity_test.links.menu.yml • modules/custom/entity_test/entity_test.links.task.yml • modules/custom/entity_test/entity_test.module • modules/custom/entity_test/entity_test.permissions.yml • modules/custom/entity_test/src/Entity/EntityTest.php • modules/custom/entity_test/src/Entity/EntityTestType.php • modules/custom/entity_test/src/EntityTestInterface.php • modules/custom/entity_test/src/EntityTestListBuilder.php • modules/custom/entity_test/src/EntityTestTypeListBuilder.php • modules/custom/entity_test/src/Form/EntityTestForm.php • modules/custom/entity_test/src/Form/EntityTestTypeForm.php • modules/custom/entity_test/templates/entity-test.html.twig
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Nodes Entities
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
Drupalの構造は複雑で、簡単に説明が難しいです。ここで、いろいろな文書を参考しながら、いろいろな角度でDrupalの構造をまとめたいと思います。
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $room_info['room'] = array( 'label' => t('Room'), 'entity class' => 'Entity', 'controller class' => 'DrupalDefaultEntityController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'label' => 'room_number', 'bundle' => 'room_type', // DB上にroom_typeフィールドでバンドルを区別 ), 'bundles' => array( 'single_room'=> array( 'label' => 'Single Room', 'admin' => array( 'path' => 'admin/structure/single-room/manage', ), ), 'twin_room'=> array( 'label' => 'Twin Room', 'admin' => array( 'path' => 'admin/structure/twin-room/manage', ), ), ), 'access callback' => 'access_room', 'module' => 'entity_room', ); return $room_info; }
/** * Implements hook_field_extra_fields(). * Field管理にRoomのプロパティ項目を追加(編集不可) */ function entity_room_field_extra_fields() { $return = array(); // For Single Room Bundle $return['room']['single_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); // For Twin Room Bundle $return['room']['twin_room'] = array( 'form' => array( 'room_type' => array( 'label' => t('Room Type'), 'description' => t('The type of the room'), 'weight' => 1, ), 'room_number' => array( 'label' => t('Room Number'), 'description' => t('The number of the room'), 'weight' => 2, ), ), ); return $return; }
/** * Implements hook_menu(). */ function entity_room_menu() { // シングル ルーム 管理画面 $items['admin/structure/single-room/manage'] = array( 'title' => t('Single Room Admin'), 'description' => 'Manage Single Room structure', 'page callback' => 'room_info', 'page arguments' => array('Single Room') , 'access arguments' => array('administer rooms'), ); $items['single-room/add'] = array( 'title' => t('Add Single Room'), 'page callback' => 'room_add', 'page arguments' => array('single_room'), 'access arguments' => array('create room'), ); // ツインルーム管理が画面 $items['admin/structure/twin-room/manage'] = array( 'title' => 'Twin Room Admin', 'description' => 'Manage Twin Room structure', 'page callback' => 'room_info' , 'page arguments' => array('Twin Room'), 'access arguments' => array('administer rooms'), ); $items['twin-room/add'] = array( 'title' => t('Add Twin Room'), 'page callback' => 'room_add', 'page arguments' => array('twin_room'), 'access arguments' => array('create room'), ); // Roomの表示 $items['room/%room'] = array( 'title callback' => 'room_page_title', 'title arguments' => array(1), 'page callback' => 'room_page_view', 'page arguments' => array(1), 'access arguments' => array('view rooms'), 'type' => MENU_CALLBACK, ); return $items; } /** * Implements hook_permission(). */ function entity_room_permission() { return array( 'administer rooms' => array( 'title' => t('Administer rooms'), 'restrict access' => TRUE, ), 'create room' => array( 'title' => t('Create room'), ), 'view rooms' => array( 'title' => t('View Rooms'), ) ); } /** * 全員にRoomエンティティの無条件アクセス権限 */ function access_room(){ return true ; } /** * create "add room" form */ function room_add($type) { $room = (object) array ( 'rid' => '', 'room_type' => $type, 'room_number' => '', ); return drupal_get_form('room_add_form', $room); } function room_add_form($form, &$form_state, $room) { $form['room_type'] = array( '#type' => 'textfield', '#title' => t('Room Type'), '#default_value' => $room->room_type, '#disabled' => true, '#required' => TRUE, ); $form['room_number'] = array( '#type' => 'textfield', '#title' => t('Room Number'), '#required' => TRUE, ); field_attach_form('room', $room, $form, $form_state); $form['submit'] = array( '#type' => 'submit', '#value' => t('Save'), '#weight' => 10, ); return $form; } function room_add_form_validate($form, &$form_state) { $room_submisttion = (object) $form_state['values']; field_attach_form_validate($form_state['values']['room_type'], $room_submisttion, $form, $form_state); } function room_add_form_submit($form, &$form_state) { $room_submission = (object) $form_state['values']; field_attach_submit($form_state['values']['room_type'], $room_submission, $form, $form_state); $room = room_save($room_submission); $form_state['redirect'] = "room/$room->rid"; } function room_save(&$room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } function room_info($type) { return t('Welcome to the administration page for your '.$type.'!'); } function room_page_title($room){ return $room->room_number."(".$room->room_type.")"; } function room_page_view($room, $view_mode = 'full'){ $room->content = array(); // Build fields content. field_attach_prepare_view('room', array($room->rid => $room), $view_mode); entity_prepare_view('room', array($room->rid => $room)); $room->content += field_attach_view('room', $room, $view_mode); return $room->content; } function room_uri( $room ){ return array( 'path' => 'room/'.$room->rid , ); } class RoomController extends EntityAPIController{ //class RoomController extends DrupalDefaultEntityController{ public function __construct($entityType) { parent::__construct($entityType); } // Entityオブジェクト保存 public function save($room) { drupal_write_record('room', $room); field_attach_insert('room', $room); return $room; } } /** * hook_menuのURL引数のオブジェクト取得 */ function room_load($rid = NULL, $reset = FALSE){ $rids = (isset ($rid) ? array($rid) : array()); $room = room_load_multiple($rids, $reset); return $room ? reset ($room) : FALSE; } function room_load_multiple($rids = array(), $conditions = array(), $reset = FALSE){ return entity_load('room', $rids, $conditions, $reset); }
添付 | サイズ |
---|---|
entity_room.zip (2.84 KB) | 2.84 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
添付 | サイズ |
---|---|
entity_room.zip (5.08 KB) | 5.08 KB |
function room_view($room, $view_mode="full") { drupal_set_title(entity_label('room', $room)); return entity_view('room', array(entity_id('room', $room) => $room), $view_mode); }
/** * Implements hook_entity_info(). */ function entity_room_entity_info() { $return = array( 'room' => array( 'label' => t('Room'), 'entity class' => 'RoomEntity', 'label callback' => 'entity_class_label', // see RoomEntity class 'uri callback' => 'entity_class_uri', // see RoomEntity class 'controller class' => 'RoomController', 'base table' => 'room', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'rid', 'bundle' => 'room_type_sys', ), 'bundle keys' => array( 'bundle' => 'room_type_sys', ), 'bundles' => array(), 'load hook' => 'room_load', 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'entity_room', 'access callback' => 'entity_room_access', 'extra fields controller class' => 'EntityDefaultExtraFieldsController', 'metadata controller class' => 'RoomEntityMetadataController', ), ); $return['room_type'] = array( 'label' => t('Room Type'), 'entity class' => 'RoomTypeEntity', 'controller class' => 'RoomTypeController', 'base table' => 'room_type', 'fieldable' => FALSE, 'bundle of' => 'room', 'exportable' => TRUE, 'entity keys' => array( 'id' => 'rtid', 'name' => 'room_type_sys', 'label' => 'room_type_label', ), 'module' => 'entity_room', 'admin ui' => array( // Enable the entity API's admin UI. 'path' => 'admin/structure/room-types', 'file' => 'room_type.admin.inc', 'controller class' => 'RoomTypeUIController', ), 'access callback' => 'entity_room_access', ); return $return; }
class RoomEntityMetadataController extends EntityDefaultMetadataController { public function entityPropertyInfo() { $info = parent::entityPropertyInfo(); $info[$this->type]['properties']['rid']=array( 'label' => t('Room ID'), 'type' => 'integer', 'description' => t('Room Entity ID'), 'schema field' => 'rid', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_type_sys']=array( 'label' => t('Room Type Name'), 'type' => 'text', 'description' => t('Room Type Machine Name'), 'schema field' => 'room_type_sys', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_label']=array( 'label' => t('Room Name'), 'type' => 'text', 'description' => t('Room Name'), 'schema field' => 'room_label', 'setter callback' => 'entity_property_verbatim_set', ); $info[$this->type]['properties']['room_area']=array( 'label' => t('Room Area'), 'type' => 'text', 'description' => t('Room Area Name'), 'schema field' => 'room_area', 'setter callback' => 'entity_property_verbatim_set', ); return $info; } }
添付 | サイズ |
---|---|
entity_room.zip (6.47 KB) | 6.47 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |
/** * 追加されたバンドル(RoomType)に拡張フィールド操作URIの追加 * Implements hook_entity_info_alter(). */ function entity_room_entity_info_alter(&$entity_info) { foreach (room_types() as $type => $info) { $entity_info['room']['bundles'][$type] = array( 'label' => $info->room_type_label, 'admin' => array( 'path' => 'admin/structure/room-types/manage/%room_type', 'real path' => 'admin/structure/room-types/manage/' . $type, 'bundle argument' => 4, ), ); } } // room_type_sys でデータの取得 // room_type入力がなければ、全部のRoomTypeを返す function room_type_load($room_type=null){ return room_types( $room_type ) ; } function room_types( $room_type = null ){ $types = entity_load_multiple_by_name( 'room_type', isset($room_type) ? array($room_type) : false ) ; return isset( $room_type ) ? reset($types) : $types ; }
添付 | サイズ |
---|---|
custom_table_2.zip (1.67 KB) | 1.67 KB |