ホームページ >バックエンド開発 >PHPチュートリアル >Drupal_PHP教程にノードコンテンツを保存する方法

Drupal_PHP教程にノードコンテンツを保存する方法

WBOY
WBOYオリジナル
2016-07-14 10:07:181054ブラウズ

Drupalのノードテーブルを見ると驚くでしょう。これは、コンテンツを保存するために使用されるコンテンツ フィールドが見つからないためです。実際、Drupal はフィールド API を使用してコンテンツを保存します。率直に言って、これは優れた設計であり、Drupal の利点の 1 つです。ノードをベーステーブルとして理解でき、他のテーブルに拡張できます。

以下では、ブログモジュールを使用して詳しく説明します

1.ブログノードタイプを宣言します

[html]
関数 blog_node_info() {
  配列を返します(
    'ブログ' =>配列(
      '名前' => t('ブログエントリー'),
      'ベース' => 「ブログ」、
      '説明' => t('マルチユーザー ブログに使用します。すべてのユーザーが個人ブログを取得します。'),
    )
  ); 
}
ノード API から、hook_node_info がモジュール提供のノード タイプを定義するものであることがわかります。配列内の基本キーと値のエントリは、ノード操作コールバックの最優先でブログ プレフィックス フックを使用することを意味します。
2. bodyフィールドをブログノードタイプにアタッチします

[html]
関数 blog_install() {
  // ブログ ノード タイプが利用可能であることを確認します。 
  ノードタイプ_リビルド(); 
  $types = node_type_get_types(); 
  node_add_body_field($types['blog']); 
}
node_types_rebuild メソッドのタスクは、hook_node_info を実装するモジュールからデータを収集し、そのデータをテーブル node_type に保存し、すぐに使用できるようにキャッシュに入れることです。
関数node_add_body_fieldについては、その関数本体を確認する必要があります。

[html]
function node_add_body_field($type, $label = 'Body') {
   // 必要に応じて、本文フィールドを追加または削除します。 
  $field = field_info_field('body'); 
  $instance = field_info_instance('node', 'body', $type->type);   
  $instance を返します。 
}

コードステートメントから、それらは明らかに自明です。フィールド本体の情報をロードしてインスタンスを作成し、そのインスタンスをブログ ノード タイプにアタッチします。次回はフィールド API とノード タイプ UI (ファイルとノードのレンダリング) を探索して、完全なストーリーとしてまとめていきます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/477882.html技術記事 Drupal のノードテーブルを見ると驚くでしょう。これは、コンテンツを保存するために使用されるコンテンツ フィールドが見つからないためです。実際、Drupal はフィールド A を使用します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。