Example #1
0
 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']);
     }
 }
Example #2
0
    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;
        }
    }