Beispiel #1
0
 /**
  * joosAutoadmin::edit()
  *
  * Генерация формы добавления/редактирования записи
  *
  * @param joosModel $obj
  * @param object    $obj_data
  * @param array     $params
  */
 public static function edit(joosModel $obj, $obj_data, $params = null)
 {
     self::$active_model_name = get_class($obj);
     $option = joosRequest::param('option');
     $task = joosRequest::param('task');
     //Настраиваем параметры HTML-разметки формы
     if (!$params) {
         $params = array('label_begin' => '<div class="control-group">', 'label_end' => '', 'el_begin' => '<div class="controls">', 'el_end' => '</div></div>');
         //'tab_wrap_begin' => '<tr><td>',
         //'tab_wrap_end' => '</td></tr>',);
     }
     //Вывод заголовка страницы с формой
     $header = $obj->get_tableinfo();
     //Получаем данные
     joosAdminView::set_param('component_title', isset($header['header_main']) ? $header['header_main'] : '');
     joosAdminView::set_param('component_header', $obj_data->{$obj->get_key_field()} > 0 ? $header['header_edit'] : $header['header_new']);
     $class = self::$active_actions_class;
     joosAdminView::set_param('submenu', $class::get_submenu());
     joosAdminView::set_param('current_model', self::get_active_model_name());
     //echo self::header(array(), 'edit');
     // начинаем отлавливать поступаемый JS код
     //@ зачем?
     //self::$js_onformsubmit[] = '<script type="text/javascript" charset="utf-8">function submitbutton(pressbutton) {';
     //Массив сформированных элементов для вывода
     $_elements = array();
     //Получаем данные о элементах формы
     $fields_info = $obj->get_fieldinfo();
     foreach ($fields_info as $key => $field) {
         if ($field['editable'] == true && !(isset($field['hide_on']) && $field['hide_on'] === $task)) {
             $v = isset($obj_data->{$key}) ? $obj_data->{$key} : '';
             $_elements[$key] = self::get_edit_html_element($field, $key, $v, $obj_data, $params);
         }
     }
     //Если заданы табы
     //@todo Реализуем позже
     /*
     $_tabs_areas = '';
     $_tabs_array = array();
     $_tabs_new = is_callable(array($obj, 'get_tabsinfo')) ? $obj->get_tabsinfo() : null;
     if ($_tabs_new) {
         $_tabs_areas .= '<div id="tabs_wrap"><ul id="tabs_list">';
         foreach ($_tabs_new as $_tab_key => $_tab_fields) {
             $_tabs_areas .= '<li><span rel="tab_' . $_tab_key . '">' . $_tab_fields['title'] . '</span></li>';
             foreach ($_tab_fields['fields'] as $f) {
                 if (isset($_elements[$f])) {
                     $_tabs_array[$_tab_key]['title'] = __($_tab_fields['title']);
                     $_tabs_array[$_tab_key]['elements'][] = $_elements[$f];
                 }
             }
         }
         $_tabs_areas .= '</ul></div>';
     
         $i = 1;
         foreach ($_tabs_array as $tab_area_key => $tab_fields) {
             $_tabs_areas .= '<div ' . ( $i == 1 ? '' : 'style="display: none" ' ) . ' class="tab_area tab_area_' . $i . '" id="tab_' . $tab_area_key . '">';
     
             //Начало общего контейнера
             $_tabs_areas .= $params['wrap_begin'];
     
             //Вывод элементов
             $_tabs_areas .= implode('', $tab_fields['elements']);
     
             //Конец общего контейнера
             $_tabs_areas .= $params['wrap_end'];
     
             $_tabs_areas .= '</div>';
     
             $i++;
         }
     
         echo $_tabs_areas;
     } else {
     */
     /*
         //Начало общего контейнера
         echo $params['wrap_begin'];
     
         //Вывод элементов
         echo implode('', $_elements);
     
         //Конец общего контейнера
         echo $params['wrap_end'];
     }
     */
     // закрываем JS вкрапления
     //self::$js_onformsubmit[] = 'submitform( pressbutton );';
     //self::$js_onformsubmit[] = '};</script>';
     //echo "\n" . implode("\n", self::$js_onformsubmit) . "\n";
     require_once JTEMPLATE_ADMIN_BASE . DS . 'html' . DS . 'edit.php';
 }
 public function action_after()
 {
     joosAdminView::set_param('submenu', self::get_submenu());
 }