Drupal6 でフォームボタンを装飾する方法 | Drupal | みどりのウェブ開発日記

Drupal6 でフォームボタンを装飾する方法

カテゴリ: Drupal

記事投稿日: 2014年2月19日



Drupal 初心者です。PHP が使えるということで
2013年後半から、改修担当に回されて半年ほど。
Drupal のフォームは、CMSというより、
フレームワークに近い作り方だと思います。

たとえば、備考欄「name=etc」を作る場合は以下の通り。

$form['etc'] = array(
  '#type'         => 'textarea',
  '#title'        => 'コメント',
  '#size'         => '50',
  '#default_value'=> $etc,
); 

#title を指定すると、自動的にラベルになります。

各項目も、プログラマなら見れば見当がつきます。
が…これは配列の書き方です。
たとえば、同じ CMS の WordPress を使っている方が
見ても、何のことか分からないでしょう。

CMS、CMSと言われるので、Wordpressとつい比較してしまいます。
Wordpress の場合だったら、プラグインとコピペだけで、
お問い合わせフォームを任意のページに設置できるようになり、
実際、1行たりともコードを書かずとも運営できます。
それと比べるのは酷なのでしょうか…?
Drupal では、何であろうと、きっちりPHPのコードを書くので、
CMSというより、フレームワークだな…と思った所以です。

さて、送信ボタンを立体的に仕上げてほしいという
要望の場合、ボタンに ID かクラスを割り振って…と
考えたいとことですが、上記のようにパラメータを指定することは
できないようです。

探してみると、
「prefix」と「suffix」というパラメータが
ありました。使い方は以下の通り。

$form['submit'] = array(
  '#type' => 'submit',
  '#value' => t('Advanced search'),
  '#prefix' => '
', '#suffix' => '
', );

参考URL: 公式 Form API Reference(英語)
https://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/6

上記URLの一覧に、使用できるパラメータが表になっています。
ID やクラスはありません。
先ほどの「prefix」と「suffix」というパラメータを使えば
任意のDIVタグで要素を囲めるので、入れ子にすれば
CSSを適用することができます。

日本語マニュアルは、まだまだ少ないDrupal。
少し変わったことをしようとすると、最終的には英語マニュアルにたどりつきます。
現場で使ってみた感想ですが、正直、日本では
CakePHP ほどは普及しないのではないかと感じています。
WPやMT、EC-CUBEを使っているユーザーが同じ感覚で
Drupal に取り組むと挫折すると思います。

【2014.02.20 追記】
しつこいようですが、Drupal がCMSだという認識に
どうしても納得がいかなかったので、ウィキペディアを見てみたら、
以下の記述が見つかりました。

『その性能がコンテンツ管理から、幅広いサービスや商取引を
可能にするにまで及ぶことから、Drupalは時々
「ウェブアプリケーションフレームワーク」であると評される。』

『Drupalは一般に、最も優れたWeb 2.0フレームワークの
一つであると考えられている。』

やっぱり、フレームワークと認識した方が良いような気がします。
公式サイトのタイトルは「Drupal – Open Source CMS」ですが、
「CMSを作るのに優れたフレームワーク」という意味合いなのかもしれません。
案外こういうところで納得がいかないと学習が進まないので、
すっきりして良かったです。








コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA




トップに戻る