public function proc_upd() { if (system::issetUrl(2)) { $obj = new ormField(); $obj->setGroupId(system::url(2)); } else { 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']); } } } if (!empty($_POST['fname'])) { $obj->setName($_POST['fname']); } if (!empty($_POST['max_size'])) { $obj->setMaxSize($_POST['max_size']); } else { $obj->setMaxSize(0); } $obj->setType(0); $obj->setInherit(1); $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(); }
function getField($sname) { $field = false; if (!empty($sname) && !is_array($sname)) { $this->loadFields(); // Проверяем переданные данные, определяем ID if (is_numeric($sname)) { $id = system::checkVar($sname, isInt); if (array_key_exists($id, $this->fields_name)) { $sname = $this->fields_name[$id]; } } else { if (!is_array($sname)) { $sname = system::checkVar($sname, isVarName); } } // Загрузка поля if (isset($this->fields_obj[$sname])) { $field = $this->fields_obj[$sname]; } else { if (isset($this->fields[$sname])) { $field = new ormField($this->fields[$sname]); if (!$field->issetErrors()) { $this->fields_obj[$sname] = $field; } else { $field = false; } } } } if ($field) { return $field; } }
/** * @return Сгенерированный HTML * @param ormField $obj - экземпляр ORM-поля, для которого необходимо сгенерировать HTML * @param Bool $isUpd - Если 1 генерировать для обновления, 0 - для добавления * @param String $templ_name - имя шаблона оформления * @desc Генерирует HTML для обновления поля через AJAX */ function getFieldHTML($obj, $isUpd, $templ_name = 'orm_fields_tree') { $ret = ''; if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) { include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl'; page::assign('item.id', $obj->id()); page::fParse('item.url', $this->rightEdit); page::assign('item.sname', $obj->getSName()); if ($obj->getName() != '') { page::assign('item.name', $obj->getName()); } else { page::assign('item.name', '- - - - -'); } if ($obj->getType() == 0) { page::assign('item.type', ''); } else { page::assign('item.type', lang::get('CONSTR_TYPE_LIST', $obj->getType())); } page::assign('star', $obj->getRequired() ? '*' : ''); page::assign('sh', $obj->getView() ? 'lshow' : 'lhide'); if ($obj->getType() != 0 && ($obj->getSystem() || $obj->isClone())) { $postfix = '_not_edit'; } else { page::assign('item.right', $this->getRightForField($TEMPLATE, $obj->id(), $obj->getType(), $obj->getSName())); $postfix = '_edit'; } if ($obj->getType() == 0) { if ($isUpd) { $ret = page::parse($TEMPLATE['upd_separator']); } else { $ret = page::parse($TEMPLATE['separator']); } } else { if ($isUpd) { $ret = page::parse($TEMPLATE['upd_field' . $postfix]); } else { $ret = page::parse($TEMPLATE['field' . $postfix]); } } } return $ret; }
public function moveto() { $obj = new ormField(system::url(2)); $obj->setPosition(system::url(3)); $obj->setGroupId(system::url(4)); if ($obj->save()) { echo "ok"; } else { print_r($obj->getErrorList()); echo 'error'; } system::stop(); }
/** * @return HTML * @param int $obj_id - ID объекта * @param int $field_id - ID поля * @desc Создает элемент формы для установления связей с объектами. */ static function objectLinks($object, $field_id, $prefix = '', $fname = '', $width = 400, $templ_name = 'objectLinks') { if (file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) { include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl'; $field = new ormField($field_id); if ($field instanceof ormField && !$field->issetErrors()) { page::assign('field_id', $field->getSName() . $prefix); page::assign('ol_width', $width); if (empty($fname)) { page::assign('field_name', $field->getSName() . $prefix); } else { page::assign('field_name', $fname); } $list = ''; if ($object->id > 0) { $sel = new ormSelect(); $sel->fields('id, name'); if ($field->getRelType() == 0) { $sel->depends($object->id, $field->id()); } else { if ($field->getRelType() == 1) { $sel->contains($object->id, $field->id()); } else { $sel->contains($object->id); } } while ($obj = $sel->getObject()) { page::assign('id', $obj->id); page::assign('name', $obj->name); $list .= page::parse($TEMPLATE['object_link']); } } else { if ($field->getRelType() == 2) { $objs = $object->getParents(); if (count($objs) > 0) { foreach ($objs as $val) { if ($obj = ormPages::get($val['parent_id'])) { page::assign('id', $obj->id); page::assign('name', $obj->name); $list .= page::parse($TEMPLATE['object_link']); } } } } } page::assign('list', $list); $ret = page::parse($TEMPLATE['frame']); page::assign($field->getSName(), $ret); return $ret; } } }