/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())
/** * Implements hook_entity_info(). */ function YOUR_MOUDULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', 'label callback' => 'entity_class_label', // see MyVocabularyEntity class 'uri callback' => 'entity_class_uri', // see MyVocabularyEntity class 'controller class' => 'MyVocabulryController', 'base table' => 'my_vocabulary', 'fieldable' => TRUE, 'entity keys' => array( 'id' => 'entity_id', 'label' => 'vocabulary', ), 'bundles' => array( 'my_vocabulary' => array( 'label'=>'My Vocabulary', 'admin' => array( 'path' => 'admin/structure/my-vocabulary/manage', 'access arguments' => array('administer my vocabulary'), 'controller class' => 'EntityDefaultUIController', ), ), ), 'view modes' => array( 'full' => array( 'label' => t('Default'), 'custom settings' => FALSE, ), ), 'module' => 'my_vocabulary', 'access arguments' => array('administer my vocabulary'), ), ); }
/** * Implements hook_menu(). */ function YOUR_MODULE_NAME_menu() { // for my my vocabulary entity $items['my-vocabularies/add'] = array( 'title' => t('Add Vocabulary'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form') , 'access arguments' => array('update my vocabulary'), ); $items['my-vocabularies/%my_vocabulary'] = array( 'title' => 'My Vocabulary', 'page callback' => 'my_vocabulary_page_view', 'page arguments' => array(2) , 'access arguments' => array('view my vocabulary'), ); $items['my-vocabularies/%my_vocabulary/view'] = array( 'title' => 'View', 'type' => MENU_DEFAULT_LOCAL_TASK, //メニュータブの作成 ); $items['my-vocabularies/%my_vocabulary/edit'] = array( 'title' => t('Edit'), 'page callback' => 'drupal_get_form', 'page arguments' => array('my_vocabulary_form', 2) , 'access arguments' => array('edit my vocabulary'), 'type' => MENU_LOCAL_TASK, ); return $items; }
/** * vocabulary submit handler. */ function vocabulary_form_submit($form, &$form_state) { // データ入力フォームで埋め込んだエンティティを取得 $vocabulary = $form_state['my_vocabulary']; // 新規作成の場合、$vocabularyオブジェクトがない if( $vocabulary == null ) $vocabulary= entity_create( "my_vocabulary", array() ); // 入力フォームの値を$vocabularyにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); entity_save( 'my_vocabulary', $vocabulary ); // エンティティの内容の詳細が画面に遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary); // 新規作成の場合にエラー発生 $form_state['redirect'] = $vocabulary_uri['path']; }
class MyVocabularyEntity extends Entity{ // 'label callback' => 'entity_class_label' protected function defaultLabel() { return $this->vocabulary; // vocabulary名を返す } // 'uri callback' => 'entity_class_uri', protected function defaultUri() { return array("path"=>"chinese/vocabularies/".$this->vid); // vocabulary表示URLを返す } }
/** * vocabulary submit handler. */ function my_vocabulary_form_submit($form, &$form_state) { $vocabulary = $form_state['my_vocabulary']; if( $vocabulary == null ) $vocabulary = entity_create('my_vocabulary',array()); // エンティティ入力フォームの値をエンティティにセット entity_form_submit_build_entity('my_vocabulary', $vocabulary, $form, $form_state); // Entity Metadata Wrapper の使用 $entity = entity_metadata_wrapper('my_vocabulary', $vocabulary); $entity->save(); // 新規作成したエンティティIDをエンティティオブジェクトにセット $vocabulary->entity_id = $entity->getIdentifier() ; // エンティティの詳細画面のURIを取得、遷移 $vocabulary_uri = entity_uri('my_vocabulary', $vocabulary ); $form_state['redirect'] = $vocabulary_uri['path']; }
// Unified way of getting $node->title, $user->name, ... // wrapper->label_name ではエラーになります $wrapper->label(); // Unified way of getting $node->nid, $user->uid, ... // wrapper->id ではエラーになる $wrapper->getIdentifier();
/** * Implements hook_entity_info(). */ function YOUR_MODULE_NAME_entity_info() { return array( 'my_vocabulary' => array( 'label' => t('My Vocabulary'), 'entity class' => 'MyVocabularyEntity', // Entityクラスの継承 ・・・・・・・・・ ), ); } /** * hook_entity_info()に定義された'entity class' */ class MyVocabularyEntity extends Entity{ // データ更新ロジックのオバーライド public function save() { $this->updated = time() ; // 更新時刻の設定 return parent::save(); } }
// empty($primary_keys) ? db_insert() : db_update() function drupal_write_record($table, &$record, $primary_keys = array())