static function getMailHTML($release_id) { if ($release = ormObjects::get($release_id)) { if ($release->isInheritor('subscribe_msg')) { $subscribe = $release->getParent(); page::$macros = 1; $mail = ''; if (file_exists(TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl')) { include TEMPL_DIR . '/subscription/mails/' . $subscribe->template . '.tpl'; page::assign('domain_name', domains::curDomain()->getName()); page::assign('site_name', domains::curDomain()->getSiteName()); page::assign('base_email', domains::curDomain()->getEmail()); page::assign('subscribe.id', $subscribe->id); page::assign('release.id', $release->id); page::assign('release.name', $release->name); page::assign('release.message', $release->message); $sel = new ormSelect(); $sel->depends($release->id, 1462); $num = 0; $list = ''; while ($obj = $sel->getObject()) { $num++; page::assign('obj.num', $num); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == $sel->getObjectCount() ? 'last' : ''); page::assign('class-odd', $num % 2 == 0 ? 'odd' : ''); page::assign('class-even', $num % 2 != 0 ? 'even' : ''); page::assign('class-third', $num % 3 == 0 ? 'third' : ''); page::assign('obj.id', $obj->id); page::assign('obj.url', $obj->url); $obj->parseAllFields(); $list .= page::parse($TEMPLATE['list']); } page::assign('list', $list); if (!empty($list)) { page::fParse('list', $TEMPLATE['frame_list']); } $mail = page::parse($TEMPLATE['frame']); } return $mail; } } }
/** * @return HTML * @param string $field_name - Системное имя поля для которого будет выводится список значений справочника * @param int $obj_id - ID объекта для которого формируется список * @param string $templ_name - Шаблон оформления списка, структура шаблона аналогична структуре макроса %structure.objList()% * @desc МАКРОС: Выводит список значений справочника, соотвествующих указанному объекту */ public function getPropertyList($field_name, $obj_id, $templ_name = 'default') { $list = ''; // подгружаем файл шаблона $templ_file = '/structure/objects/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('structure.getPropertyList', $templ_file); } if ($page = ormPages::get($obj_id)) { if ($field = $page->getClass()->getField($field_name)) { if ($field->getType() == 95 || $field->getType() == 100) { if ($curClass = ormClasses::get($field->getListId())) { $class_name = $curClass->getSName(); } else { $class_name = ''; } $sel = new ormSelect($class_name); if ($field->getType() == 100 || $curClass->isPage()) { $sel->findInPages(); } $sel->depends($obj_id, $field->id()); $class_list = $sel->getClassesList(); if (empty($class_list)) { $class_list[] = '1'; } //if (!empty($class_list)) { // Узнаем какие поля объектов будут участвовать в выборке $uri = false; $fields_str = ''; $fields = page::getFields('obj', $TEMPLATE, $class_list); if (isset($fields['obj'])) { while (list($key, $val) = each($fields['obj'])) { if ($val != 'url' && $val != 'class' && $val != 'num') { $fields_str .= empty($fields_str) ? $val : ', ' . $val; } } } $sel->fields($fields_str); // echo $fields_str; // Перебираем объекты while ($obj = $sel->getObject()) { // Парсим поля страницы if (isset($fields['obj_all'])) { reset($fields['obj_all']); while (list($num, $name) = each($fields['obj_all'])) { page::assign('obj.' . $name, $obj->__get($name)); } } $num = $sel->getObjectNum() + 1; if ($field->getType() == 100 || $curClass->isPage()) { $target = $obj->in_new_window ? ' target="_blank"' : ''; page::assign('obj.target', $target); page::assign('obj.url', $obj->_url); } page::assign('obj.num', $num); page::assign('obj.class', $class_name); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == $sel->getObjectCount() ? 'last' : ''); page::assign('class-odd', $num % 2 == 0 ? 'odd' : ''); page::assign('class-even', $num % 2 != 0 ? 'even' : ''); page::assign('class-third', $num % 3 == 0 ? 'third' : ''); if ($num === 1) { page::assign('first_children_id', $obj->id); } page::assign('last_children_id', $obj->id); if (isset($TEMPLATE['list_' . $class_name])) { $templ = 'list_' . $class_name; } else { if (isset($TEMPLATE['list'])) { $templ = 'list'; } else { $templ = ''; } } $act = ''; //(isset($TEMPLATE[$templ.'_active']) && $obj->id == $act) ? '_active' : ''; if (isset($TEMPLATE[$templ . $act])) { if ($num > 1 && isset($TEMPLATE['separator'])) { $list .= $TEMPLATE['separator']; } $list .= page::parse($TEMPLATE[$templ . $act]); } } //} if (!empty($list)) { page::assign('list', $list); $list = page::parse($TEMPLATE['frame_list']); } else { if (isset($TEMPLATE['empty'])) { $list = page::parse($TEMPLATE['empty']); } } } else { return page::error('structure.getPropertyList', $field_name, lang::get('ERROR_BAD_TYPE')); } } else { return page::error('structure.getPropertyList', $field_name, lang::get('ERROR_NOTFOUND_FIELD')); } } return $list; }
/** * @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; } } }