Esempio n. 1
0
 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;
     }
 }
Esempio n. 2
0
 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();
 }
Esempio n. 3
0
 /**
  * @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']);
     }
 }
Esempio n. 4
0
 public function upd()
 {
     $is_page = false;
     if (file_exists(MODUL_DIR . '/constructor/template/class.tpl')) {
         include MODUL_DIR . '/constructor/template/class.tpl';
     }
     if (system::action() == "upd") {
         // форма обновления информации
         $class = new ormClass(system::url(2));
         if ($class->id() == '') {
             system::redirect('/constructor/tree');
         }
         page::assign('obj.class_name', $class->getName());
         page::assign('obj.sname', $class->getSName());
         page::assign('obj.text', $class->getPadej());
         page::assign('obj.id', $class->id());
         $system = $class->isSystem();
         $is_list = $class->isList();
         $is_page = $class->isPage();
         $is_user = $class->isInheritor('user');
         $base_class = $class->getBaseClass();
         page::assign('right', 'class_proc_upd');
         // Выводим дерево для отображения структуры класса
         $tree = new ormFieldsTree();
         page::assign('fields', $tree->getHTML($class));
     } else {
         if (system::action() == "add") {
             // форма добавления информации
             $system = $is_list = $uniqum = $base_class = 0;
             // Проверяем существует ли родитель?
             if (system::issetUrl(2)) {
                 $parent = new ormClass(system::url(2));
                 if ($parent->id() == '') {
                     system::redirect('/constructor/tree');
                 }
                 $is_list = $parent->isList();
                 $is_page = $parent->isPage();
                 $is_user = $parent->isInheritor('user');
             } else {
                 $is_user = false;
             }
             page::assign('obj.id', system::url(2));
             page::assign('right', 'class_proc_add');
         }
     }
     if ($is_page) {
         ui::SelectBox('class_list', ormClasses::getPagesClassList(), $base_class, 400, ' ');
         ui::SelectBox('template_list1', templates::getByDestination(0, true), isset($class) ? $class->getDefTemplate(0) : 0, 400, ' ');
         ui::SelectBox('template_list2', templates::getByDestination(1, true), isset($class) ? $class->getDefTemplate(1) : 0, 400, ' ');
         page::fParse('page_fields', $TEMPLATE['page_fields']);
     } else {
         if ($is_user) {
             page::fParse('page_fields', $TEMPLATE['user_fields']);
         } else {
             page::assign('page_fields', '');
         }
     }
     if (system::action() == "add" || !$class->isSystem()) {
         ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');");
         ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');");
         ui::setCancelButton('/constructor');
     } else {
         ui::setBackButton('/constructor');
     }
     page::assignArray(lang::get('CONSTR_FORM_FIELD'));
     page::assignSavingPost();
     ui::CheckBox('system', 1, $system, lang::get('CONSTR_FORM_FIELD', 3));
     ui::CheckBox('is_list', 1, $is_list, lang::get('CONSTR_FORM_FIELD', 4));
     return page::parse($TEMPLATE['frame'], 1);
 }