Drupalでは、ノードの本文などのテキストエリアに入力した内容は、表示の際に改行を自動的に HTML に変換してしまう。(<p>タグや<br />タグなどで HTML マークアップしてしまう。)

これは便利なときもあるが、邪魔なときもある。

邪魔なときは、テキストフォーマットの設定('/admin/config/content/formats')ページで、テキストフォーマットを新たに追加し、その設定で「改行を HTML に変換(たとえば、<br />や</p><p>などに)」のチェックをはずして、名前を「改行変換なし」などとして登録すれば良い。(Drupal6 の場合は入力書式の設定ページ '/admin/settings/filters' で、入力書式を新たに追加し、その設定で「改行コンバータ」(段落や改行を HTML タグ(<p>と<br />)に変換します。)のチェックをはずして登録する。)

その後、自動で改行変換したくないテキストエリアの編集時には、このフォーマットを選択するようにします。

コア: 
Drupal6
Drupal7

アイテムの設定項目の 'type' を MENU_NORMAL_ITEM にして、 'menu_name' を 'main-menu' にする。

MENU_NORMAL_ITEM だと全部ナビゲーションメニューに登録されると思っていたが、それはデフォルトの振る舞いで、 'menu_name' を指定すれば、ユーザーメニューにも、カスタムメニューにも追加することが出来る。

コア: 
Drupal6
Drupal7

Drupal ではモジュールが、(コアも含めた)他のモジュールのページ構築中に実行しようとしているデータベースクエリを変更操作することができる。D6 では db_rewrite_sql() を使うのだが、これは D7 では使えない。

D7 では hook_query_alter() というのを使うらしい。addTag() でクエリにタグを設定することができるようになっている。

他のモジュールのクエリを操作するときは、設定されているタグでクエリを識別する。

addTag()の例

コア: 
Drupal7

db_or() というのを使うらしい。こんな感じになる。

<?php
// From taxonomy_term_save():
$or = db_or()->condition('tid1', 5)->condition('tid2', 6);
db_delete('term_relation')->condition($or)->execute();
// DELETE FROM {term_relation} WHERE ((tid1 = 5 OR tid2 = 6))
?>
コア: 
Drupal7
~ Dynamic queries 和訳 ~

ダイナミッククエリとは、静的なクエリー文字列ではなく、Drupalによって動的に構築されるクエリーのことです。すべてのインサート、アップデート、デリートそしてマージのクエリは動的に生成されます。セレクトクエリーは、静的と動的、どちらでも可能ですが、これも一般的に「ダイナミッククエリ」といえば、動的に生成されたセレクトクエリのことを指します。

コア: 
Drupal7

ノード編集フォームの中の CCK フィールドの、例えばセレクトボックスをチェックボックスにしたい場合なんかは、GUI で変更できる。

  1. 「管理セクション」 > 「コンテンツの管理」 > 「コンテンツタイプ」 から、操作したいコンテンツタイプの「manage fields」をクリック。
  2. 操作するフィールドの「設定」をクリック。
  3. 「基本情報の変更」ボタンをクリック。
  4. 「ウィジェットタイプ」の中から変更したい設定を選んで、「継続」ボタンをクリック。
  5. 「値の数」を無制限か2以上にするとチェックボックスに、1を選ぶとラジオボタンになる。
  6. 「使用する値のリスト」に選択できるアイテムを設定する。phpコードで入力する場合は、フォームの ’#options’ に設定する配列を返すように書くと、動作する。
コア: 
Drupal6
  1. モジュール管理ページで、PHP filter モジュール(コアモジュール)を有効化する。
  2. 権限の設定ページ('/admin/people/permissions')でパーミッションを適切に設定する
コア: 
Drupal7

ページ