/** * @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; } } }