что за что отвечает в дополнительных свойствах

#
что за что отвечает в дополнительных свойствах
есть функции для дополнительных свойств возможно не полный набор

$element['type']=1;
$element['prefix'] = 'and';
$element['property_id'] = 26; // ID св-ва
$element['if'] = '=';
$element['value'] = '1';
$element['sufix'] = '';
$param['select'][]=$element;

хотелось бы узнать какие занчения в них ставятся и что они обозначают или можно ссылочку с подробным описание. Конкретно интересует какие значения где ставить в случае если доп свойство флажок, но и полное описание тоже не помешает на будущее
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
Модератор
#
Re: что за что отвечает в дополнительных свойствах
ksusha,
см. API
Если флажок, то хранится 0 для снятого статуса и 1, для включенного.
#
Re: что за что отвечает в дополнительных свойствах
ksusha, то что вы процитировали, обозвав функциями для дополнительных свойств, вообще говоря таковыми не явялются. Вы просто привели цитату стандартного фильтра по допсвойствам из API.

Из всех элементов ассоциативного массива $element, к самому допсвойству имеют отношение только property_id и value. Все же остальные его элементы всего лишь помогают выстроить логику уточняющей части SQL-запроса (WHERE condition), который отбирает записи инфосистемы, удовлетворяющие заданным вами условиям.
Заказов не беру. Консультирую редко.
#
Re: что за что отвечает в дополнительных свойствах
а гдне можно посмотреть эту логику
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: что за что отвечает в дополнительных свойствах
ksusha, ну тут подразумевается, что если вы знакомы с языком запросов SQL, то логика для вас будет очевидна, т.к. синтаксис фильтра очень прозрачен.
А если вы с этим языком не знакомы, то надо наверное сначала почитать что-нибудь про SQL
Не знаю, можно ли где-то штатными методами cms увидеть лог запросов к БД.
Но в кратце идея такова: существует некий SQL запрос, извлекающий данные вашей ИС из БД. Он обычно имеет вид
SELECT перечень_полей FROM перечень_таблиц WHERE перечень_условий

Этот запрос извлекает из указанных таблиц требуемые поля только тех строк, которые соответствуют всем перечисленным условиям.
Массив
$element['type']=1;
$element['prefix'] = 'and';
$element['property_id'] = 26; // ID св-ва
$element['if'] = '=';
$element['value'] = '1';
$element['sufix'] = '';

описывает еще одно условие для отбора, которое присоединяется к уже существующим с помощью слова and, указанного в $element['prefix']. Само условие формируется с помощью $element['property_id'], $element['if'] и $element['value']. Ну и после условия можно дописать еще что-нибудь с помощью $element['sufix'].
Развернув этот массив в строку, мы получим:
and 26 = 1

при этом учтем, что это не арифметический пример, и на самом деле "26", как имя поля, будет иметь какой-нибудь префикс, типа "property26".
В итоге мы получим запрос вида:
SELECT перечень_полей FROM перечень_таблиц WHERE перечень_условий and property26 = 1

Ну вот как-то так.
Это конечно все очень упрощенно, условно и схематично, но логика именно такая.
Заказов не беру. Консультирую редко.
#
Re: что за что отвечает в дополнительных свойствах
да смысл понят уже давно и sql зна. не понятно как логический флажок проверять на истину либо 0 и 1 либо false и true  проверяла и так и так нефига не работает и с толку сбивают префиксы и суфиксы
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: что за что отвечает в дополнительных свойствах
ну если считать что у меня условие такое
select товары from  из всех групп where допсвойство с id 161 = true(галочка стоит)

получаем след код
<? php
$Shop =  & singleton('shop');
$param = array();

$element['property_id'] = 161; // ID св-ва
$element['if'] = '=';
$element['value'] = 1; //или что там ставится
$element['sufix'] = '';
$param['select'][]=$element;

$param['items_on_page'] = 4;
$param['items_order'] = 'rand';

$param['current_group_id'] =false;
$Shop->ShowShop(3,'МагазинКаталогТоваровНаГлавнойСпецПред',$param);
?>

правильно?
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: что за что отвечает в дополнительных свойствах
ksusha, ход мысли правильный, но вы забыли type и prefix

<? php
$Shop =  & singleton('shop');
$param = array();

$element['type']=1; // отбо будет делаться по дополнительному свойству товара.
$element['prefix'] = 'and'; // так надо.
$element['property_id'] = 161; // ID св-ва
$element['if'] = '=';
$element['value'] = 1; //именно это там и ставится, все правильно
$element['sufix'] = '';
$param['select'][]=$element;

$param['items_on_page'] = 4;
$param['items_order'] = 'rand';

$param['current_group_id'] =false;
$Shop->ShowShop(3,'МагазинКаталогТоваровНаГлавнойСпецПред',$param);
?>


префикс обязан быть, потому что в части where, как правило, и без ваших дополнительных отборов уже что-то есть, и если вы не укажете префикс то запрос получится некорректный. (В крайнем случае, в части where всегда будет условие 1=1, которое ни на что не влияет, но позволяет добавлять условия с префиксом and даже если никаких других условий нет)
Заказов не беру. Консультирую редко.
#
Re: что за что отвечает в дополнительных свойствах
не работает. при этом пол страницы вообще теряется
«И мне дороже боль и тлен, и редкий, горький миг блаженства, чем бесконечный рабский плен дарованого совершенства!» С. Лукьяненко «Чистовик».
#
Re: что за что отвечает в дополнительных свойствах

$element = array(); // мы с вами вот это пропустили
$element['type']=1;

ну и кроме того, а в XSL у вас все правильно? Может быть отбор происходит успешно, а в XSL ошибка? Попробуйте указать стандарный XSL-файл "МагазинКаталогТоваров"  от демки, если с ним заработает то причина в шаблоне.
Заказов не беру. Консультирую редко.
Авторизация