drupal 站点开公開
- function examplenode_install() {
- // ノードタイプのデータベースキャッシュを更新します
- node_types_rebuild();
-
- $types = node_type_get_types();
-
- // ボディフィールドをノードタイプに追加します
- node_add_body_field($types ['job_post']);
-
- // コンテンツ タイプの body のインスタンス定義を読み込みます
- $body_instance = field_info_instance('node', 'body', 'job_post');
-
- // body フィールドを設定します
- $body_instance ['type'] = 'text_summary_or_trimmed';
-
- // body フィールドのインスタンスに変更を保存します。
- field_update_instance($body_instance);
-
- // コンテンツ タイプに追加するすべてのフィールドを作成します。
- foreach (_job_post_installed_fields () as $field) {
- field_create_field($field);
- }
-
- // フィールドのすべてのインスタンスを作成します。
- foreach (_job_post_installed_instances() as $instance) {
- $instance['entity_type'] = 'node ';
- $instance['bundle'] = 'job_post';
- field_create_instance($instance);
- }
- }
-
- /**
- * このコンテンツ タイプによって作成されたフィールドを定義する構造化配列を返します。
- * 求人投稿モジュールの場合、追加フィールドは 1 つだけです – 会社名
- * 他のフィールドは、この関数で追加要素として定義することで追加できます
- *以下の配列に
- */
- function _job_post_installed_fields() {
- $t = get_t();
-
- return array(
- 'job_post_company' => array(
- 'field_name' => 'job_post_company',
- 'label' => $t('求人情報を掲載している会社'),
- 'type' => 'text',
- ),
- );
- }
-
- /**
- * このコンテンツ タイプに関連付けられたフィールド インスタンスを定義する構造化配列を返します。
- */
- function _job_post_installed_instances() {
- $t = get_t();
-
- return array(
- 'job_post_company' => array(
- 'field_name' => 'job_post_company',
- 'type' => 'text',
- 'label' => $t('求人情報を掲載している会社'),
- 'widget' => 'text_textfield',
- ),
- 'display' => array(
- 'example_node_list' => array(
- 'label' => $t('求人情報を掲載している会社'),
- 'type' => 'text' ,
- ),
- ),
- ),
- );
- }
-
- /**
- *hook_uninstall()を実装します。
- */
- function examplenode_uninstall() {
- // this
- // モジュール中に作成された可能性のあるすべてのサンプル コンテンツを収集します有効になりました。
- $sql = 'SELECT nid FROM {node} n WHERE n.type = :type';
- $result = db_query($sql, array(':type' => 'job_post'));
- $ nids = array();
- foreach ($result as $row) {
- $nids[] = $row->nid;
- }
-
- // すべてのノードを一度に削除します
- node_delete_multiple($nids);
-
- // このモジュールで定義された各フィールドをループして削除します
- // フィールドのすべてのインスタンス、そのデータ、およびフィールド自体。
- foreach (array_keys(_job_post_installed_fields()) as $field) {
- field_delete_field($field) );
- }
-
- // job_post にアタッチされている残りのフィールド インスタンスをループします
- // コンテンツ タイプ (本文フィールドなど) を個別に削除します。
- $instances = field_info_instances('node', 'job_post');
- foreach ($instances as $instance_name => $instance) {
- field_delete_instance($instance);
- }
-
- // コンテンツ タイプを削除します
- node_type_delete('job_post');
-
- // すべてのフィールド情報を削除します
- field_purge_batch(1000);
- }
-
-
复制代コード
|