GetList
Метод устарел. Используйте методы класса OrderBase.
Описание и параметры
CDBResult CSaleOrderProps::GetList( array arOrder = array(), array arFilter = array(), array arGroupBy = false, array arNavStartParams = false, array arSelectFields = array() );
Метод возвращает результат выборки из свойств заказов в соответствии со своими параметрами. Нестатический метод.
Параметры вызова
Параметр | Описание |
---|---|
arOrder | Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array( "название_поля1" => "направление_сортировки1", "название_поля2" => "направление_сортировки2", . . . )В качестве "название_поляN" может стоять любое поле местоположения, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию). Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.). Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет. |
arFilter | Массив, в соответствии с которым фильтруются
записи свойств заказа. Массив имеет вид:
array( "[модификатор1][оператор1]название_поля1" => "значение1", "[модификатор2][оператор2]название_поля2" => "значение2", . . . )Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются. Допустимыми являются следующие модификаторы:
Пример фильтра: array( "REQUIED" => "Y" )Этот фильтр означает "выбрать все записи, в которых значение в поле REQUIED (обязательно для заполнения) равно Y". Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет. |
arGroupBy | Массив полей, по которым группируются записи
свойств заказа. Массив имеет вид:
array( "название_поля1", "группирующая_функция2" => "название_поля2", . . . )В качестве "название_поляN" может стоять любое поле свойств заказа. В качестве группирующей функции могут стоять:
Значение по умолчанию - false - означает, что результат группироваться не будет. |
arNavStartParams | Массив параметров выборки. Может содержать следующие ключи:
|
arSelectFields | Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение
"*", то будут возвращены все доступные поля. Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. |
Возвращаемые значения
Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров свойств с ключами:
Ключ | Описание |
---|---|
ID | Код свойства заказа. |
PERSON_TYPE_ID | Тип плательщика. |
NAME | Название свойства. |
TYPE | Тип свойства. Допустимые значения:
|
REQUIED | Флаг (Y/N) обязательное ли поле. |
DEFAULT_VALUE | Значение по умолчанию. |
SORT | Индекс сортировки. |
USER_PROPS | Флаг (Y/N) входит ли это свойство в профиль покупателя. |
IS_LOCATION | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION) |
PROPS_GROUP_ID | Код группы свойств. |
SIZE1 | Ширина поля (размер по горизонтали). |
SIZE2 | Высота поля (размер по вертикали). |
DESCRIPTION | Описание свойства. |
IS_EMAIL | Флаг (Y/N) использовать ли значение свойства как E-Mail покупателя. |
IS_PROFILE_NAME | Флаг (Y/N) использовать ли значение свойства как название профиля покупателя. |
IS_PAYER | Флаг (Y/N) использовать ли значение свойства как имя плательщика. |
IS_LOCATION4TAX | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION) |
CODE | Символьный код свойства. |
Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.
Пример использования
<? // Выведем форму для ввода свойств заказа для группы свойств с кодом 5, которые входят в профиль покупателя, для типа плательщика с кодом 2 $db_props = CSaleOrderProps::GetList( array("SORT" => "ASC"), array( "PERSON_TYPE_ID" => 2, "PROPS_GROUP_ID" => 5, "USER_PROPS" => "Y" ), false, false, array() ); if ($props = $db_props->Fetch()) { echo "Заполните параметры заказа:<br>"; do { echo $props["NAME"]; if ($props["REQUIED"]=="Y" || $props["IS_EMAIL"]=="Y" || $props["IS_PROFILE_NAME"]=="Y" || $props["IS_LOCATION"]=="Y" || $props["IS_LOCATION4TAX"]=="Y" || $props["IS_PAYER"]=="Y" ) { echo "*"; } echo ": "; if ($props["TYPE"]=="CHECKBOX") { echo '<input type="checkbox" class="inputcheckbox" name="ORDER_PROP_'.$props["ID"].'" value="Y"'.(($props["DEFAULT_VALUE"]=="Y")?" checked":"").'>'; } elseif ($props["TYPE"]=="TEXT") { echo '<input type="text" class="inputtext" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:30).'" maxlength="250" value="'.htmlspecialchars($props["DEFAULT_VALUE"]).'" name="ORDER_PROP_'.$props["ID"].'">'; } elseif ($props["TYPE"]=="SELECT") { echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">'; $db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"])); while ($vars = $db_vars->Fetch()) { echo '<option value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>'; } echo '</select>'; } elseif ($props["TYPE"]=="MULTISELECT") { echo '<select multiple name="ORDER_PROP_'.$props["ID"].'[]" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:5).'">'; $arDefVal = Split(",", $props["DEFAULT_VALUE"]); for ($i = 0; $i<count($arDefVal); $i++) $arDefVal[$i] = Trim($arDefVal[$i]); $db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"])); while ($vars = $db_vars->Fetch()) { echo '<option value="'.$vars["VALUE"].'"'.(in_array($vars["VALUE"], $arDefVal)?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>'; } echo '</select>'; } elseif ($props["TYPE"]=="TEXTAREA") { echo '<textarea rows="'.((IntVal($props["SIZE2"])>0)?$props["SIZE2"]:4).'" cols="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:40).'" name="ORDER_PROP_'.$props["ID"].'">'.htmlspecialchars($props["DEFAULT_VALUE"]).'</textarea>'; } elseif ($props["TYPE"]=="LOCATION") { echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">'; $db_vars = CSaleLocation::GetList(Array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), array(), LANGUAGE_ID); while ($vars = $db_vars->Fetch()) { echo '<option value="'.$vars["ID"].'"'.((IntVal($vars["ID"])==IntVal($props["DEFAULT_VALUE"]))?" selected":"").'>'.htmlspecialchars($vars["COUNTRY_NAME"]." - ".$vars["CITY_NAME"]).'</option>'; } echo '</select>'; } elseif ($props["TYPE"]=="RADIO") { $db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"])); while ($vars = $db_vars->Fetch()) { echo '<input type="radio" name="ORDER_PROP_'.$props["ID"].'" value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" checked":"").'>'.htmlspecialchars($vars["NAME"]).'<br>'; } } if (strlen($props["DESCRIPTION"])>0) { echo "<br><small>".$props["DESCRIPTION"]."</small>"; } echo "<br>"; } while ($props = $db_props->Fetch()); } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.