はじめまして。福岡でWEBエンジニアをしているryskです。
メールフォームを作っていて、あるフィールドを別のtableタグに分けたり、ある部分だけ違うHTMLタグで表現したいと思ったことはありませんか?
そんなときに便利な方法を今回紹介したいと思います!
はじめまして。福岡でWEBエンジニアをしているryskです。
メールフォームを作っていて、あるフィールドを別のtableタグに分けたり、ある部分だけ違うHTMLタグで表現したいと思ったことはありませんか?
そんなときに便利な方法を今回紹介したいと思います!
メールフォームをカスタマイズする場合はコアには直接手を入れずファイルをコピーし、 そのファイルを編集していくことが大事です。
理由としては、コアのファイルを直接編集してしまうとアップデートの際に編集した内容が上書きされてしまうからです。
<手順>
※・mail_form.phpはフォーム本体を表示するためのファイルです。
・mail_input.phpはメールフィールドを表示するためのファイルです。
変更前 ( mail_form.php L.41行目, baserCMS ver3.0.7を使用 )
$this->BcBaser->element('mail_input', array('blockStart' => 1));
変更後 ( mail_form.php )
$this->BcBaser->element('mail_input', array('blockStart' => 1, 'blockEnd' => 4)); $this->BcBaser->element('mail_input_another', array('blockStart' => 5, 'blockEnd' => 7));
<解説>
$this->BcBaser->element()のオプションで"blockStart"と"blockEnd"というものがあります。 このオプションは、どこからどこまでのフィールドを表示するかを指定することができます。
変更後のmail_form.phpを例にすると、1番目から4番目のフィールドは、mail_input.phpというエレメントプレートを使ってフィールドを表示し、
5番目から7番目のフィールドは、mail_input_another.phpというエレメントプレートを使って表示するということになります。
つまり、この$this->BcBaser->element()のオプション'blockStart', 'blockEnd'に値をセットすることで、どのフィールドはどのテンプレートで表示するかを指定できる事ができるようになります!
あとは、自分の好きなようにエレメントテンプレートを編集するだけです!
ぜひ試してみてくださいね!