hook_form_alterで追加したfieldsetの位置をCCKで変更可能にする
モジュールを作成している際、特定のコンテンツタイプだけの入力フォームを追加したりすることはままあるわけですが、hook_form_alterでfieldsetを追加しただけだと、その位置は固定されてしまってどうにも使いづらかったりします。そんなとき、CCKが用意しているhookを使用すると、コンテンツタイプの編集画面でfieldsetの位置を変更できるようになります。
function MODULENAME_content_extra_fields($type_name) {
$extra = array();
$extra['FIELDSETNAME'] = array(
'label' => 'Label for this fieldset',
'description' => 'Description for this fieldset.',
'weight' => 5
);
return $extra;
}
とまあこんな具合ですね。CCKやViewsはほぼ必須のモジュールと言っても過言ではないので、それらが用意しているhookも有効に活用したいところです。
| 固定リンク
「Drupal」カテゴリの記事
- さくらレンタルサーバーにDrupal7をインストールできない ...(2014.04.18)
- Drupal Documentation の The files directory を翻訳しました(2011.03.09)
- Drupal Documentation の Clean URLs を翻訳しました(2011.03.08)
- Drupal Documentation の翻訳を始めました(2011.03.03)
- コンテンツを保存すると同時に Views のキャッシュをクリアする方法(2010.04.23)
この記事へのコメントは終了しました。
コメント
> hook_form_alterでfieldsetを追加しただけだと、その位置は固定されてしまって
とありますが、hook_form_alter で要素の順序を変更できると思いますよ。'#weight' キーを使って。
僕の fieldset の認識が間違っていたらごめんなさい。
投稿: Satoshi | 2009/11/09 20:17
コメントありがとうございます。
> hook_form_alter で要素の順序を変更できると思いますよ。'#weight' キーを使って。
'#weight' で順序を指定できるのですが、その順序を変更しようと思うとコードをいじらないといけませんよね?
CCK の hook を使用していれば、コードをいじらずにブラウザ上で変更できるので便利なのです。
投稿: PineRay | 2009/11/10 06:53
なるほど。そういう意味でしたか。読解力不足でした。
私の場合、ブラウザでいじるよりもコードいじる方が早くて楽なので、思いつきませんでした。
挨拶が遅れましたが、いつも翻訳とか利用させていただいております。今後ともよろしくお願いいたします。
投稿: Satoshi | 2009/11/10 07:39
言葉足らずで伝わりにくいとよく言われます。
ともあれ、こちらこそ今後ともよろしくお願いします。
投稿: PineRay | 2009/11/10 14:10