2015年11月26日木曜日

モジュールの hook関数 installIO と uninstall()

今日は簡単なモジュールを作ったが、
install 関数と uninstall() 関数がどうしても正常動作にみえない。

現象はモジュールインストール画面で繰り返しにモジュールを選択・はずしにしても
最新の追加機能が反映されない。

一日はまって今日は原因を判明した。

理由はモジュールのインストール画面でモジュール選択をはずしだけでは、
モジュールのアンインストールにならないことがわかった。

一般的にモジュールのインストールとアンインストールは
モジュール管理画面のオン・オフだけでいいと思い込んでいた。

アンインストールするとき、やはりアンインストールのタグにいって
ちゃんとアンインストールを実行しないとuninstall()関数が走らない。

その結果、インストール済みのモジュールを再インストールと思って
モジュールをオンにしても実際には install()関数が実行されない。

なので、モジュール再実装するときに必ずアンインストール画面にて
まずアンインストールを行うこと。

2015年11月25日水曜日

Form ID を表示

hook_form_alter()関数を使ってサイトにどのフォームをアクセスしているのか
メッセージ表示させる方法です。

すべてフォームのIDを表示したい場合、 template.php にこの関数処理を入れる。
関数を作成するとき、利用するThemeによってhook関数の名前を変更する必要がある。
今回bartikのテーマを使うので、そうするとき、hook_form_alter()は
bartik_form_alter()に名前を変更する。

そして、下記の関数をとりあえずソースファイルの最後に追加して完了。

function bartik_form_alter(&$form, $form_state, $form_id) {
  // ↓ drupal_set_messageはdsmと呼ばれ、デベロッパー用に使用される。
  //   $form_idでフォーム名を調べる
  drupal_set_message("Form ID is : " . $form_id);
}