Permalink
Browse files

7日目 ソースコード記載漏れの修正

  • Loading branch information...
kenjis committed Dec 26, 2012
1 parent be7b563 commit 271afc1e35ba3763de7469c68a91ae24161e4651
Showing with 89 additions and 0 deletions.
  1. +89 −0 review/07.re
View
@@ -173,6 +173,95 @@ class Controller_Welcome extends Controller
Myfieldset クラスはこんな感じです。
+//emlist{
+<?php
+class Myfieldset extends \Fieldset
+{
+ /**
+ * フォーム要素をviewで使いやすい配列で取得
+ */
+ public function getFormElements($open = '', $hidden = array())
+ {
+ if (is_array($open)) {
+ $attr = $open;
+ } else {
+ $attr['action'] = $open;
+ $attr['method'] = 'post';
+ }
+
+ // formのIDは'form_' + fieldsetの名前
+ $attr['id'] = 'form_' . $this->get_name();
+
+ // CSRFトークンを加える書きだす
+ $hidden[Config::get('security.csrf_token_key')] = Security::fetch_token();
+
+ // hidden + CSRFトークン生成
+ $form['open'] = $this->form()->open($attr, $hidden);
+
+ // 各要素の生成
+ foreach ($this->field() as $f) {
+ $form[$f->name] = array('label' => $f->label, 'html' => $f->build());
+ }
+
+ // close
+ $form['close'] = '</form>';
+
+ // エラー取得
+ $form['error'] = $this->show_errors();
+
+ return $form;
+ }
+
+ /**
+ * 数値の入力を受け付けるinput text要素
+ *
+ * - 自動的に数値バリデーションが追加される
+ * - 自動的にime-modeがdisabledに設定される
+ */
+ public function addTextForNumeric($name, $label)
+ {
+ return $this->add(
+ $name,
+ $label,
+ array(
+ 'class' => 'input-medium',
+ 'style' => 'ime-mode:disabled'
+ )
+ )->add_rule('valid_string', 'numeric')->set_template('{field}');
+ }
+
+ /**
+ * 選択肢を一行で表示するRadio要素
+ */
+ public function addRadioInline($name, $label, $options)
+ {
+ return $this->add(
+ $name,
+ $label,
+ array(
+ 'type' => 'radio',
+ 'options' => $options,
+ )
+ )->set_template('{fields}<label class="radio inline">{field}{label}</label>{fields}');
+ }
+
+ /**
+ * 選択肢を改行するRadio要素
+ */
+ public function addRadioWithBr($name, $label, $options)
+ {
+ return $this->add(
+ $name,
+ $label,
+ array(
+ 'type' => 'radio',
+ 'options' => $options,
+ )
+ )->set_template('{fields}<label class="radio">{field}{label}</label>{fields}');
+ }
+
+}
+//}
わかりにくいですね。以下、説明します。

0 comments on commit 271afc1

Please sign in to comment.