Пример #1
0
 /**
  * @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;
         }
     }
 }