/** * Генерация карты XML. */ function sitemap_outXML() { A::$CACHE->page = null; require_once "modules/sitemap/sitemap.php"; $checkeds = getTextOption(getSectionByModule('sitemap'), 'sections'); $checkeds = !empty($checkeds) ? unserialize($checkeds) : array(); A::$DB->query("SELECT * FROM " . DOMAIN . "_sections WHERE lang='" . LANG . "' OR lang='all' ORDER BY sort"); while ($row = A::$DB->fetchRow()) { if (in_array($row['id'], $checkeds)) { if (function_exists($row['module'] . '_createMap')) { $section = DOMAIN . "_" . $row['lang'] . "_" . $row['name']; if ($caption = !empty($row['caption_' . LANG]) ? $row['caption_' . LANG] : $row['caption']) { call_user_func($row['module'] . "_createMap", A::$MAINFRAME->treemap, $section, $caption); } } } } A::$DB->free(); require_once 'XML/Serializer.php'; $options = array(XML_SERIALIZER_OPTION_XML_DECL_ENABLED => true, XML_SERIALIZER_OPTION_XML_ENCODING => "utf-8", XML_SERIALIZER_OPTION_INDENT => "\t", XML_SERIALIZER_OPTION_LINEBREAKS => "\n", XML_SERIALIZER_OPTION_ROOT_NAME => 'urlset', XML_SERIALIZER_OPTION_ROOT_ATTRIBS => array('xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9'), XML_SERIALIZER_OPTION_DEFAULT_TAG => 'url'); $serializer = new XML_Serializer($options); $data = array(); sitemap_itemXML(A::$MAINFRAME->treemap, $data); $serializer->serialize($data); header("Content-type: text/xml; charset=utf-8"); die($serializer->getSerializedData()); }
function getEditForm() { $form = new A_Form("plugin_courier_edit.tpl"); $form->data = A::$DB->getRowById($_POST['id'], STRUCTURE); $form->data['data'] = !empty($form->data['data']) ? unserialize($form->data['data']) : array(); $form->data['data'] = array_pad($form->data['data'], 6, array()); if ($section = getSectionByModule('shoplite')) { $form->data['valute'] = getOption($section, 'valute'); } $this->RESULT['html'] = $form->getContent(); }
function createData() { if ($section = getSectionByModule('shoplite')) { $this->Assign("valute", getOption($section, 'valute')); } $this->Assign('shopassoc', !empty($section)); $items = array(); A::$DB->query("SELECT * FROM " . STRUCTURE . " ORDER BY sort"); while ($row = A::$DB->fetchRow()) { $items[] = $row; } $this->Assign("items", $items); }
/** * Обработчик события "Создание раздела". * * @param string $section Полный строковой идентификатор раздела. * @param array $params Параметры события. */ function archive_createSection($section, $params) { if ($params['module'] == 'archive') { $ids = A::$DB->getCol("\r\r\n SELECT id FROM " . getDomain($section) . "_sections\r\r\n\tWHERE module='catalog' AND (lang='" . A::$LANG . "' OR lang='all')"); setOption($section, 'sections', serialize($ids)); } elseif ($params['module'] == 'catalog') { if ($archive = getSectionByModule('archive')) { $ids = getOption($archive, 'sections'); $ids = !empty($ids) ? unserialize($ids) : array(); $ids[] = $params['id']; setOption($archive, 'sections', serialize($ids)); } } }
/** * Формирование данных доступных в шаблоне страницы "мои заказы". */ function MyOrdersPage() { if (!A::$AUTH->isLogin()) { A::goUrl(getSectionLink(SECTION)); } $orders = array(); $pager = new A_Pager(20); $pager->tab = "orders"; $pager->query("SELECT * FROM " . SECTION . "_orders WHERE iduser=? ORDER BY date DESC", A::$AUTH->id); while ($row = $pager->fetchRow()) { if ($section = getSectionByModule('robopay')) { $row['paylink'] = getSectionLink($section) . "?action=pay&code=" . md5($section . $row['date']); } $row['pay'] = function_exists('pay_getname') ? pay_getname($row['pay']) : "Наличные"; $row['basket'] = !empty($row['basket']) ? unserialize($row['basket']) : array(); $row['sum'] = round($row['sum'], 2); $orders[] = $row; } $pager->free(); $this->Assign("orders", $orders); $this->Assign("orders_pager", $pager); $this->AddNavigation(SECTION_NAME, getSectionLink(SECTION)); }
function cfields_ShowBlock($block, $data) { if ($block == 'shoplite_filters') { $section = MODULE == 'shoplite' ? SECTION : getSectionByModule('shoplite'); $idcat = MODULE == 'shoplite' ? A::$MAINFRAME->idcat : 0; $fields = getFields($section); $_fields = cfields_getfields($idcat, $section); $filters = $data['object']->get_template_vars('filters'); foreach ($filters as $i => $filter) { if (isset($fields[$filter['field']]) && !isset($_fields[$filter['field']])) { unset($filters[$i]); } } $data['object']->Assign("filters", array_values($filters)); } }
/** * Обработчик действия: Отдает форму редактирования страницы. */ function getEditPageForm() { $form = new A_Form("module_pages_editpage.tpl"); $form->data = A::$DB->getRowById($_POST['id'], SECTION); $form->data['usemap'] = getSectionByModule('sitemap'); $form->fieldseditor_editprepare(); $this->RESULT['html'] = $form->getContent(); }
function Import() { require_once "Structures/DataGrid.php"; require_once "Structures/DataGrid/DataSource/Excel.php"; require_once "Structures/DataGrid/DataSource/CSV.php"; require_once 'Image/Transform.php'; A::$REGFILES = getSectionByModule('pages'); mk_dir("files/" . DOMAIN . "/tmp"); clearDir("files/" . DOMAIN . "/tmp"); if (isset($_FILES['file']['tmp_name']) && file_exists($_FILES['file']['tmp_name'])) { $path_parts = pathinfo($_FILES['file']['name']); $ext = preg_replace("/[^a-z0-9]+/i", "", mb_strtolower($path_parts['extension'])); if ($ext == 'xls' || $ext == 'csv') { if ($ext == 'csv') { $sourcefile = $_FILES['file']['tmp_name']; $content = @file_get_contents($sourcefile); if ($content && !mb_check_encoding($content, 'UTF-8')) { file_put_contents($sourcefile, mb_convert_encoding($content, 'UTF-8', 'Windows-1251')); } } else { $sourcefile = $_FILES['file']['tmp_name']; } if ($ext == 'xls') { $datasource = new Structures_DataGrid_DataSource_Excel(); $datasource->bind($sourcefile); } elseif ($ext == 'csv') { $datasource = new Structures_DataGrid_DataSource_CSV(); $datasource->bind($sourcefile, array('delimiter' => ';', 'enclosure' => '"')); } else { return false; } $datagrid = new Structures_DataGrid(); $datagrid->bindDataSource($datasource); if (isset($_REQUEST['clear'])) { A::$DB->execute("TRUNCATE " . STRUCTURE); } $sort = A::$DB->getOne("SELECT MAX(sort) FROM " . STRUCTURE) + 1; $list = array(); foreach ($datagrid->recordSet as $row) { if (empty($row)) { continue; } if ($ext == 'xls') { $trow = array(); foreach ($row as $j => $value) { if (!empty($value)) { $trow[$j - 1] = $value; } } $row = $trow; } $data = array(); if (!empty($row[0])) { $data['name_' . LANG] = trim($row[0]); } else { continue; } $j = 1; A::$DB->query("SELECT * FROM " . DOMAIN . "_fields WHERE item='" . STRUCTURE . "' ORDER BY sort"); while ($frow = A::$DB->fetchRow()) { switch ($frow['type']) { default: $data[$frow['field']] = !empty($row[$j]) ? trim($row[$j]) : ""; break; case 'int': $data[$frow['field']] = !empty($row[$j]) ? (int) $row[$j] : 0; break; case 'float': $data[$frow['field']] = !empty($row[$j]) ? (double) $row[$j] : 0; break; case 'select': if (!empty($row[$j])) { if (!isset($list[$frow['property']])) { $list[$frow['property']] = loadList($frow['property']); } $row[$j] = trim($row[$j]); $key = array_search($row[$j], $list[$frow['property']]); if (empty($key) && !empty($row[$j])) { $key = addToList($frow['property'], $row[$j]); $list[$frow['property']][$key] = $row[$j]; } if (!empty($key)) { $data[$frow['field']] = $key; } } break; case 'mselect': if (!empty($row[$j])) { if (!isset($list[$frow['property']])) { $list[$frow['property']] = loadList($frow['property']); } $row[$j] = explode(',', $row[$j]); $data[$frow['field']] = array(); foreach ($row[$j] as $value) { $value = trim($value); $key = array_search($value, $list[$frow['property']]); if (empty($key) && !empty($value)) { $key = addToList($frow['idvar'], $value); $list[$frow['property']][$key] = $value; } if (!empty($key)) { $data[$frow['field']][] = sprintf("%04d", $key); } } $data[$frow['field']] = implode(",", $data[$frow['field']]); } break; case 'bool': $data[$frow['field']] = !empty($row[$j]) && $row[$j] != 'N' ? "Y" : "N"; break; case 'image': $row[$j] = preg_replace("/[^a-zA-Zа-яА-Я0-9-_.]/iu", "", $row[$j]); if (is_file($path = "ifiles/" . $row[$j])) { $data[$frow['field']] = RegisterImage($path, $data['name_' . LANG]); } break; case 'file': $row[$j] = preg_replace("/[^a-zA-Zа-яА-Я0-9-_.]/iu", "", $row[$j]); if (is_file($path = "ifiles/" . $row[$j])) { $data[$frow['field']] = RegisterFile($path, $data['name_' . LANG]); } break; } $j++; } A::$DB->free(); $data['sort'] = $sort++; A::$DB->Insert(STRUCTURE, $data); } return true; } } return false; }
function fcategory_dataset_prepare($dataset) { if ($structure = getStructureByPlugin('fcategory')) { A::$DB->query("SELECT * FROM {$structure} WHERE idsec=" . SECTION_ID . " ORDER BY sort"); while ($row = A::$DB->fetchRow()) { switch ($row['type']) { case "int": $_REQUEST[$row['field']] = isset($_REQUEST[$row['field']]) ? (int) $_REQUEST[$row['field']] : 0; $dataset->fields[] = $row['field']; break; case "select": $_REQUEST[$row['field']] = isset($_REQUEST[$row['field']]) ? (int) $_REQUEST[$row['field']] : 0; $options = loadList($row['property']); if (!isset($options[$_REQUEST[$row['field']]]) && !empty($_REQUEST[$row['field'] . "_txt"])) { if ($string = trim($_REQUEST[$row['field'] . "_txt"])) { if ($plugin = getPluginByStructure($row['property'])) { if (function_exists("{$plugin}_add")) { $_REQUEST[$row['field']] = call_user_func("{$plugin}_add", $row['property'], $string); } } } } $dataset->fields[] = $row['field']; break; case "mselect": if (!empty($_REQUEST[$row['field']]) && is_array($_REQUEST[$row['field']])) { $values = array(); foreach ($_REQUEST[$row['field']] as $sid) { $values[] = sprintf("%04d", (int) $sid); } $_REQUEST[$row['field']] = implode(",", $values); } else { $_REQUEST[$row['field']] = ""; } $dataset->fields[] = $row['field']; break; case "float": $_REQUEST[$row['field']] = isset($_REQUEST[$row['field']]) ? (double) $_REQUEST[$row['field']] : 0; $dataset->fields[] = $row['field']; break; case "bool": $_REQUEST[$row['field']] = isset($_REQUEST[$row['field']]) ? "Y" : "N"; $dataset->fields[] = $row['field']; break; case "date": $_REQUEST[$row['field']] = isset($_REQUEST[$row['field']]) ? (int) $_REQUEST[$row['field']] : mktime(0, 0, 0, (int) $_REQUEST[$row['field'] . 'Month'], (int) $_REQUEST[$row['field'] . 'Day'], (int) $_REQUEST[$row['field'] . 'Year']); $dataset->fields[] = $row['field']; break; case "string": case "text": case "format": $_REQUEST[$row['field']] = isset($_REQUEST[$row['field']]) ? trim($_REQUEST[$row['field']]) : ""; $dataset->fields[] = $row['field']; break; case "image": if (empty(A::$REGFILES)) { A::$REGFILES = getSectionByModule('pages'); } if (empty($dataset->data) || empty($_REQUEST['parent_id'])) { $_REQUEST[$row['field']] = UploadImage($row['field'], !empty($_REQUEST['name']) ? $_REQUEST['name'] : ""); } else { $_REQUEST[$row['field']] = UploadImage($row['field'], !empty($_REQUEST['name']) ? $_REQUEST['name'] : "", $dataset->data[$row['field']]); if (isset($_REQUEST[$row['field'] . '_del'])) { DelRegImage($dataset->data[$row['field']]); $_REQUEST[$row['field']] = 0; } } $dataset->fields[] = $row['field']; break; case "file": if (empty(A::$REGFILES)) { A::$REGFILES = getSectionByModule('pages'); } if (empty($dataset->data) || empty($_REQUEST['parent_id'])) { $_REQUEST[$row['field']] = UploadFile($row['field'], !empty($_REQUEST['name']) ? $_REQUEST['name'] : ""); } else { $_REQUEST[$row['field']] = UploadFile($row['field'], !empty($_REQUEST['name']) ? $_REQUEST['name'] : "", $dataset->data[$row['field']]); if (isset($_REQUEST[$row['field'] . '_del'])) { DelRegFile($dataset->data[$row['field']]); $_REQUEST[$row['field']] = 0; } } $dataset->fields[] = $row['field']; break; } } A::$DB->free(); } }