/** * フォームレンダラ指定 * * フォームのレンダラーを指定します。 * <pre> * self::setRenderer(self::RENDERER_SMARTY_ARRAY); //デファオルト * self::setRenderer(self::RENDERER_DHTML_TABLELESS); //DHTML * * @param string $renderer フォームレンダラー * * @return void * * @see http://pear.php.net/manual/ja/package.html.html-quickform-renderer-tableless.intro.php */ public static function setRenderer($renderer) { self::$_renderer = $renderer; }
/** * 表示 * * ビューにセットされたバリューをテンプレートに適用して画面表示するHTTPボディとHTTPヘッダーを返します * * @param string $tplName テンプレート名 * @param array $options オプション * * @return BEAR_Ro */ public function display($tplName = null, array $options = array()) { // Pageバリューアサイン $this->_smarty->assign($this->_values); // フォームアサイン $forms = BEAR_Form::renderForms($this->_smarty, $this->_config['ua'], $this->_enableJs); $this->_smarty->assign($forms); // テンプレート $viewInfo = $this->_getViewInfo($tplName, $this->_role, 'tpl'); $this->_smarty->assign('layout', $viewInfo['layout_value']); if (isset($options['layout'])) { $layoutfile = 'layouts/' . $options['layout']; } elseif (isset($viewInfo['layout_file'])) { $layoutfile = $viewInfo['layout_file']; } else { $layoutfile = null; } if (isset($layoutfile)) { $this->_smarty->assign('content_for_layout', $this->fetch($viewInfo['page_template'])); $finalPath = $layoutfile; } else { // レイアウトなしのそのままフェッチ $finalPath = $viewInfo['page_template']; } $html = $this->fetch($finalPath); $ro = $this->_getRo($html); // 使用テンプレートのログ $this->_log->log('view', $viewInfo); return $ro; }
/** * フォームバリデーションOK処理 * * トークンの検査を行い不正アクセスでなければonActionメソッドの引数に * POSTされたデータを与えてコールする。 * * @param object $form * @param object $formName * * @return void */ private function _formValidationOk($form, $formName = null) { $submit = $form->exportValues(); BEAR_Form::$submitValue = $form->getSubmitValues(); // アンダースコア始まりのsubmitを消去 foreach ($submit as $submitKey => $value) { if (substr($submitKey, 0, 1) == '_') { unset($submit[$submitKey]); BEAR_Form::$submitHeader[$submitKey] = $value; } if ($value === null) { $submit[$submitKey] = ''; } } // アクションコール $this->_page->onAction($submit); // 追加でアクションコール $methodExists = method_exists($this->_page, 'onAction' . $formName); if ($methodExists) { // onAction.フォーム名() コール $actionMethodName = 'onAction' . $formName; $this->_page->{$actionMethodName}($submit); } }