element_children() を使います。
レンダリング配列の値には自身のレンダリング設定(キーの名前が「#」ではじまるもの)と、子要素(キーの頭に「#」の付かないもの)の2種類がありますが、element_children() はこのうち子要素のキーだけを配列にして返します。返り値は
0 => '子要素1のキー', 1 => '子要素2のキー', 2 => '子要素3のキー', ...
といった形の添字配列となります。
フィールドをグループ化している場合などには重宝します。
セレクトクエリは常に 0 個以上の結果セットオブジェクトを返します。結果セットからデータを取得するには、ケースに応じていくつかの方法があります。いちばんよく使われる方法は、foreach() ループを使った繰り返し処理です。
「条件句(conditional clause)」はクエリ文の中で、その結果を一定の条件にマッチする行だけに制限する部分です。SQLでは、セレクト文、アップデート文、もしくはデリート文における WHERE 句、HAVING 句がそれにあたります。Drupal のダイナミッククエリでは、それらは同じメカニズムで実装されています。ここで説明することはすべて、特別な場合を除き、次の3つのクエリタイプのすべてに適用されます。
セレクトクエリは「エクステンダ」という概念をサポートします。エクステンダはセレクトクエリに動的に機能を追加する方法です。これによりメソッドを新たに追加したり、既存のメソッドの振る舞いを変更したりといったことが出来ます。
ダイナミックセレクトクエリーの重要な特徴のひとつは、他のモジュールがクエリの実行時に変更を加えられることです。ノードのアクセス制限などの動作に見られるように、モジュールは自身のクエリ、もしくは他のモジュールのクエリに対しても、独自の条件の追加などを行うことができます。こういったクエリの変更機能にはタグ付け、メタデータ、hook_query_alter() といった3つの要素があります。
イメージモジュール(Drupal 7ではコアに組み込まれました)はウェブサイト内の画像の表示、操作などの機能を担います。イメージツールキットによって、画像のリサイズや各種調整などの処理を行う「画像スタイル」の設定が可能となり、また各コンテンツにフィールドAPIによるイメージフィールドを設置することが出来ます。
「レンダリング配列」はDrupal7より導入されたページ構築用の配列です。ページ(もしくはその一部)の構築に使用されるデータは、テーマシステムにおいて実際にレンダリングが行われるまで、構造化された配列の形を維持します。これはページのレイアウトやコンテンツを変更する際に、多大な柔軟性をもたらすだけでなく、将来的にはパフォーマンスの向上も見込まれています。
Drupal7のインストールのデフォルトでは、Listモジュール(コアモジュール)が無効になっているので、これを有効にする。
そうするとフィールドタイプ(保存データ形式)で List(float) と List(integer)、リスト(テキスト)が選択できるようになるので、いづれかを選択すると、ウィジェット(データ編集用フォーム要素)に選択リスト、チェックボックス/ラジオボタンを設定できるようになる。
整数、浮動小数点数値といった数値タイプのフィールドを追加したい場合は、Numberモジュール(コアモジュール)を有効にすると、フィールドタイプの選択肢に追加される。Numberモジュールもデフォルトでは無効になっている。
コンテンツタイプのフィールド項目が多くなると、ノードの編集画面の整理(グループ分け等によるカスタマイズ)が必要になってくる。
フィールドセットなどで入力フォームをグループ分けするのに、独自の汎用カスタムモジュールの中で、hook_form_FORM_ID_alter() などのフックでフォームをカスタマイズしていましたが、そういったことは、普通に CCK をインストールしていれば GUI 操作で簡単に出来ることがわかった。
コンテンツタイプの「フィールドの管理」ページで、「追加」フォームの一番下、New group を追加すれば良い。
DBTNGはDrupal7におけるデータベースの新しい抽象化レイヤーです。これはいくつかのオブジェクト指向の原理を使うことで、Drupal6よりもはるかに多くの機能を提供します。
Drupal6のモジュールをDBTNGで動作させるには、多くのクエリーは変更が必要です。ここではその変更点について、最も一般的なものについて説明します。