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)); } }
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; }