Beispiel #1
0
 public static function doRedirectAfterSubmit($operation = 'edit')
 {
     if (Tools::getValue('class_name')) {
         $class_name = UN_ObjectModel::getClassNameById(Tools::getValue('class_name'));
         if (Tools::getValue('parent_class')) {
             //file_put_contents('$_GET.txt', print_r( $_GET , true));
             //file_put_contents('$_POST.txt', print_r( $_POST , true));
             $parent_class_name = UN_ObjectModel::getClassNameById(Tools::getValue('parent_class'));
             $vars_string = '';
             foreach ($parent_class_name::$un_definition['child_classes'][$class_name]['fields_blocked'] as $t_field_name) {
                 $t_var = $t_field_name . '=' . Tools::getValue($t_field_name);
                 //echo $t_var.' - '.substr_count($vars_string, $t_var).'<br />';
                 if (substr_count($vars_string, $t_var) == 0) {
                     if (!($vars_string == '')) {
                         $vars_string .= '&';
                     }
                     $vars_string .= $t_var;
                 }
             }
             if (Tools::getValue($parent_class_name::$un_definition['primary'])) {
                 $t_var = $parent_class_name::$un_definition['primary'] . '=' . Tools::getValue($parent_class_name::$un_definition['primary']);
                 //echo $t_var.' - '.substr_count($vars_string, $t_var).'<br />';
                 if (substr_count($vars_string, $t_var) == 0) {
                     if (!($vars_string == '')) {
                         $vars_string .= '&';
                     }
                     $vars_string .= $t_var;
                 }
             }
             //file_put_contents('$vars_string.txt', print_r( $vars_string , true));
             $controller = $parent_class_name::$un_definition['controller_name'];
             $operation = '&operation=edit';
             $url = 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER['PHP_SELF'] . '?controller=' . $controller . $operation . '&' . $vars_string;
             //   file_put_contents('$url.txt', print_r( $url , true));
             header('Location: ' . $url);
             exit;
         }
         $controller = $class_name::$un_definition['controller_name'];
         $url = 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER['PHP_SELF'] . '?controller=' . $controller;
         //file_put_contents('$url1.txt', print_r( $url , true));
         header('Location: ' . $url);
         exit;
     }
 }
     $SHOW_LIST = true;
     UN_Tools::doRedirectAfterSubmit();
     //UN_Tools::redirectAfterSubmit();
     //file_put_contents('after_redirect.txt', print_r($data, true));
 } elseif (Tools::getValue('operation') == 'edit') {
     // EDIT AN OBJECT
     $this->addToHead($OBJECT->validation_vars());
     $helper = new $ADD_EDIT_HELPER_NAME();
     $this->addJs($ADD_EDIT_HELPER_NAME, '', false);
     $this->addCss($ADD_EDIT_HELPER_NAME);
     $helper->operation = 'edit';
     $helper->class_definition = $OBJECT::$un_definition;
     $t_parent_vars = UN_Tools::getParentVars();
     $helper->parent_vars = $t_parent_vars;
     if (!empty($t_parent_vars)) {
         $t_parent_class_name = UN_ObjectModel::getClassNameById($t_parent_vars['parent_class']);
         if (array_key_exists($CLASS_NAME, $t_parent_class_name::$un_definition['child_classes'])) {
             $helper->fields_blocked = $t_parent_class_name::$un_definition['child_classes'][$CLASS_NAME]['fields_blocked'];
             foreach ($helper->fields_blocked as $t_field_name) {
                 if (Tools::getValue($t_field_name)) {
                     $helper->parent_vars[$t_field_name] = Tools::getValue($t_field_name);
                     //$helper->object_data[$t_field_name] = Tools::getValue($t_field_name);
                 }
             }
         } else {
             die('Ошибка: класс "' . $CLASS_NAME . '" отсутствует в массиве "child_classes" родительского класса "' . $t_parent_vars['parent_class'] . '"');
         }
     }
     $get_primary = Tools::getValue($CLASS_PRIMARY);
     //file_put_contents('get.txt', print_r($_GET, true));
     //file_put_contents('get_primary.txt', print_r($get_primary, true));
<?php

require_once dirname(__FILE__) . '/../config/config.inc.php';
$action = Tools::getValue('action');
$class_name = UN_ObjectModel::getClassNameById(Tools::getValue('class_name'));
$data = Tools::getValue('data');
//file_put_contents('post.txt', print_r($_POST, true));
if ($action == 'validation') {
    if (!($class_name == '')) {
        $class_obj = new $class_name();
        $valid_res = $class_obj::validation_procedure($data);
        die(json_encode($valid_res));
    }
}
Beispiel #4
0
 public function makeForm()
 {
     $FORM_NAME = $this->class_definition['controller_name'] . '_form';
     $CONTROLLER_NAME = $this->class_definition['controller_name'];
     $CLASS_NAME = $this->class_definition['class_name'];
     $CLASS_PRIMARY = $this->class_definition['primary'];
     $PARENT_VARS = $this->parent_vars;
     $FIELDS_BLOCKED = $this->fields_blocked;
     $PARENT_CLASS_NAME = Tools::getValue('parent_class') ? UN_ObjectModel::getClassNameById(Tools::getValue('parent_class')) : '';
     $html = '<div class="clearfix">';
     $html .= '<div><a class="link_back button" href="" onclick="history.back();"><i class="icon-arrow-left"></i> назад</a>';
     $html .= '<a class="wrap_block wrap" targ="form.edit_form" id="wrap_edit_form"><i class="icon-eye-open"></i></a></div>';
     if (!($PARENT_CLASS_NAME == '')) {
         $t_name = UN_ObjectModel::getGeneralAttribute($this->object_data[$CLASS_PRIMARY]);
         $html .= '<div class="title h2">' . $PARENT_CLASS_NAME::$un_definition['title'] . ' ' . ($t_name ? $t_name : '') . '<i class="icon-double-angle-right"></i></div>';
     }
     $html .= '<script>var page_operation="' . $this->operation . '"</script>';
     $html .= '<div id="msgOutput"></div>';
     $html .= '<form class="edit_form" action="' . $_SERVER['PHP_SELF'] . '?controller=' . $CONTROLLER_NAME . '" method="post" 
         name="' . $FORM_NAME . '" id="' . $FORM_NAME . '">';
     //$html .= '<fieldset>';
     if ($this->operation == 'edit') {
         $html .= '<div class="title h2"> Редактировать "' . $this->class_definition['title'] . '"</div>';
     }
     if ($this->operation == 'add') {
         $html .= '<div class="title h2"> Создать "' . $this->class_definition['title'] . '"</div>';
     }
     if (!empty($PARENT_VARS)) {
         foreach ($PARENT_VARS as $name => $value) {
             $html .= '<input type="hidden" value="' . $value . '" name="' . $name . '" id="' . $name . '" />';
         }
     }
     $html .= '<input type="hidden" value="' . UN_ObjectModel::getClassIdByName($CLASS_NAME) . '" name="class_name" id="class_name" />';
     $html .= '<input type="hidden" value="' . $this->operation . '_submit" name="operation" id="operation" />';
     if ($this->operation == 'edit') {
         $html .= '<input type="hidden" value="' . $this->object_data[$this->class_definition['primary']] . '" 
                     name="object_id" id="' . $this->class_definition['primary'] . '" />';
     }
     $html .= '<table cellpadding="0" cellspacing="0" border="0"><tbody>';
     foreach ($this->class_definition['fields'] as $field_name => $field_data) {
         $CLASS_ADD = '';
         $DISABLED = '';
         $LOCK_ICON_HTML = '';
         if (in_array($field_name, $FIELDS_BLOCKED, true)) {
             $CLASS_ADD .= ' nochoice';
         }
         if ($field_name == $CLASS_PRIMARY) {
             $CLASS_ADD .= ' parent_primary';
         }
         if (is_array($field_data['list_data']['editable'])) {
             if (!$field_data['list_data']['editable']['add'] && $this->operation == 'add' || !$field_data['list_data']['editable']['edit'] && $this->operation == 'edit') {
                 $DISABLED = ' disabled="disabled"';
             }
         } else {
             if (!$field_data['list_data']['editable']) {
                 $DISABLED = ' disabled="disabled"';
             }
         }
         if (!$field_data['list_data']['editable'] || in_array($field_name, $FIELDS_BLOCKED, true)) {
             $LOCK_ICON_HTML = '<span class="icon lock"></span>';
         }
         $REQUIRED = (bool) $field_data['list_data']['required'] ? ' required' : '';
         $UN_TYPE = 'un_type="' . $field_data['list_data']['type'] . '"';
         // add attribute for validation
         $valid_attr = '';
         if (!empty($field_data['validation']['valid_proc'])) {
             $valid_attr = ' validation="proc"';
         } else {
             foreach ($this->class_definition['fields'] as $t_field_name => $t_field_data) {
                 if (!empty($t_field_data['validation']['valid_proc'])) {
                     if (in_array($field_name, $t_field_data['consist'])) {
                         $valid_attr = ' validation="proc"';
                     }
                 }
             }
         }
         $add_html = '';
         // fields type handle
         switch ($field_data['field_type']) {
             case 'link':
                 $T_OBJ = new $field_data['class_name']();
                 $add_html .= '<td class="label">';
                 $add_html .= '<label for="' . $field_name . '">' . $T_OBJ::$un_definition['title'] . '</label>';
                 // description
                 if (isset($field_data['list_data']['description'])) {
                     if (_UN_FIELD_DESC_SIMPLE_) {
                         $add_html .= '<div class="description">' . $field_data['list_data']['description'] . '</div>';
                     } else {
                         $add_html .= '<div class="description jquery_field_desc">';
                         $add_html .= '<i class="icon-info-sign"></i>';
                         $add_html .= '<span style="display: none;">' . $field_data['list_data']['description'] . '</span>';
                         $add_html .= '</div>';
                     }
                 }
                 $add_html .= '</td>';
                 // value of linked field
                 $add_html .= '<td class="field">';
                 $add_html .= '<span class="error msg"></span>';
                 $field_values = $T_OBJ::getFieldValues_v2($field_name, $field_data['list_data']['show_field'], $field_data['list_data']['choice_condition']);
                 $add_html .= '<select ' . $UN_TYPE . ' class="data_field' . $CLASS_ADD . '"
                     size="1" name="' . $field_name . '" id="' . $field_name . '"' . $DISABLED . $REQUIRED . $valid_attr . '>';
                 //file_put_contents($field_name.'-field_values.txt', print_r($field_values, true));
                 foreach ($field_values as $value_row) {
                     $selected = '';
                     if ($this->object_data[$field_name] == $value_row[$field_name]) {
                         $selected = 'selected="selected"';
                     }
                     //file_put_contents($field_name.'-field_values.txt', print_r($field_name, true));
                     $add_html .= '<option ' . $selected . ' value="' . $value_row[$field_name] . '">' . $value_row[$field_data['list_data']['show_field']] . '</option>';
                 }
                 $add_html .= '</select>';
                 $add_html .= $LOCK_ICON_HTML;
                 $add_html .= '</td>';
                 break;
             case 'link_search':
                 $T_OBJ = new $field_data['class_name']();
                 $add_html .= '<td class="label">';
                 $add_html .= '<label for="' . $field_name . '">' . $field_data['list_data']['title'] . '</label>';
                 // description
                 if (isset($field_data['list_data']['description'])) {
                     if (_UN_FIELD_DESC_SIMPLE_) {
                         $add_html .= '<div class="description">' . $field_data['list_data']['description'] . '</div>';
                     } else {
                         $add_html .= '<div class="description jquery_field_desc">';
                         $add_html .= '<i class="icon-info-sign"></i>';
                         $add_html .= '<span style="display: none;">' . $field_data['list_data']['description'] . '</span>';
                         $add_html .= '</div>';
                     }
                 }
                 $add_html .= '</td>';
                 // value of linked field
                 $add_html .= '<td class="field">';
                 $add_html .= '<span class="error msg"></span>';
                 $field_values = $T_OBJ::getFieldValues_v2($field_data['linked_field'], $field_data['list_data']['show_field'], $field_data['list_data']['choice_condition']);
                 //file_put_contents('$field_values.txt', print_r($field_values, true));
                 $add_html .= '<select ' . $UN_TYPE . ' class="data_field' . $CLASS_ADD . '"
                     size="1" name="' . $field_name . '" id="' . $field_name . '"' . $DISABLED . $REQUIRED . $valid_attr . '>';
                 //file_put_contents('field_values.txt', print_r($field_values, true));
                 foreach ($field_values as $value_row) {
                     $selected = '';
                     if ($this->object_data[$field_name] == $value_row[$field_data['linked_field']]) {
                         $selected = 'selected="selected"';
                     }
                     $add_html .= '<option ' . $selected . ' value="' . $value_row[$field_data['linked_field']] . '">' . $value_row[$field_data['list_data']['show_field']] . '</option>';
                 }
                 $add_html .= '</select>';
                 $add_html .= $LOCK_ICON_HTML;
                 $add_html .= '</td>';
                 break;
             case 'composit_name':
                 break;
             case 'association':
                 break;
             case 'range_input_helper':
                 $add_html .= '<td class="label">';
                 $add_html .= '<label for="' . $field_name . '">' . $field_data['list_data']['title'] . '</label>';
                 // description
                 if (isset($field_data['list_data']['description'])) {
                     if (_UN_FIELD_DESC_SIMPLE_) {
                         $add_html .= '<div class="description">' . $field_data['list_data']['description'] . '</div>';
                     } else {
                         $add_html .= '<div class="description jquery_field_desc">';
                         $add_html .= '<i class="icon-info-sign"></i>';
                         $add_html .= '<span style="display: none;">' . $field_data['list_data']['description'] . '</span>';
                         $add_html .= '</div>';
                     }
                 }
                 $add_html .= '</td>';
                 $add_html .= '<td class="field">';
                 $add_html .= '<span class="error msg"></span>';
                 if ($field_data['list_data']['type'] == 'text') {
                     //foreach($field_data['consist'] as $key => $t_field_name)
                     //{
                     $size = $field_data['list_data']['size'] ? ' size="' . $field_data['list_data']['size'] . '" ' : ' size="50" ';
                     $add_html .= $field_data['splitter'][0] ? '<span class="splitter">' . $field_data['splitter'][0] . '</span>' : '<span class="spacer"></span>';
                     $add_html .= '<input class="range_helper range_data_field from" ' . $UN_TYPE . $DISABLED . $REQUIRED . ' type="text" 
                         align="LEFT" ' . $size . ' maxlength="60" un_for="' . $field_data['consist'][0] . '" id="helper_' . $field_data['consist'][0] . '" value="" title="from" />';
                     $add_html .= $field_data['splitter'][1] ? '<span class="splitter">' . $field_data['splitter'][1] . '</span>' : '<span class="spacer"></span>';
                     //$add_html .= '<span class="error msg"></span>';
                     $add_html .= '<input class="range_helper range_data_field to" ' . $UN_TYPE . $DISABLED . $REQUIRED . ' type="text" 
                         align="LEFT" ' . $size . ' maxlength="60" un_for="' . $field_data['consist'][1] . '" id="helper_' . $field_data['consist'][1] . '" value="" title="to" />';
                     //}
                 }
                 $add_html .= $LOCK_ICON_HTML;
                 $add_html .= '</td>';
                 break;
             default:
                 if (!(!_UN_SHOW_SYS_FIELDS_ && $field_data['field_type'] == 'system_data')) {
                     $add_html .= '<td class="label">';
                     $add_html .= '<label for="' . $field_name . '">' . $field_data['list_data']['title'] . '</label>';
                     // description
                     if (isset($field_data['list_data']['description'])) {
                         if (_UN_FIELD_DESC_SIMPLE_) {
                             $add_html .= '<div class="description">' . $field_data['list_data']['description'] . '</div>';
                         } else {
                             $add_html .= '<div class="description jquery_field_desc">';
                             $add_html .= '<i class="icon-info-sign"></i>';
                             $add_html .= '<span style="display: none;">' . $field_data['list_data']['description'] . '</span>';
                             $add_html .= '</div>';
                         }
                     }
                     $add_html .= '</td>';
                     $add_html .= '<td class="field">';
                     $add_html .= '<span class="error msg"></span>';
                     if ($field_data['list_data']['type'] == 'text') {
                         $add_html .= '<input class="data_field' . $CLASS_ADD . '" ' . $UN_TYPE . $DISABLED . $REQUIRED . $valid_attr . ' type="text" 
                             value="' . $this->object_data[$field_name] . '" align="LEFT" size="60" maxlength="60" 
                             name="' . $field_name . '" id="' . $field_name . '" title="title" />';
                     }
                     if ($field_data['list_data']['type'] == 'text_box') {
                         $add_html .= '<textarea class="data_field' . $CLASS_ADD . '" ' . $UN_TYPE . $DISABLED . $REQUIRED . $valid_attr . ' cols="60" rows="3" wrap="soft" 
                             name="' . $field_name . '" id="' . $field_name . '" title="title">' . $this->object_data[$field_name] . '</textarea>';
                     }
                     if ($field_data['list_data']['type'] == 'boolean') {
                         if ($this->operation == 'edit') {
                             $t_checked = (bool) $this->object_data[$field_name] ? ' checked="checked"' : '';
                         } else {
                             $t_checked = ' checked="checked"';
                         }
                         $add_html .= '<input class="data_field' . $CLASS_ADD . '" ' . $UN_TYPE . $DISABLED . $valid_attr . ' 
                             type="checkbox" align="LEFT" ' . $t_checked . ' 
                             name="' . $field_name . '" id="' . $field_name . '" />';
                     }
                     if ($field_data['list_data']['type'] == 'date_time') {
                         $add_html .= '<input class="data_field datepicker hasDatepicker' . $CLASS_ADD . '" ' . $UN_TYPE . $DISABLED . $valid_attr . ' type="text" 
                             name="' . $field_name . '" id="' . $field_name . '" value="' . $this->object_data[$field_name] . '" />';
                     }
                     $add_html .= $LOCK_ICON_HTML;
                     $add_html .= '</td>';
                 }
                 break;
         }
         if (!($add_html == '')) {
             $html .= '<tr>';
             $html .= $add_html;
             $html .= '</tr>';
         }
     }
     $html .= '<tr><td></td><td class="buttons">
                 <span id="alert_error" style="display:none;"></span>
                 <div class="button btn normal" id="verify_form_data"><span>проверить</span></div>
                 <div class="submitButton"><input type="submit" value="СОХРАНИТЬ" name="' . $FORM_NAME . '_submit"  /></div>
                 </td></tr>';
     $html .= '</tbody></table>';
     //$html .= '</fieldset>';
     $html .= '</form>';
     $html .= '</div>';
     $this->result = $html;
     return $html;
 }