Версия: 3.x
Граф наследования:Api:
EntityList BaseModel

Подробное описание

Класс содержит API функции для работы с товарами

Открытые члены

 __construct ()
 
 addCostQuery (array $cost_types)
 
 getTableList ($page=null, $page_size=null, $order=null)
 
 addProductsProperty ($products)
 
 addProductsFiles ($products)
 
 addProductsPhotos ($products)
 
 genereteBarcode ()
 
 setFilter ($key, $value=null, $type= '=', $prefix= 'AND', array $options=array())
 
 getMultiDirCount ()
 
 setSortOrder ($field, $direction)
 
 getBaseFilters ()
 
 applyBaseFilters ($bfilters=null)
 
 addProductsDirs ($products)
 
 addProductsOffers ($products)
 
 addProductsMultiOffers ($products)
 
 addProductsFavorite ($products)
 
 addProductsMultiOffersInfo ($products)
 
 getProductsDirs ($products_id, $add_root=false, $is_products=true)
 
 multiDelete ($ids, $dir=0)
 
 multiUpdateProductsAndOffersPrices ($ids=array(), array $excost)
 
 deleteDuplicateProperties ()
 
 multiUpdate (array $data, $ids=array())
 
 getBySearchResult ($list_of_results)
 
 filterRequest ()
 
 addFilterControl (\RS\Html\Filter\Control $filter_control)
 
 getDirList ()
 
 getSameByCostProducts ($product, $delta, $page_size)
 
 getAllowableBrandsValues ($cache_key, $cache=true)
 
 getAllowablePropertyValues ($dir_id, $cache_key, $cache=true)
 
 addTranslitAliases ()
 
 getHeterogeneity ($min, $max)
 
 moveProduct ($dir_id, $from, $to, $flag)
 
 moveProductInDir ($dir_id, $product_id, $flag)
 
 getMinMaxProductsCost ()
 
 getListCount ()
 
 getSelectedFiltersAsString ($base_filters, $brands, $prop_filters)
 
 applyFiltersToMeta ($all_filters_data)
 
- Открытые члены унаследованные от EntityList
 __construct (\RS\Orm\AbstractObject $orm_element, array $options=array())
 
 setDefaultOrder ($order)
 
 setNameField ($field)
 
 setAliasField ($field)
 
 setSortField ($field)
 
 setIdField ($field)
 
 getIdField ()
 
 setLoadOnDelete ($bool)
 
 setSiteContext ($site_id=null)
 
 getSiteContext ()
 
 setMultisite ($bool)
 
 isMultisite ()
 
 resetQueryObject ()
 
 getCleanQueryObject ()
 
 queryObj ()
 
 setQueryObj (\RS\Orm\Request $q)
 
 defAlias ()
 
 setFilter ($key, $value=null, $type= '=', $prefix= 'AND', array $options=array())
 
 clearFilter ()
 
 getList ($page=null, $page_size=null, $order=null)
 
 getListAsArray ($page=0, $page_size=0, $order= '')
 
 getListAsResource ($page=0, $page_size=0, $order= '')
 
 getPagedList ($page_size)
 
 loadAssocList ($key_field, $value=null)
 
 getAssocList ($key_field, $value=null)
 
 setOrder ($order=null, array $values=null)
 
 setGroup ($group=null)
 
 getListCount ()
 
 getFirst ($order= '')
 
 getOneItem ($id)
 
 getById ($id, $alias_field=null)
 
 getElement ()
 
 setElement ($object)
 
 getElementClass ()
 
 getNewElement ()
 
 save ($id=null, $user_post=array())
 
 addFilterControl (\RS\Html\Filter\Control $filter_control)
 
 addTableControl (\RS\Html\Table\Control $table_control)
 
 del (array $ids)
 
 multiDelete ($ids)
 
 getSelectList ()
 
 multieditFormView ($tpl_path, $formfile, array $addparam=array())
 
 multiUpdate (array $data, $ids=array())
 
 moveElement ($from, $to, $flag,\RS\Orm\Request $extra_expr=null)
 
 noWriteRights ()
 
 getIdByAlias ($alias_or_id, $alias_field=null)
 
 saveRequest ($key)
 
 getIdsByRequest (\RS\Orm\Request $request)
 
