ホームページ  >  記事  >  バックエンド開発  >  Drupal-7.12 ノードタイプの作成

Drupal-7.12 ノードタイプの作成

WBOY
WBOYオリジナル
2016-07-25 09:05:041278ブラウズ

drupal 站点开公開

  1. function examplenode_install() {
  2. // ノードタイプのデータベースキャッシュを更新します
  3. node_types_rebuild();
  4. $types = node_type_get_types();
  5. // ボディフィールドをノードタイプに追加します
  6. node_add_body_field($types ['job_post']);
  7. // コンテンツ タイプの body のインスタンス定義を読み込みます
  8. $body_instance = field_info_instance('node', 'body', 'job_post');
  9. // body フィールドを設定します
  10. $body_instance ['type'] = 'text_summary_or_trimmed';
  11. // body フィールドのインスタンスに変更を保存します。
  12. field_update_instance($body_instance);
  13. // コンテンツ タイプに追加するすべてのフィールドを作成します。
  14. foreach (_job_post_installed_fields () as $field) {
  15. field_create_field($field);
  16. }
  17. // フィールドのすべてのインスタンスを作成します。
  18. foreach (_job_post_installed_instances() as $instance) {
  19. $instance['entity_type'] = 'node ';
  20. $instance['bundle'] = 'job_post';
  21. field_create_instance($instance);
  22. }
  23. }
  24. /**
  25. * このコンテンツ タイプによって作成されたフィールドを定義する構造化配列を返します。
  26. * 求人投稿モジュールの場合、追加フィールドは 1 つだけです – 会社名
  27. * 他のフィールドは、この関数で追加要素として定義することで追加できます
  28. *以下の配列に
  29. */
  30. function _job_post_installed_fields() {
  31. $t = get_t();
  32. return array(
  33. 'job_post_company' => array(
  34. 'field_name' => 'job_post_company',
  35. 'label' => $t('求人情報を掲載している会社'),
  36. 'type' => 'text',
  37. ),
  38. );
  39. }
  40. /**
  41. * このコンテンツ タイプに関連付けられたフィールド インスタンスを定義する構造化配列を返します。
  42. */
  43. function _job_post_installed_instances() {
  44. $t = get_t();
  45. return array(
  46. 'job_post_company' => array(
  47. 'field_name' => 'job_post_company',
  48. 'type' => 'text',
  49. 'label' => $t('求人情報を掲載している会社'),
  50. 'widget' => 'text_textfield',
  51. ),
  52. 'display' => array(
  53. 'example_node_list' => array(
  54. 'label' => $t('求人情報を掲載している会社'),
  55. 'type' => 'text' ,
  56. ),
  57. ),
  58. ),
  59. );
  60. }
  61. /**
  62. *hook_uninstall()を実装します。
  63. */
  64. function examplenode_uninstall() {
  65. // this
  66. // モジュール中に作成された可能性のあるすべてのサンプル コンテンツを収集します有効になりました。
  67. $sql = 'SELECT nid FROM {node} n WHERE n.type = :type';
  68. $result = db_query($sql, array(':type' => 'job_post'));
  69. $ nids = array();
  70. foreach ($result as $row) {
  71. $nids[] = $row->nid;
  72. }
  73. // すべてのノードを一度に削除します
  74. node_delete_multiple($nids);
  75. // このモジュールで定義された各フィールドをループして削除します
  76. // フィールドのすべてのインスタンス、そのデータ、およびフィールド自体。
  77. foreach (array_keys(_job_post_installed_fields()) as $field) {
  78. field_delete_field($field) );
  79. }
  80. // job_post にアタッチされている残りのフィールド インスタンスをループします
  81. // コンテンツ タイプ (本文フィールドなど) を個別に削除します。
  82. $instances = field_info_instances('node', 'job_post');
  83. foreach ($instances as $instance_name => $instance) {
  84. field_delete_instance($instance);
  85. }
  86. // コンテンツ タイプを削除します
  87. node_type_delete('job_post');
  88. // すべてのフィールド情報を削除します
  89. field_purge_batch(1000);
  90. }
复制代コード

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。