Несколько вопросов новичка!

#
Несколько вопросов новичка!
Начал разбираться с вашей системой и конечно же появились вопросы =)
1 - Очень часто в примерах используются глобальные переменные, но что то я так и не нашел полный список массива $GLOBALS в документации (причина конечноже моя невнимательность, но все же прошу помощи =) )

2 - начал ставить себе задачи, одна из них выводить на главной странице рэндомный список товаров из интернет магазина.

    <?php
         if (class_exists('shop')
         {
            $shop = & singleton('shop';

            $element['type'] = 0; // 0 - основное св-во, 1 - дополнительное
            $element['name'] = 'shop_item_discount_table.shop_items_catalog_item_id';
            $element['prefix'] = 'and'; // префикс
            $element['if'] = '='; // Условие
            $element['value'] = 'shop_items_catalog_table.shop_items_catalog_item_id';  //
            $element['sufix'] = '';

            $param = array();
            //$param['select'][] = $element;
            $param['current_group_id'] = false;
            $param['items_on_page'] = 9;
            $param['items_order'] = 'rand';
                                $param['xml_show_tying_products'] = false;
                                $param['xml_show_modification'] = false;

            $shop->ShowShop(1,'МагазГлавная',$param,$external_propertys);
         }
         ?>
Вроде бы все просто, но в результате получаем довольно большой XML файл, хочется его минимизировать, например убрать тэги, группы товаров, продавцов и тд и тп, вообщем сделать все возможные и не возможные вещи для того что бы XML дерево было не большим!!!

Так же не очень понял как работают условия в функции ShowShop
возьмем для примера код который был откопан в недрах форума =)
$elements['type'] = 0; // выбираем основное свойство
$elements['prefix'] = ' and ('; // на что влияет префикс ?
$elements['name'] = 'shop_items_catalog_table.shop_groups_id';  // что за названия ?? откуда берутся??
$elements['if'] = ' IN (' . implode(',', $in) . ' '; // вроде понятно что тут должно быть условие (=,!=,<,>
$elements['value'] = ''; // что должно быть здесь?
$elements['sufix'] = '';

// выдержка из доков
$element['type'] определяет, является ли поле основным свойством товара или дополнительным (0 - основное, 1 - дополнительное)
$element['prefix'] префикс - строка, размещаемая перед условием
$element['name'] имя поля для основного свойства, если свойство дополнительное, то не указывается
$element['property_id'] идентификатор дополнительногого свойства
$element['if'] строка, содержащая условный оператор
$elemenr['value'] значение поля (или параметра)
$element['sufix'] суффикс - строка, размещаемая после условия

Вообщем что то мне логика фильтров вообще не понятна, не могли бы вы мне более детально объяснить , а лучше на какомнибудь примере!!!

Заранее благодарю за ответы!!!
#
Re: Несколько вопросов новичка!
1. print_r($GLOBALS);
2. если фильтры никакие не нужны, $element не нужен

останется
<?php
$shop= & singleton('shop');
$param = array();
$param['items_order'] = 'rand';
$param['current_group_id'] = false;
$param['items_begin'] = 0;
$param['items_on_page'] = 10;

$param['xml_show_group_type'] = 'none';
$param['xml_show_item_property'] = false;

$shop->ShowShop(1, 'МагазинКаталогТоваров',  $param);
?>

Последние 2 параметра убирают группы и доп. св-ва товаров из xml
#
Re: Несколько вопросов новичка!
1 - =)) Спасисиб чето я затупил =)

2 - Не =)) ТО что вы написали это все понятно =)) Был вопрос про то чтобы минимизировать еще какнибудь XML документ на выходе + также был вопрос про фильтры так как вообще их работа не особо понятна (если можно на какомнибудь примере!!)
#
Re: Несколько вопросов новичка!
так там и так остается информация о магазине да эти N товаров...в XML, куда меньше)

а фильтры формируют sql запрос, что за запрос получается можно посмотреть через "адрес?show_sql" (включив константу allow show sql)

$elements['name'] = это имя поля в mysql

а примеры фильтров есть в api.. http://hostcms.ru/api/HostCMS_5/shop.html - ShowShop
ну например

$element = array();
$element['type']=1;
$element['prefix'] = 'and';
$element['property_id'] = 8;
$element['if'] = '=';
$element['value'] = '160';
$element['sufix'] = '';
$param['select'][]=$element;

- выбираем только элементы у которых Доп. свойство с ID равным 8 равно 160
#
Re: Re: Несколько вопросов новичка!
Ну там остается инфа о тегах, и еще куча ненужных вещей =)) (Просто такое придирчивое отношение к тому что на выходе я получил от другой CMS =) )

=) Спасиб за развернутый ответ =)
А для чего служат $element['prefix'] = 'and'; $element['sufix'] = '';
Модератор
#
Re: Несколько вопросов новичка!
noname.812 писал(а):
Ну там остается инфа о тегах, и еще куча ненужных вещей =)) (Просто такое придирчивое отношение к тому что на выходе я получил от другой CMS =))

Информация остается в XML, который по определению избыточен, а то, что Вам нужно выбрать Вы указываете в XSL-шаблоне, который обрабатывает этот XML.

noname.812 писал(а):
А для чего служат $element['prefix'] = 'and'; $element['sufix'] = '';

Соответственно это то, что предшествует Вашему запросы и закрывает его, в зависимости от сложности запроса в конструкторе могут принимать различные значения.
#
Re: Несколько вопросов новичка!
Понятно что с помощью бреобразование отсекается лишнее, просто зачем перенапрегать шаблонизатор и полхоть по такому большому дереву, когда можно уменьшить ему работу!!!

Вобщем всем спасибо за такую быструю помощь =) Будем копать дальше =0)
Модератор
#
Re: Несколько вопросов новичка!
noname.812 писал(а):
Понятно что с помощью бреобразование отсекается лишнее, просто зачем перенапрегать шаблонизатор и полхоть по такому большому дереву, когда можно уменьшить ему работу!!!

Шаблонизатор без проблем с этим справляется, тем более дерево там совсем не большое.

Если Вы хотите - можете писать собственные методы, которые генерируют нужный XML и обрабатывать это все XSL-ом, примеры обработки есть в API.

noname.812 писал(а):
Вобщем всем спасибо за такую быструю помощь =) Будем копать дальше =0)

Пожалуйста
Авторизация