示例#1
0
 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;
     }
 }
示例#2
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;
         }
     }
 }