- Открытые члены унаследованные от BaseModel
 addError ($message, $fieldname=null, $form=null)
 
 hasError ()
 
 getErrors ()
 
 cleanErrors ()
 
 getDisplayErrors ()
 
 getErrorsStr ()
 
 getFormErrors ($form, $separator= ', ')
 
 getNonFormErrors ($separator= ', ')
 
 exportErrors ()
 
 importErrors ($data)
 

Открытые статические члены

static getOfferByMultiofferValues ($product_id, $multioffers_values)
 
- Открытые статические члены унаследованные от EntityList
static staticSelectList ()
 
static getSavedRequest ($key, $default=null)
 

Поля данных

 $work_list_ids
 
- Поля данных унаследованные от EntityList
 $load_on_delete = false
 
 $id_field = 'id'
 
 $alias_field
 
 $sort_field
 
 $name_field
 
 $site_id_field = 'site_id'
 
 $is_multisite = false
 
 $site_context
 
 $def_table_alias = 'A'
 
 $obj
 
 $obj_instance
 
 $filter_active = false
 
 $multiedit_template = '%system%/coreobject/multiedit_form.tpl'
 
 $assocPlainList = array()
 
 $parsePrefixes = array('&' => 'AND', '|' => 'OR')
 
 $q
 
- Поля данных унаследованные от BaseModel
 $form_fieldname = array()
 
 $errors_by_form = array()
 
 $errors_non_form = array()
 
 $errors = array()
 

Защищенные члены

 isNumFilter ($filter)
 
 brandFilter ($filter)
 
 costFilter ($filter)
 
 getBaseFiltersParts ($base_filters, $brands)
 
 getPropertyFiltersParts ($prop_filters)
 
- Защищенные члены унаследованные от EntityList
 parseArrayFilter ($filters)
 
 filterLike ($key, $value, $type, $prefix, $options)
 
 filterIs ($key, $value, $type, $prefix, $options)
 
 filterFullText ($key, $value, $type, $prefix, $options)
 
 filterIn ($key, $value, $type, $prefix, $options)
 
 filterNotin ($key, $value, $type, $prefix, $options)
 
 filterDefault ($key, $value, $type, $prefix, $options)
 
 setPage ($page, $pageSize)
 
 moveArrayUp ($arr)
 
 moveArrayDown ($arr)
 

Защищенные данные

 $work_list
 
- Защищенные данные унаследованные от EntityList
 $default_order
 
- Защищенные данные унаследованные от BaseModel
 $default_error_fieldname = 'Информация'
 

Конструктор(ы)

__construct ( )

Методы

addCostQuery ( array  $cost_types)

Добавляет к запросу выборки условия для присоединения цен

Аргументы
OrmTypecost[] $cost_types - типы цен
Возвращает
void
addFilterControl ( \RS\Html\Filter\Control  $filter_control)

Устанавливает фильтры, от компонента html_filter

addProductsDirs (   $products)

Загружает товарам свойства xdir, xspec, в которых содержится принадлежность категориям

Аргументы
OrmProduct[] $products - массив товаров
Возвращает
Orm[]
addProductsFavorite (   $products)

Загружает списку товаров флаг, находится ли товар в избранном

Аргументы
OrmProduct[] $products массив товаров
Возвращает
Orm[]
addProductsFiles (   $products)

Загружает информацию о привязанных файлах к группе товаров (в свойство files)

Аргументы
OrmProduct[] - список товаров
Возвращает
Orm[]
addProductsMultiOffers (   $products)

Загружает списку товаров уровни многомерных комплектаций

Аргументы
OrmProduct[] $products массив товаров
Возвращает
Orm[]
addProductsMultiOffersInfo (   $products)

Загружает списку товаров информацию о том используются ли комплектации и многомерные комплектации без загрузки подробных сведений. Данный метод удобно использовать на странице со списком товаров

Аргументы
array$productsсписок товаров
Возвращает
array
addProductsOffers (   $products)

Загружает списку товаров комплектации

