Пример #1
0
 function generate_html_fields(&$form)
 {
     $html = '';
     foreach ($form as $id => $field) {
         $wrapper = array();
         $style = NULL;
         $class = '';
         $style['auto_width'] = FALSE;
         $generated_html = '';
         if (isset($field['wrapper'])) {
             $wrapper = $field['wrapper'];
         }
         if (isset($field['class'])) {
             $class = $field['class'];
         }
         if (isset($field['if_other_fields'])) {
             foreach ($field['if_other_fields'] as $arr) {
                 //$tarr=explode('_', $field['name']);
                 //$prefix=$tarr[0].'_'.$tarr[1];
                 //$item_number=$tarr[1];
                 $item_number = $this->model->determine_item_number($field['name']);
                 foreach ($arr as $condition => $action) {
                     $condition = explode('=', $condition);
                     $target = $condition[0];
                     $target_value = $condition[1];
                     $action = explode(' ', $action);
                     //if (substr($target,0,7)=='item_*_') $target=$prefix.'_'.substr($target,7);
                     $target_arr =& $this->model->find_target($target, $field['name']);
                     //$this->model->get_field_from_custom_scheme($form, $target);
                     if ($target_arr['value'] == $target_value) {
                         if ($action[0] == 'show_form') {
                             if (substr($action[1], 0, 12) == 'custom_form_') {
                                 $custom_form = intval(substr($action[1], 12));
                                 $generated_html = $this->generate_html_fields($this->model->item_loaded_custom_forms[$item_number][$custom_form]);
                             }
                         }
                     }
                 }
             }
         }
         if (isset($field['not_visible_if'])) {
             foreach ($field['not_visible_if'] as $not_visible_if_array) {
                 //echo '========= '.$not_visible_if_array."<br />";
                 $looking_for_arr = explode('=', $not_visible_if_array);
                 $looking_for = $looking_for_arr[0];
                 $looked_val = $looking_for_arr[1];
                 //echo 'looking_for: '.$looking_for.'<br />'; echo 'looked_val: '.$looked_val.'<br />';
                 if (substr($looking_for, 0, 5) == 'item_') {
                     $looked_arr =& $this->model->find_target($looking_for, $field['name']);
                     if ($looked_arr != NULL) {
                         if ($looked_arr['value'] == $looked_val) {
                             $wrapper['display'] = 'none';
                         }
                     }
                 }
                 if (substr($looking_for, 0, 9) == 'settings_') {
                     //echo 'explain: '.$looking_for." = ".$looked_val."  => ".$this->model->loaded_settings[$looking_for]['value']."<br />";
                     //print_r()
                     if ($this->model->loaded_settings[$looking_for]['value'] == $looked_val) {
                         $wrapper['display'] = 'none';
                     }
                 }
             }
         }
         if (isset($field['if_value'])) {
             $arr = $field['if_value'];
             $events = array();
             foreach ($arr as $value => $expr) {
                 $expr = explode(' ', $expr);
                 $action = $expr[0];
                 $target = $expr[1];
                 $param1 = '';
                 $param2 = '';
                 $tarr = explode('_', $field['name']);
                 $prefix = $tarr[0] . '_' . $tarr[1];
                 if (isset($expr[2])) {
                     $param1 = $expr[2];
                 }
                 if ($action == 'ajax_load_form' && $tarr[0] == 'item') {
                     $param2 = $tarr[1];
                 }
                 if ($tarr[0] == 'item' && substr($target, 0, 7) == 'item_*_') {
                     $target = $prefix . '_' . substr($target, 7);
                 }
                 if ($tarr[0] == 'item' && substr($target, 0, 8) == '.item_*_') {
                     $target = '.' . $prefix . '_' . substr($target, 8);
                 }
                 if ($tarr[0] == 'item' && substr($target, 0, 8) == '#item_*_') {
                     $target = '#' . $prefix . '_' . substr($target, 8);
                 }
                 $target_arr = array('target' => $target, 'param1' => $param1, 'param2' => $param2);
                 $events[$value] = array($action => $target_arr);
             }
             $this->javascript_events[] = array('object' => $field['name'], 'if_value' => $events);
         }
         if (isset($field['style'])) {
             $style = $field['style'];
         }
         if (isset($field['label'])) {
             $wrapper['span'] = $field['label'];
         }
         if (isset($field['group'])) {
             $wrapper['group'] = $field['group'];
             $tarr = explode('_', $field['name']);
             $prefix = $tarr[0] . '_' . $tarr[1];
             if ($tarr[0] == 'item' && substr($field['group'], 0, 7) == 'item_*_') {
                 $wrapper['group'] = $prefix . '_' . substr($wrapper['group'], 7);
             }
         }
         if (isset($field['html_before'])) {
             $html .= $field['html_before'];
         }
         if ($field['type'] == 'image_upload') {
             $default = $this->main_object->url . 'images/no_image.jpg';
             if (isset($field['empty_image'])) {
                 $default = $field['empty_image'];
             }
             $html .= all_around_visual_elements::generate_image($field['name'], $field['value'], $wrapper, $style, $default);
         }
         if ($field['type'] == 'listbox') {
             $html .= all_around_visual_elements::generate_listbox($field['name'], $field['value'], $field['list'], $wrapper, $style);
         }
         if ($field['type'] == 'text') {
             $html .= all_around_visual_elements::generate_textarea($field['name'], $field['value'], $wrapper, $style);
         }
         if ($field['type'] == 'input') {
             $html .= all_around_visual_elements::generate_input($field['name'], $field['value'], $wrapper, $style);
         }
         if ($field['type'] == 'hidden') {
             $html .= all_around_visual_elements::generate_hidden($field['name'], $field['value'], $class);
         }
         if ($field['type'] == 'font') {
             $wrapper2 = $wrapper;
             if ($this->main_object->backend_style == 1) {
                 $wrapper2['margin-bottom'] = '50px';
             }
             if ($this->main_object->backend_style == 2) {
                 $wrapper2['margin-bottom'] = '71px';
             }
             $html .= all_around_visual_elements::generate_button($field['name'] . '_button', $this->convert_font_data_to_label($field['value']), 'black_clear', $wrapper2, $style, FALSE, '', 'all_around_font_button', $field['name']) . all_around_visual_elements::generate_hidden($field['name'], $field['value']);
         }
         if ($field['type'] == 'button') {
             $wrapper2 = $wrapper;
             if ($this->main_object->backend_style == 1) {
                 $wrapper2['margin-bottom'] = '50px';
             }
             if ($this->main_object->backend_style == 2) {
                 $wrapper2['margin-bottom'] = '71px';
             }
             if (isset($field['wrapper'])) {
                 $wrapper2 = $field['wrapper'];
             }
             $html .= all_around_visual_elements::generate_button($field['name'] . '_button', $field['value'], 'black_clear', $wrapper2, $style, TRUE);
         }
         if ($field['type'] == 'color') {
             $html .= all_around_visual_elements::generate_color($field['name'], $field['value'], $wrapper, $style);
         }
         if ($field['type'] == 'checkbox') {
             if (isset($field['without_wrapper_label']) && $field['without_wrapper_label'] == 1 && isset($wrapper['span'])) {
                 unset($wrapper['span']);
                 $wrapper['empty_wrapper'] = 1;
             }
             $html .= all_around_visual_elements::generate_checkbox($field['label'], $field['name'], $field['value'], $wrapper, $style);
         }
         if ($field['type'] == 'number') {
             if (!isset($field['step'])) {
                 $field['step'] = 1;
             }
             $html .= all_around_visual_elements::generate_number($field['name'], $field['value'], $field['min'], $field['max'], $field['unit'], $wrapper, $style, $field['step']);
         }
         if ($field['type'] == 'attached_form') {
             $html .= all_around_visual_elements::generate_div($field['name'], $generated_html, $style);
         }
         if (isset($field['html_after'])) {
             $html .= $field['html_after'];
         }
     }
     return $html;
 }