public static function get($id) { $class = false; if (!empty($id) && !is_array($id)) { self::init(); // Проверяем переданные данные, определяем ID if (is_numeric($id)) { $id = system::checkVar($id, isInt); } else { if (!is_array($id)) { $sname = system::checkVar($id, isVarName); if (!empty($sname) && array_key_exists($sname, self::$cl_names)) { $id = self::$cl_names[$sname]; } } } // Загрузка класса if (is_numeric($id) && isset(self::$classes[$id])) { $class = self::$classes[$id]; } else { if (isset(self::$classes_data[$id])) { $class = new ormClass(self::$classes_data[$id]); if (!$class->issetErrors()) { self::$classes[$class->id()] = $class; } else { $class = false; } } } } if ($class) { return $class; } }
public function upd() { if (file_exists(MODUL_DIR . '/constructor/template/fgroup.tpl')) { include MODUL_DIR . '/constructor/template/fgroup.tpl'; } if (system::action() == "upd") { // форма обновления информации $group = new ormFieldsGroup(system::url(2)); if ($group->id() == '') { system::stop(); } page::assign('obj.group_name', $group->getName()); page::assign('obj.group_sname', $group->getSName()); page::assign('obj.id', $group->id()); $view = $group->getView(); $system = $group->getSystem(); page::assign('right', 'fgroup_proc_upd'); } else { if (system::action() == "add") { // форма добавления информации if (system::issetUrl(2)) { // Проверяем существует ли родитель? $class = new ormClass(system::url(2)); if ($class->id() == '') { system::stop(); } } $view = 1; $system = 0; page::assign('obj.id', system::url(2)); page::assign('right', 'fgroup_proc_add'); } } page::assignArray(lang::get('CONSTR_FORM_FIELD2')); page::assignSavingPost(); ui::CheckBox('group_view', 1, $view, lang::get('CONSTR_FORM_FIELD2', 3)); ui::CheckBox('group_system', 1, $system, lang::get('CONSTR_FORM_FIELD2', 4)); echo page::parse($TEMPLATE['frame'], 1); system::stop(); }
/** * @return Сгенерированный HTML * @param ormClass $class - экземпляр ORM-класса, для которого необходимо построить структуру * @param String $templ_name - имя шаблона оформления * @desc Генерирует структуру полей для класса данных */ function getHTML($class, $templ_name = 'orm_fields_tree') { if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) { include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl'; $nodes['groups'] = $class->getAllGroups(); $nodes['fields'] = $class->getAllFields(); $main_url = system::au() . '/' . system::url(0) . '/'; page::assign('main_url', $main_url); if (is_array($nodes) && isset($nodes['groups']) && isset($nodes['fields'])) { $groups = ''; while (list($key, $node) = each($nodes['groups'])) { // Парсим данные о вложенных полях $fields = ''; reset($nodes['fields']); while (list($key, $field) = each($nodes['fields'])) { if ($field['f_group_id'] == $node['fg_id']) { if (empty($field['f_name'])) { $field['f_name'] = '- - - - -'; } page::assign('item.id', $field['f_id']); page::assign('item.parent_id', $field['f_group_id']); page::fParse('item.url', $this->rightEdit); page::assign('item.name', $field['f_name']); page::assign('item.sname', $field['f_sname']); page::assign('item.type', lang::get('CONSTR_TYPE_LIST', $field['f_type'])); page::assign('star', $field['f_required'] ? '*' : ''); page::assign('sh', $field['f_view'] ? 'lshow' : 'lhide'); if (empty($field['f_type'])) { page::assign('item.right', $this->getRightForField($TEMPLATE, $field['f_id'], $field['f_type'], $field['f_sname'])); $fields .= page::parse($TEMPLATE['separator']); } else { if ($field['f_system'] || $field['f_is_clone']) { $fields .= page::parse($TEMPLATE['field_not_edit']); } else { page::assign('item.right', $this->getRightForField($TEMPLATE, $field['f_id'], $field['f_type'], $field['f_sname'])); $fields .= page::parse($TEMPLATE['field_edit']); } } } } page::assign('items', $fields); page::assign('item.id', $node['fg_id']); page::fParse('sub_items', $TEMPLATE['frame_items']); // Парсим данные о группе полей fg_view fg_sname page::assign('item.id', $node['fg_id']); page::assign('item.parent_id', 0); page::fParse('item.url', $this->rightEdit2); page::assign('item.name', $node['fg_name']); page::assign('item.sname', $node['fg_sname']); page::assign('sh', $node['fg_view'] ? ' lshow' : ' lhide'); $other = $node['fg_system'] || $node['fg_is_clone'] ? true : false; page::assign('item.right', $this->getRightForGroup($TEMPLATE, $node['fg_id'], $other)); $groups .= page::parse($TEMPLATE['groups']); } page::assign('frame_items', $groups); } else { page::assign('frame_items', ''); } ui::insertButton('button_new_group', lang::get('BTN_NEW_FGROUP'), 'javascript:changeGroup(' . $class->id() . ', \'add\');'); return page::parse($TEMPLATE['main']); } }
public function proc_upd() { if (system::action() == "proc_upd") { $obj = new ormField($_POST['obj_id']); } else { if (system::action() == "proc_add") { $obj = new ormField(); $obj->setGroupId($_POST['obj_id']); } } $obj->setName(system::POST('fname')); $obj->setSName(system::POST('fsname')); $obj->setHint(system::POST('hint')); $obj->setType(system::POST('type')); $obj->setView(system::POST('view')); $obj->setSearch(system::POST('search')); $obj->setInherit(system::POST('inherit')); $obj->setFilter(system::POST('filter')); $obj->setRequired(system::POST('required')); $obj->setSystem(system::POST('system')); $obj->setUniqum(system::POST('uniqum')); $obj->setMaxSize(system::POST('max_size')); $obj->setQuickAdd(system::POST('quick_add')); $obj->setRelType(system::POST('reltype')); $obj->setSpec(system::POST('spec')); // Работа с привязанным справочником if (system::POST('type') == 95 || system::POST('type') == 90 || system::POST('type') == 97) { $list_id = system::POST('list_id'); // Если не был указан справочник, то автоматически создаем новый if (empty($list_id)) { $class_name = 'list_' . system::POST('fsname', isVarName); if ($class = ormClasses::get($class_name)) { $list_id = $class->id(); } else { $class = new ormClass(); $class->setParentId(29); $class->setName('Для поля "' . system::POST('fname', isString) . '"'); $class->setSName($class_name); $class->setSystem(0); $class->setIsList(1); $list_id = $class->save(); if ($list_id === false) { $list_id = 0; } } } $obj->setListId($list_id); } else { $obj->setListId(0); } $obj_id = $obj->save(); if ($obj_id === false) { echo json_encode(array('error' => 1, 'data' => $obj->getErrorListText(' '))); } else { $tree = new ormFieldsTree(); $forUpd = system::action() == "proc_add" ? 0 : 1; echo json_encode(array('error' => 0, 'data' => $tree->getFieldHTML($obj, $forUpd))); } system::stop(); }
public function del() { $class = new ormClass(system::url(2)); if ($class->delete()) { echo "ok"; } else { echo "error"; } system::stop(); }