Example #1
0
/**
 * Генерация карты 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());
}
Example #2
0
 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();
 }
Example #3
0
 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);
 }
Example #4
0
/**
 * Обработчик события "Создание раздела".
 *
 * @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));
        }
    }
}
Example #5
0
 /**
  * Формирование данных доступных в шаблоне страницы "мои заказы".
  */
 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));
 }
Example #6
0
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));
    }
}
Example #7
0
 /**
  * Обработчик действия: Отдает форму редактирования страницы.
  */
 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();
 }
Example #8
0
 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;
 }
Example #9
0
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();
    }
}