private function createTree($parent, $TEMPLATE) { $items = ''; while ($obj = ormClasses::getInheritor($parent)) { page::assign('subitem', $this->createTree($obj->id(), $TEMPLATE)); page::assign('obj.id', $obj->id()); page::assign('obj.url', system::au() . '/constructor/class_upd/' . $obj->id()); page::assign('obj.name', $obj->getName()); page::assign('obj.sname', $obj->getSName()); page::assign('obj.parent', $obj->getParentId()); $pach = '/css_mpanel/tree/images/classes/'; $ico = file_exists(ROOT_DIR . $pach . $obj->getSName() . '.png') ? $obj->getSName() . '.png' : 'file1.gif'; page::assign('obj.ico', $pach . $ico); $rights = ''; reset($this->rights); while (list($right, $pict) = each($this->rights)) { $modul = $right == 'values' ? 'reference' : 'constructor'; if (user::issetRight($right, $modul) || $pict == 'empty') { if ($pict == 'empty') { $rights .= page::parse($TEMPLATE['empty_right']); } else { $parse = true; if ($right == 'values') { $parse = $obj->isInheritor('handbook') && $obj->getSName() != 'handbook'; } if ($right == 'class_del') { $parse = !$obj->isSystem(); } if ($parse) { $del_button = $right == 'class_del' ? 'class="del_button"' : ''; page::assign('del_button', $del_button); page::assign('right.url', system::au() . '/' . $modul . '/' . $right); page::assign('right.title', lang::right($right, $modul)); page::assign('right.class', $pict); $rights .= page::parse($TEMPLATE['right']); } else { $rights .= page::parse($TEMPLATE['empty_right']); } } } } page::assign('rights', $rights); $items .= page::parse($TEMPLATE['item']); } if (!empty($items)) { page::assign('items', $items); return page::parse($TEMPLATE['frame_items']); } }
private function changeClass() { if (!empty($this->old_sname) && $this->old_sname != $this->sname) { // Проверяем на уникальность системное имя $sql = 'SELECT count(c_id) FROM <<classes>> WHERE c_sname = "' . $this->sname . '" and c_id <> "' . $this->id . '";'; if (db::q($sql, value) == 0) { $tmp = db::q('ALTER TABLE <<__' . $this->old_sname . '>> RENAME <<__' . $this->sname . '>>;'); if ($tmp === false) { $this->newError(25, 'Невозможно переименовать таблицу данных класса!'); return false; } } else { $this->newError(26, 'Класс с указанным системным именем уже существует в системе!'); return false; } } $sql = !empty($this->base_class) ? ', c_base_class = "' . $this->base_class . '"' : ', c_base_class = NULL'; // Изменяем данные о классе - - - - - - - - $sql = 'UPDATE <<classes>> SET c_name = "' . $this->name . '", c_sname = "' . $this->sname . '", c_system = "' . $this->system . '", c_is_list = "' . $this->is_list . '", c_text = "' . $this->padej . '"' . $sql . ' WHERE c_id = "' . $this->id . '";'; if (db::q($sql) !== false) { // Обновляем данные у классов наследников while ($obj = ormClasses::getInheritor($this->id)) { $obj->setIsList($this->is_list); $obj->save(); } // Присваиваем атрибут системный для всех групп и полей класса if ($this->system && !$this->old_system) { $groups = $this->getAllGroups(); if (!empty($groups)) { while (list($key, $val) = each($groups)) { $obj = new ormFieldsGroup($val['fg_id']); $obj->setSystem(1); $obj->save(); } } } return $this->id; } else { $this->newError(12, 'Ошибка в SQL запросе!'); return false; } }