コード例 #1
0
ファイル: __separator.php プロジェクト: sunfun/Bagira.CMS
 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();
 }
コード例 #2
0
ファイル: ormClass.php プロジェクト: sunfun/Bagira.CMS
 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;
     }
 }
コード例 #3
0
ファイル: ormFieldsTree.php プロジェクト: sunfun/Bagira.CMS
 /**
  * @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;
 }
コード例 #4
0
ファイル: __field.php プロジェクト: sunfun/Bagira.CMS
 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();
 }
コード例 #5
0
ファイル: ui.php プロジェクト: sunfun/Bagira.CMS
 /**
  * @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;
         }
     }
 }