Аргументы
OrmProduct[] $products - массив товаров
Возвращает
Orm[]
addProductsPhotos (   $products)

Загружает ссылки на фотографии к группе товаров (в свойство images)

Аргументы
OrmProduct[] - список товаров
Возвращает
Orm[]
addProductsProperty (   $products)

Добавляет ко всем товарам характеристики

Аргументы
array$products
Возвращает
array
addTranslitAliases ( )

Добавляет символьные идентификаторы товарам, у которых они не установлены

Возвращает
integer
applyBaseFilters (   $bfilters = null)

Применяет "базовые" фильтры, т.е. фильтры, которые не зависят от таблиц характеристик товара.

Аргументы
null | array$bfilters- массив базовых фильтров
Возвращает
bool
applyFiltersToMeta (   $all_filters_data)

Добавляет к мета тегам Keywords, Description выбранные фильтры

Аргументы
array$all_filters_dataМассив с выбранными значениями фильтров
Возвращает
void
brandFilter (   $filter)
protected

Устанавливает фильтр по бренду

Аргументы
string | array$filter- бренд или массив брендов
costFilter (   $filter)
protected

Устанавливает фильтр по цене с учетом цен текущего пользователя

Аргументы
array$filter- массив со сведениями о переданном фильтре по цене (ключи to, from)
deleteDuplicateProperties ( )

Удаляет дубликаты характеристик в БД

filterRequest ( )

Устанавливает фильтры, которые следуют из параметров конфигурации модуля "Каталог"

Возвращает
genereteBarcode ( )

Возвращает сгенерированный артикул

Возвращает
string
getAllowableBrandsValues (   $cache_key,
  $cache = true 
)

Получает доступные значения брендов для категорий

Аргументы
string$cache_key- ключ для кэша
boolean$cache- флаг включения кэша
Возвращает
[]|false
getAllowablePropertyValues (   $dir_id,
  $cache_key,
  $cache = true 
)

Возвращает все возможные значения свойств для текущей выборки товаров,

  • диапазоны значений и шаг для характеристик типа int
  • массив возможных значений для характеристик типа list
  • массив возможных значений для характеристик типа bool
Аргументы
integer$dir_idid текущей категории товаров
mixed$cache_key- id кэша
bool$cache- Если true, то будет использоваться кэширование
Возвращает
array
getBaseFilters ( )

Возвращает массив текущих переданных базовых фильтров из массива $_REQUEST

Возвращает
array
getBaseFiltersParts (   $base_filters,
  $brands 
)
protected

Возвращает данные по базовым фильтрам

Аргументы
array$base_filtersструктура с выбранными фильтрами
array$brandsАссоциативный массив брендов
Возвращает
array
getBySearchResult (   $list_of_results)

Возвращает именно товары по результатам поиска

Аргументы
array$list_of_results- массив результатов поиска
Возвращает
array
getDirList ( )

Возвращает список категорий в которых состоят товары, возвращаемые функцией getList

Возвращает
array of Orm
getHeterogeneity (   $min,
  $max 
)

Получает риски для цен диапозона цен

Возвращает
string
getListCount ( )

Возвращает общее количество элементов, согласно условию.

Возвращает
integer
getMinMaxProductsCost ( )

Возвращает информацию о минимальной и максимальной цене товаров, для текущих условий выборки

Возвращает
array
getMultiDirCount ( )

Возвращает верное количество товаров, которое вернет getList если выбираются товары из нескольких директорий одновременно

static getOfferByMultiofferValues (   $product_id,
  $multioffers_values 
)
static

Возвращает номер комплектации по значениям многомерной комплектации

Аргументы
integer$product_id- id товара
array$multioffers_values- массив характеристик многомерной комплектации (title => value)
Возвращает
integer
getProductsDirs (   $products_id,
  $add_root = false,
  $is_products = true 
)

Возвращает группы, в которых состоят товары (включая родителей групп)

Аргументы
OrmProduct[] $products_id - массив товаров
bool$add_root- добавлять корневую категорию
bool$is_products- добавлять в запрос идентификаторы из переданных товаров
Возвращает
array|false
getPropertyFiltersParts (   $prop_filters)
protected

