function view() { // Устанавливаем кнопки для формы ui::setCancelButton('/eshop/list'); ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');"); ui::newButton(lang::get('BTN_APPLY'), "javascript:sendForm('apply');"); if (file_exists(MODUL_DIR . '/eshop/template/order.tpl')) { include MODUL_DIR . '/eshop/template/order.tpl'; } if (!($obj = ormObjects::get(system::url(2), 'eshop_order'))) { system::redirect('/eshop/list'); } $order = new eShopOrder($obj); // Вывод информации о товарах function getGoodsName($val, $obj) { if ($obj = ormPages::get($val, 'goods')) { return '<a href="' . $obj->url . '" target="_blank">' . $obj->name . '</a>'; } } function getPrice($val, $obj) { return ' ' . $obj->cost * $obj->count . ' руб.'; } $sel = new ormSelect('eshop_goods'); $sel->where('parents', '=', $obj->id); $table = new ormMultiForm('goods'); $table->setData($sel); $table->insideForm(); $table->addColumn('goods_id', 0, 400, 0, false, 'getGoodsName'); $table->addColumn('cost', 0, 100, 0, false); $table->addColumn('count', 0, 100); $table->addColumn('id', 'Общая стоимость', 100, 0, false, 'getPrice'); $table->withoutAdditions(); page::assign('goods_list', $table->getHTML()); page::assign('order.number', $order->getNumber()); page::assign('order.cost', $order->getCost()); page::assign('order.cost_all', $order->getTotalCost()); page::assign('order.delivery_price', $order->getDeliveryPrice()); page::assign('order.delivery', $order->_delivery); $obj->parseAllFields(); page::assign('obj.id', $order->id); page::assign('obj.date', date('d.m.Y в H:i', strtotime($obj->date))); page::assign('user_link', '/mpanel/users/user_upd/' . $order->getUserId()); ui::SelectBox('state', ormObjects::getObjectsByClass('eshop_status'), $obj->state, 200); ui::CheckBox('is_payment', 1, $obj->is_payment, 'Оплачено'); // Создаем форму и выводим ее на страницу // $form = new ormEditForm($obj, $right); //return $form->getHTML(); return page::parse($TEMPLATE['frame']); }
public function defAction() { if (file_exists(MODUL_DIR . '/eshop/template/settings.tpl')) { include MODUL_DIR . '/eshop/template/settings.tpl'; } ui::newButton(lang::get('BTN_SAVE_ONLY'), "javascript:sendForm('save');"); page::assignArray(lang::get('ESHOP_TEXT_SETTINGS')); ui::SelectBox('fisrt_state', ormObjects::getObjectsByClass('eshop_status'), reg::getKey('/eshop/fisrt_state')); ui::CheckBox('only_reg', 1, reg::getKey('/eshop/only_reg'), lang::get('ESHOP_TEXT_SETTINGS', 1)); ui::CheckBox('check_count', 1, reg::getKey('/eshop/check_count'), lang::get('ESHOP_TEXT_SETTINGS', 2)); ui::CheckBox('dubl_to_email', 1, reg::getKey('/eshop/dubl_to_email'), lang::get('ESHOP_TEXT_SETTINGS', 3)); //page::assign('nds', reg::getKey('/eshop/nds')); page::assign('min_count', reg::getKey('/eshop/min_count')); return page::parse($TEMPLATE['frame']); }
public function getHTML($templ_name = 'filters') { if ($this->getCount() > 0 && file_exists(MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl')) { include MODUL_DIR . '/mpanel/template/' . $templ_name . '.tpl'; $items = ''; $num = 0; // Строим список фильтров reset($this->filters); while (list($key, $field) = each($this->filters)) { $num++; if (isset($this->new_filters[$num])) { if ($this->new_filters[$num][2]) { page::assign('field.name', $this->new_filters[$num][0]); page::assign('field.content', $this->new_filters[$num][1]); $items .= page::parse($TEMPLATE['field_spec']); } else { $items .= $this->new_filters[$num][1]; } } if (!isset($_SESSION['filters_' . $this->prefix][$field['f_sname']])) { $_SESSION['filters_' . $this->prefix][$field['f_sname']] = ''; } if (isset($this->show_filters[$field['f_sname']]) && !empty($this->show_filters[$field['f_sname']][0])) { $field['f_name'] = $this->show_filters[$field['f_sname']][0]; } page::assign('field.name', $field['f_name']); if ($field['f_type'] == 50 || $field['f_type'] > 69 && $field['f_type'] < 96) { // Выпадающий список $data = array(); if ($field['f_type'] == 50) { $data = lang::get('FILTER_BOOL'); } else { if ($field['f_type'] > 69 && $field['f_type'] < 86) { $data = lang::get('FILTER_ISSET'); } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { $data = ormObjects::getObjectsByClass($field['f_list_id']); } } } $element = ui::SelectBox($field['f_sname'], $data, $_SESSION['filters_' . $this->prefix][$field['f_sname']], 172, ' ', '', 'selectbox_mini'); page::assign('element', $element); $items .= page::parse($TEMPLATE['field_select']); } else { if (isset($this->show_filters[$field['f_sname']]) && $this->show_filters[$field['f_sname']][1] || ($field['f_type'] == 25 || $field['f_type'] == 30 || $field['f_type'] == 32) && (!isset($this->show_filters[$field['f_sname']]) || $this->show_filters[$field['f_sname']][1] !== false)) { // Выбор промежутка для чисел или дат if (!isset($_SESSION['filters_' . $this->prefix][$field['f_sname'] . '_2'])) { $_SESSION['filters_' . $this->prefix][$field['f_sname'] . '_2'] = ''; } page::assign('field.sname', $field['f_sname']); page::assign('field.value', $_SESSION['filters_' . $this->prefix][$field['f_sname']]); page::assign('field.value2', $_SESSION['filters_' . $this->prefix][$field['f_sname'] . '_2']); $items .= page::parse($TEMPLATE['field_period']); } else { // Обычный фильтр - текстовое поле page::assign('field.sname', $field['f_sname']); page::assign('field.value', $_SESSION['filters_' . $this->prefix][$field['f_sname']]); $items .= page::parse($TEMPLATE['field']); } } } $all_count = $num + count($this->new_filters); while ($num < $all_count) { $num++; if (isset($this->new_filters[$num])) { if ($this->new_filters[$num][2]) { page::assign('field.name', $this->new_filters[$num][0]); page::assign('field.content', $this->new_filters[$num][1]); $items .= page::parse($TEMPLATE['field_spec']); } else { $items .= $this->new_filters[$num][1]; } } } page::assign('fields', $items); return page::parse($TEMPLATE['frame']); } }
private function parseField($obj, $field, $TEMPLATE, $current_id) { $is_upd = $obj->id == '' ? false : true; $is_editable = !isset($field['editable']) || $field['editable']; $width = empty($field['width']) ? $this->width : $field['width']; page::assign('width', $width); if (isset($_SESSION['SAVING_POST']['obj' . $this->form_name]) && ($field['f_type'] < 70 || $field['f_type'] > 85)) { $tmp = $_SESSION['SAVING_POST']['obj' . $this->form_name]; if (isset($tmp[$current_id][$field['f_sname']])) { $value = $tmp[$current_id][$field['f_sname']]; } } else { $value = ''; } if (empty($value)) { if ($field['f_type'] == 105) { $value = $obj->__get('_' . $field['f_sname']); } else { $value = $obj->__get($field['f_sname']); } $function = !empty($field['funct_name']) ? $field['funct_name'] : ''; if (!$is_editable) { $value = parent::processValue($obj, $field['f_sname'], $field['f_type'], $value, $function); } } if ($is_editable) { page::assign('field.id', $field['f_id']); page::assign('field.name', $field['f_name']); page::assign('field.sname', $field['f_sname']); page::assign('field.value', $value); $obj_id = $field['f_sname'] . '_' . $current_id; $elem_name = 'obj' . $this->form_name . '[' . $current_id . '][' . $field['f_sname'] . ']'; // Специальная обработка данных if ($field['f_type'] == 50) { page::assign('element', ui::CheckBox($elem_name, 1, $value, '', '', $obj_id)); } else { if ($field['f_type'] == 32) { if (empty($value) || $value == '0000-00-00 00:00:00') { page::assign('field.date', ''); page::assign('field.time', '00:00'); } else { page::assign('field.date', date('d.m.Y', strtotime($value))); page::assign('field.time', date('H:i', strtotime($value))); } } else { if ($field['f_type'] == 25) { $time = empty($value) || $value == '0000-00-00' ? '' : date('d.m.Y', strtotime($value)); page::assign('field.date', $time); } else { if ($field['f_type'] == 30) { $time = empty($value) ? '' : date('H:i:s', strtotime($value)); page::assign('field.time', $time); } else { if ($field['f_type'] > 69 && $field['f_type'] < 86) { // файлы if (system::$isAdmin) { page::assign('element', ui::loadFile($elem_name, $value, 'load_file_mini', $obj_id)); } else { page::fParse('element', ''); } } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { // Выпадающий список или Список со множественным выбором // Получаем список объектов справочника $data = ormObjects::getObjectsByClass($field['f_list_id']); $multi = $field['f_type'] == 95 ? 'selectbox_multi' : 'selectbox_template'; $empty = !$field['f_required'] ? ' ' : ''; if ($field['f_quick_add']) { $width = $width - 22; } $min = $field['f_type'] == 95 ? 8 : 30; page::assign('width_plu', $width - $min); page::assign('element', ui::SelectBox($elem_name, $data, $value, $width, $empty, '', $multi, $obj_id)); if ($field['f_quick_add']) { page::fParse('plus', $TEMPLATE['field_' . $field['f_type'] . '_plus']); } else { page::assign('plus', ''); } } else { if ($field['f_type'] == 100) { // Связь с объектом page::assign('element', ui::objectLinks($obj, $field['f_id'], '_' . $current_id, $elem_name, $width - 30, 'objectLinks2')); } } } } } } } // Генерируем яву (создаем правила проверки для элементов формы) if ($field['f_required'] && ($field['f_type'] == 35 && $this->action == 'add' || $field['f_type'] != 35)) { $msg = str_replace('%title%', $field['f_name'], lang::get('CONSTR_BASE_FIELD_E2')); $zpt = !empty($this->requred_field) ? ', ' : ''; $empty = $field['f_type'] == 90 || $field['f_type'] == 95 ? 'null' : '""'; if ($field['f_type'] == 100) { $this->requred_field .= $zpt . '["' . $obj_id . '", "' . $current_id . '", "' . $msg . '", ' . $empty . ', 1]'; } else { $this->requred_field .= $zpt . '["' . $obj_id . '", "' . $current_id . '", "' . $msg . '", ' . $empty . ']'; } } if ($field['f_type'] == 15) { $this->java .= page::parse('rules.push("valid_email,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E3') . '");'); } if ($field['f_type'] == 20) { $this->java .= page::parse('rules.push("reg_exp,' . $obj_id . ',^(((f|ht){1}tp:/)*/[-a-zA-Z0-9@:%_\\+.~#?&//=]+)*$|^\\/{1}, ' . lang::get('CONSTR_BASE_FIELD_E4') . '");'); } if ($field['f_type'] == 40) { $this->java .= page::parse('rules.push("digits_only,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E6') . '");'); } if ($field['f_type'] == 45) { $this->java .= page::parse('rules.push("float_only,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E7') . '");'); } if ($field['f_type'] == 47) { $this->java .= page::parse('rules.push("price_only,' . $obj_id . ',' . lang::get('CONSTR_BASE_FIELD_E8') . '");'); } if (isset($TEMPLATE['field_' . $field['f_type']])) { $value = page::parse($TEMPLATE['field_' . $field['f_type']]); } else { $value = str_replace('%title%', $field['f_sname'], lang::get('CONSTR_BASE_FIELD_E5')); } } page::assign('content', $value); return page::parse($TEMPLATE['field_frame']); }
private function parseField($field, $TEMPLATE) { if (in_array($field['f_sname'], $this->read_only)) { $value = $this->obj->__get($field['f_sname']); page::assign('value', $value); if ($field['f_type'] == 90 || $field['f_type'] == 95 || $field['f_type'] == 105) { page::assign('val', $this->obj->__get('_' . $field['f_sname'])); } else { page::assign('val', $value); } $value = page::parse($TEMPLATE['read_only']); page::assign('content', $value); return page::parse($TEMPLATE['field_standart']); } // Определяем значение поля if (isset($_SESSION['SAVING_POST']) && ($field['f_type'] < 70 || $field['f_type'] > 85) && isset($_SESSION['SAVING_POST'][$field['f_sname']])) { $value = $_SESSION['SAVING_POST'][$field['f_sname']]; } else { if ($field['f_type'] == 105) { $value = $this->obj->__get('_' . $field['f_sname']); } else { $value = $this->obj->__get($field['f_sname']); } } page::assign('field.value', $value); // Для страниц, для кнопки "Показать \ скрыть доп. поля" if ($this->obj instanceof ormPage && in_array($field['f_sname'], $this->page_fields)) { $sh_page = isset($_SESSION['SH_FIELDS']) && $_SESSION['SH_FIELDS'] == 'show' ? '' : ' style="display:none;"'; page::assign('sh_page', $sh_page); } else { page::assign('sh_page', ''); } // Специальная обработка данных if ($field['f_type'] == 50) { page::assign('element', ui::CheckBox($field['f_sname'], 1, $value)); } else { if ($field['f_type'] == 32) { if (empty($value) || $value == '0000-00-00 00:00:00') { page::assign('field.date', ''); page::assign('field.time', '00:00'); } else { page::assign('field.date', date('d.m.Y', strtotime($value))); page::assign('field.time', date('H:i', strtotime($value))); } } else { if ($field['f_type'] == 25) { $time = empty($value) || $value == '0000-00-00' ? '' : date('d.m.Y', strtotime($value)); page::assign('field.date', $time); } else { if ($field['f_type'] == 30) { $time = empty($value) ? '' : date('H:i:s', strtotime($value)); page::assign('field.time', $time); } else { if ($field['f_type'] == 70 || $field['f_type'] == 75 || $field['f_type'] == 80 || $field['f_type'] == 85) { if (system::$isAdmin) { page::assign('element', ui::loadFile($field['f_sname'], $value)); } else { page::fParse('element', $TEMPLATE['upload_file_field']); } } else { if ($field['f_type'] == 73) { page::assign('element', ui::listFile($field['f_sname'], $value)); } else { if ($field['f_type'] == 90 || $field['f_type'] == 95) { // Выпадающий список или Список со множественным выбором // Получаем список объектов справочника page::assign('field.sname', $field['f_sname']); $data = ormObjects::getObjectsByClass($field['f_list_id']); $multi = $field['f_type'] == 95 ? 'selectbox_multi' : 'selectbox_template'; $empty = !$field['f_required'] ? ' ' : ''; if (system::$isAdmin) { page::assign('element', ui::SelectBox($field['f_sname'], $data, $value, 400, $empty, '', $multi)); if ($field['f_quick_add']) { page::fParse('plus', $TEMPLATE['field_' . $field['f_type'] . '_plus']); } else { page::assign('plus', ''); } } else { page::assign('element', ui::SelectBox($field['f_sname'], $data, $value, 200, $empty, '', $multi)); } } else { if ($field['f_type'] == 97) { // Подчиненный справочник // Получаем список объектов справочника $sel = new ormSelect($field['f_list_id']); $sel->where('parents', '=', $this->obj->id); // Выводим мультиформу для добавления и редактирования $form = new ormMultiForm('subject_list_' . $field['f_id']); $form->setData($sel); $form->insideForm(); $re = $form->getHTML(); // echo $re; page::assign('element', $re); } else { if ($field['f_type'] == 100) { // Связь с объектом page::assign('element', ui::objectLinks($this->obj, $field['f_id'])); } } } } } } } } } page::assign('field.id', $field['f_id']); page::assign('field.name', $field['f_name']); page::assign('field.hint', $field['f_hint']); page::assign('field.sname', $field['f_sname']); page::fParse('field.dotted', !empty($field['f_hint']) ? 'dotted' : ''); if (empty($field['f_max_size'])) { $field['f_max_size'] = $field['f_type'] == 60 ? 200 : 100; } page::assign('field.max_size', $field['f_max_size']); // Генерируем яву (создаем правила проверки для элементов формы) if ($field['f_required'] && ($field['f_type'] == 35 && $this->obj->id == '' || $field['f_type'] != 35)) { $msg = str_replace('%title%', $field['f_name'], lang::get('CONSTR_BASE_FIELD_E2')); if ($field['f_type'] == 60) { // HTML - редактор $this->addit_function .= page::parse(' function checkValue%field.sname%(){ var value = CKEDITOR.instances["%field.sname%"].getData(); return (value != "") ? true : [[ "cke_%field.sname%", "' . $msg . '" ]]; } '); $this->java .= page::parse('rules.push("function,checkValue%field.sname%");'); } else { if ($field['f_type'] == 100) { // Выбор объекта $this->addit_function .= page::parse(' function checkObjectLinks%field.sname%(){ var count = $("#objectsLinkList_%field.sname% > li").length; return (count > 0) ? true : [[ %field.sname%, "' . $msg . '" ]]; } '); $this->java .= page::parse('rules.push("function,checkObjectLinks%field.sname%");'); } else { if ($field['f_type'] == 32) { // Каледарь и время $this->java .= page::parse('rules.push("required,%field.sname%_date,' . $msg . '");'); } else { $this->java .= page::parse('rules.push("required,%field.sname%,' . $msg . '");'); } } } $zvezd = 'chek'; } else { $zvezd = ''; } page::assign('field.zvezd', $zvezd); if ($field['f_type'] == 15) { $this->java .= page::parse('rules.push("valid_email,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E3') . '");'); } if ($field['f_type'] == 20) { $this->java .= page::parse('rules.push("reg_exp,%field.sname%,^(((f|ht){1}tp:/)*/[-a-zA-Z0-9@:%_\\+.~#?&//=]+)*$|^\\/{1}, ' . lang::get('CONSTR_BASE_FIELD_E4') . '");'); } if ($field['f_type'] == 40) { $this->java .= page::parse('rules.push("digits_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E6') . '");'); } if ($field['f_type'] == 45) { $this->java .= page::parse('rules.push("float_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E7') . '");'); } if ($field['f_type'] == 47) { $this->java .= page::parse('rules.push("price_only,%field.sname%,' . lang::get('CONSTR_BASE_FIELD_E8') . '");'); } if (isset($TEMPLATE['field_' . $field['f_type']])) { return page::parse($TEMPLATE['field_' . $field['f_type']]); } else { return str_replace('%title%', $field['f_sname'], lang::get('CONSTR_BASE_FIELD_E5')); } }
public function addlist() { // Устанавливаем кнопки для формы ui::setCancelButton('/subscription/user/' . system::url(2)); ui::newButton(lang::get('BTN_SAVE'), "javascript:sendForm('save');"); if (file_exists(MODUL_DIR . '/subscription/template/add_userlist.tpl')) { include MODUL_DIR . '/subscription/template/add_userlist.tpl'; } // Добавляем поле "Подписан на рассылку" $html = ui::SelectBox('subscribes', ormObjects::getObjectsByClass('subscription'), system::url(2), 400, '', '', 'selectbox_multi_big'); page::assignArray(lang::get('SUBSCRIBE_TEXT')); page::assign('parent_id', system::url(2)); return page::parse($TEMPLATE['frame']); }
public function filter($section, $templ_name = 'filter_default') { $templ_file = '/structure/objects/' . $templ_name . '.tpl'; $TEMPLATE = page::getTemplate($templ_file); if (!is_array($TEMPLATE)) { return page::errorNotFound('structure.filter', $templ_file); } // Определяем текущий раздел $info = ormPages::getSectionByPath($section); $section_id = $info['section'] instanceof ormPage ? $info['section']->id : 'NULL'; $class_name = !empty($info['class']) ? $info['class'] : ''; // Определяем общий ORM-класс для всех объектов данного раздела. if (empty($class_name) && ($section_id != 'NULL' || is_array($info['section']))) { $sel = new ormSelect(); $sel->findInPages(); if (is_array($info['section'])) { $sel->where('parents', '=', $info['section']); } else { $sel->where('parents', '=', $section_id); } $class_name = $sel->getObjectsClass(); } // Получаем список полей $fields = !empty($class_name) ? ormClasses::get($class_name)->loadFields() : array(); $ind = is_array($info['section']) ? $info['section'] : $section_id; $prefix = md5($class_name . $ind); page::assign('section_id', $section_id); page::assign('class_name', $class_name); page::assign('target', $prefix); // Выводим список фильтров $num = 0; $list = ''; $all_count = count($fields); while (list($fname, $field) = each($fields)) { if ($field['f_filter'] && $field['f_type'] < 100) { $this->checkFilterPost($fname, $field, $prefix); $num++; page::assign('field.num', $num); page::assign('class-first', $num == 1 ? 'first' : ''); page::assign('class-last', $num == $all_count ? '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('field.id', $field['f_id']); page::assign('field.name', $field['f_name']); page::assign('field.sname', $field['f_sname']); $value = isset($_SESSION['filters'][$prefix][$fname]) ? $_SESSION['filters'][$prefix][$fname] : ''; $value2 = isset($_SESSION['filters'][$prefix][$fname . '_2']) ? $_SESSION['filters'][$prefix][$fname . '_2'] : ''; page::assign('field.value', $value); if ($field['f_type'] == 90 || $field['f_type'] == 95) { // Справочники $data = ormObjects::getObjectsByClass($field['f_list_id']); $list_vals = ''; if (isset($TEMPLATE['filter_relation_list_null'])) { page::assign('obj.selected', $value == 0 ? ' selected' : ''); $list_vals .= page::parse($TEMPLATE['filter_relation_list_null']); } while (list($k, $val) = each($data)) { page::assign('obj.id', $val['id']); page::assign('obj.name', $val['name']); page::assign('obj.selected', $value == $val['id'] ? ' selected' : ''); if (!empty($list_vals) && isset($TEMPLATE['filter_relation_separator'])) { $list_vals .= page::parse($TEMPLATE['filter_relation_separator']); } $list_vals .= page::parse($TEMPLATE['filter_relation_list']); } page::assign('list', $list_vals); $filter = page::parse($TEMPLATE['filter_relation']); } else { if ($field['f_type'] == 10 || $field['f_type'] == 15 || $field['f_type'] == 20 || $field['f_type'] == 30) { // Текстовые поля $filter = page::parse($TEMPLATE['filter_text']); } else { if ($field['f_type'] == 25 || $field['f_type'] == 35) { // Дата page::assign('field.value1', $value); page::assign('field.value2', $value2); $filter = page::parse($TEMPLATE['filter_beetwen_date']); } else { if ($field['f_type'] == 40 || $field['f_type'] == 45 || $field['f_type'] == 47) { // Числа и цены page::assign('field.value1', $value); page::assign('field.value2', $value2); $filter = page::parse($TEMPLATE['filter_beetwen_int']); } else { // Все остальные, как логические Есть \ нет page::assign('field.checked', system::checkVar($value, isBool) ? 'checked' : ''); $filter = page::parse($TEMPLATE['filter_boolean']); } } } } page::assign('filter', $filter); if ($num > 1 && isset($TEMPLATE['separator'])) { $list .= page::parse($TEMPLATE['separator']); } $list .= page::parse($TEMPLATE['list']); } } if (!empty($list)) { page::assign('list', $list); return page::parse($TEMPLATE['frame']); } else { return page::parse($TEMPLATE['empty']); } }