} elseif (Tools::getValue($this->controller_name . '_form_submit') && Tools::getValue('operation') == 'edit_submit') { $data = UN_Tools::getObjectDataFromSubmit($OBJECT); //file_put_contents('$data.txt', print_r( $data , true)); $OBJECT->save_item($data, Tools::getValue('object_id'), $OBJECT::$un_definition['class_name']); //file_put_contents('$data.txt', print_r( $data , true)); $this->add('edit ok'); $SHOW_LIST = true; UN_Tools::doRedirectAfterSubmit(); //UN_Tools::redirectAfterSubmit(); //exit; } elseif (Tools::getValue('operation') == 'delete') { $OBJECT->delete_item_by_id(Tools::getValue($CLASS_PRIMARY)); $this->add('delete ok'); $SHOW_LIST = true; //echo 'DELETE!!!!'; $_GET['class_name'] = UN_ObjectModel::getClassIdByName($CLASS_NAME); UN_Tools::doRedirectAfterSubmit(); } elseif (Tools::getValue('operation') == 'list') { $SHOW_LIST = true; } } else { $SHOW_LIST = true; } if ($SHOW_LIST) { // JUST LIST OF OBJECTS //$PARENT_VARS = UN_Tools::getParentVars(); //$t_list_condition = UN_Tools::getConditionWithObjectId($CLASS_NAME); UN_Tools::doRedirectAfterSubmit(); //UN_Tools::redirectAfterSubmit(); $object_list = $OBJECT->getList(false, true); $this->addToHead($OBJECT->validation_vars());
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; }