Exemplo n.º 1
0
 function preforward()
 {
     $type = $this->af->get('type');
     if ($type === null) {
         $type = 'text';
     }
     $type_options = array('text' => '一行入力', 'textarea' => '複数行入力', 'select' => 'セレクトボックス', 'radio' => 'ラジオボタン', 'checkbox' => 'チェックボックス', 'file' => 'ファイル選択');
     $data =& $this->backend->getManager('Data');
     $index_options = range(0, count($data->get('attr')) + 1);
     unset($index_options[0]);
     $this->af->setApp('id', $this->af->get('id'));
     $this->af->setApp('index', $this->af->get('index'));
     $this->af->setApp('index_options', $index_options);
     $this->af->setApp('type', $type);
     $this->af->setApp('type_options', $type_options);
     $this->af->setApp('form_name', $data->get('name'));
     $forms = array();
     $attr_list = $data->get('attr');
     if (is_array($attr_list)) {
         foreach ($attr_list as $attr) {
             $attr = Ethna_Util::escapeHtml($attr);
             $t = $attr['type_name'][0];
             $attr['style'] = $attr['type_name'] == 'textarea' ? 'overflow-y: scroll;height: 2.8em;' : '';
             $attr['width'] = 1;
             $attr['height'] = 1;
             $attr['values'] = ' ';
             $form = FormBuilder::build($attr);
             if ($t == 'c' || $t == 'r') {
                 $v = ' checked="checked"';
             } else {
                 $v = '';
             }
             $form = preg_replace('/\\<\\?.+?\\?\\>/', $v, $form);
             $attr['form'] = $form;
             $forms[] = $attr;
         }
         $this->af->setAppNE('forms', $forms);
     }
 }
Exemplo n.º 2
0
 /**
  *  レンダラオブジェクトを取得する
  *
  *  @access protected
  *  @return object  Ethna_Renderer  レンダラオブジェクト
  */
 function _getRenderer()
 {
     $c = $this->backend->getController();
     $renderer = $c->getRenderer();
     $form_array = $this->af->getArray();
     $app_array = $this->af->getAppArray();
     $app_ne_array = $this->af->getAppNEArray();
     $renderer->setPropByRef('form', $form_array);
     $renderer->setPropByRef('app', $app_array);
     $renderer->setPropByRef('app_ne', $app_ne_array);
     $message_list = Ethna_Util::escapeHtml($this->ae->getMessageList());
     $renderer->setPropByRef('errors', $message_list);
     if (isset($_SESSION)) {
         $tmp_session = Ethna_Util::escapeHtml($_SESSION);
         $renderer->setPropByRef('session', $tmp_session);
     }
     $renderer->setProp('script', htmlspecialchars(basename($_SERVER['SCRIPT_NAME']), ENT_QUOTES, mb_internal_encoding()));
     $renderer->setProp('request_uri', isset($_SERVER['REQUEST_URI']) ? htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, mb_internal_encoding()) : '');
     $renderer->setProp('config', $this->config->get());
     return $renderer;
 }
    function makeParts_m($attr_list)
    {
        $cycle = 1;
        $forms = array();
        $confirms = array();
        foreach ($attr_list as $i => $attr) {
            $attr = Ethna_Util::escapeHtml($attr);
            extract($attr);
            $form = FormBuilder::build($attr);
            $form = $this->lightweighting($form);
            if ($i === 0) {
                $group = '0';
            }
            if ($required === '1') {
                $name .= '<em class="required">※</em>';
            }
            if ($suffix != '') {
                $form .= ' ' . $suffix;
            }
            if ($example !== '') {
                $example = nl2br($example);
                $form .= <<<EOM
<br />
\t\t\t<em class="example">{$example}</em>
EOM;
            }
            // =================================================================================
            $error = <<<EOM
\t\t\t<?error(\$vars, '{$id}')?>
EOM;
            if ($group === '0' && $i > 0) {
                $forms[] = <<<EOM
\t\t</div>
\t\t<hr />
EOM;
            }
            if ($group === '0') {
                $cycle ^= 1;
                $forms[] = <<<EOM
\t\t<div>
\t\t\t■{$name}<br />
{$error}
EOM;
            } else {
                $this->insertError($forms, $error);
                if ($group === '2') {
                    $forms[count($forms) - 1] .= '<br />';
                }
            }
            $forms[] = <<<EOM
\t\t\t{$form}
EOM;
            // =================================================================================
            if ($group === '0' && $i > 0) {
                $confirms[] = <<<EOM
\t</div>
\t<hr />
EOM;
            }
            if ($group === '0') {
                $confirms[] = <<<EOM
\t<div>
\t\t■{$name}<br />
EOM;
            } else {
                if ($group === '2') {
                    $confirms[count($confirms) - 1] .= '<br />';
                }
            }
            $confirms[] = <<<EOM
\t\t<?=\${$id}_c?> {$suffix}
EOM;
            // =================================================================================
        }
        // endforeach
        if ((bool) $forms) {
            $forms[] = <<<EOM
\t\t</div>
EOM;
            $confirms[] = <<<EOM
\t</div>
EOM;
        }
        return array($confirms, $forms);
    }
 /**
  *	Smartyオブジェクトを取得する
  *
  *	@access	protected
  *	@return	object	Smarty	Smartyオブジェクト
  */
 function &_getTemplateEngine()
 {
     $c =& $this->backend->getController();
     $smarty =& $c->getTemplateEngine();
     $form_array =& $this->af->getArray();
     $app_array =& $this->af->getAppArray();
     $app_ne_array =& $this->af->getAppNEArray();
     $smarty->assign_by_ref('form', $form_array);
     $smarty->assign_by_ref('app', $app_array);
     $smarty->assign_by_ref('app_ne', $app_ne_array);
     $message_list = Ethna_Util::escapeHtml($this->ae->getMessageList());
     $smarty->assign_by_ref('errors', $message_list);
     if (isset($_SESSION)) {
         $tmp_session = Ethna_Util::escapeHtml($_SESSION);
         $smarty->assign_by_ref('session', $tmp_session);
     }
     $smarty->assign('script', basename($_SERVER['PHP_SELF']));
     $smarty->assign('request_uri', htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES));
     return $smarty;
 }