Возвращает данные по установленным фильтрам по характеристикам

Аргументы
array$prop_filtersмассив, полученный от Catalog->last_filtered_props
Возвращает
array
getSameByCostProducts (   $product,
  $delta,
  $page_size 
)
getSelectedFiltersAsString (   $base_filters,
  $brands,
  $prop_filters 
)

Возвращает установленные фильтры в структурированном виде

Возвращает
array
getTableList (   $page = null,
  $page_size = null,
  $order = null 
)

Возвращает список товаров для таблицы в административной части

Аргументы
integer$page- номер страницы
integer$page_size- количество элементов на страницу
string$order- сортировка
Возвращает
array
isNumFilter (   $filter)
protected

Устанавливает фильтр по наличию

Аргументы
string$filter- строка с типом фильтра ("", "1", "0")
moveProduct (   $dir_id,
  $from,
  $to,
  $flag 
)

Перемещает элемент from на место элемента to. Если flag = 'up', то до элемента to, иначе после

Аргументы
int$dir_id- id категории в которой происходит перемещение
int$from- id элемента, который переносится
int$to- id ближайшего элемента, возле которого должен располагаться элемент
string$flag- up или down - флаг выше или ниже элемента $to должен располагаться элемент $from
Возвращает
boolean
moveProductInDir (   $dir_id,
  $product_id,
  $flag 
)

Перемещает объект товара в сортировке в самый верх для заданной директории

Аргументы
integer$dir_id- id директории
integer$product_id- id товара
string$flag- up или down - флаг выше или ниже элемента $to должен располагаться элемент $from
Возвращает
boolean
multiDelete (   $ids,
  $dir = 0 
)

Функция быстрого группового удаления товаров по их идентификаторам

Аргументы
array$ids- массив id товаров
integer$dir- если >0, то будет удалено только из категории $dir
Возвращает
boolean
multiUpdate ( array  $data,
  $ids = array() 
)

Функция быстрого группового редактирования товаров

Аргументы
array$data- массив данных для обновления
array$ids- идентификаторы товаров на обновление
Возвращает
int
multiUpdateProductsAndOffersPrices (   $ids = array(),
array  $excost 
)

Мульти обновление цены у товаров и комплектаций

Аргументы
array$ids- массив id товаров
array$excost- массив сведений об именении цены или с полями изменения цен
setFilter (   $key,
  $value = null,
  $type = '=',
  $prefix = 'AND',
array  $options = array() 
)

Устанавливает фильтр для последующей выборки элементов

Аргументы
string  |  array$key- имя поля (соответствует имени поля в БД) или массив для установки группового фильтра

Пример применения группового фильтра: array( 'title' => 'Название', // AND title = 'Название' '|title:like' => 'Текст' // OR title LIKE 'Текст' '&title:like' => 'Текст' // AND title LIKE 'Текст' 'years:>' => 18, // AND years > 18 'years:<' => 21, // AND years < 21 ' years:>' => 30, // AND years > 30 #пробелы по краям вырезаются ' years:<' => 40, // AND years < 40 #пробелы по краям вырезаются 'id:in' => '12,23,45,67,34', // AND id IN (12,23,45,67,34) '|id:notin' => '44,33,23' // OR id NOT IN (44,33,23)

array( // AND ( 'name' => 'Артем', // name = 'Артем' '|name' => 'Олег' // OR name = 'Олег' ), // )

'|' => array( // OR ( 'surname' => 'Петров' // surname = 'Петров' '|surname' => 'Иванов' // OR surname = 'Иванов' ) // ) ) Общая маска ключей массива: [пробелы][&|]ИМЯ ПОЛЯ[:ТИП ФИЛЬТРА]

Аргументы
mixed$value- значение
string$type- =,<,>, in, notin, fulltext, like%, like%, like тип соответствия поля значению.
string$prefixусловие связки с предыдущими условиями (AND/OR/...)
array$options
Возвращает
Api|
setSortOrder (   $field,
  $direction 
)

Устанавливает сортировку товаров

Поля

$work_list
protected
$work_list_ids