Example #1
0
 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;
         }
     }
 }
Example #2
0
 /**
  * @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;
 }
Example #3
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;
         }
     }
 }