Версия: 6.x
burger close
Класс TreeList
Граф наследования:TreeList:
EntityList BaseModel TreeCookieList RegionApi AffiliateApi CatApi DirApi Api UserStatusApi

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

Класс для работы с древовидными списками. (с полной загрузкой списка в массив)

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

 setDeleteChild ($bool)
 
 isDeleteChild ()
 
 setParentField ($field)
 
 getParentField ()
 
 getPathToFirst ($id, $cache=true)
 
 getParentIds ($ids, $cache=true)
 
 getByAlias ($alias, $parent=null)
 
 getTreeList ($parent_id=0, array $first_elements=[])
 
 getSelectList ($parent_id=0, array $first=[])
 
 del (array $ids)
 
 queryParents ($id)
 
 queryGetChilds ($parent_id, $order=null)
 
 moveElement ($from, $to, $flag, OrmRequest $extra_expr=null, $new_parent_id=null)
 
 multiEditCheck ($element, $post, $ids)
 
 addFilterControl (FilterControl $filter_control)
 
 isEnableTreePreload ()
 
 setEnableTreePreload ($enable_tree_preload)
 
- Открытые члены унаследованные от EntityList
 __construct (AbstractObject $orm_element, array $options=[])
 
 setDefaultOrder ($order)
 
 getNameField ()
 
 setNameField ($field)
 
 setAliasField ($field)
 
 setSortField ($field)
 
 setIdField ($field)
 
 getIdField ()
 
 getSiteIdField ()
 
 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=[])
 
 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 ()
 
 getOneItem ($id)
 
 getById ($id, $request=null)
 
 getElement ()
 
 setElement ($object)
 
 getElementClass ()
 
 getNewElement ()
 
 save ($id=null, array $user_post=[])
 
 addFilterControl (\RS\Html\Filter\Control $filter_control)
 
 addTableControl (\RS\Html\Table\Control $table_control)
 
 del (array $ids)
 
 multiDelete ($ids)
 
 getSelectList ($first=[])
 
 multieditFormView ($tpl_path, $formfile, array $addparam=[])
 
 multiUpdate (array $data, $ids=[])
 
 moveElement ($from, $to, $flag,\RS\Orm\Request $extra_expr=null)
 
 noWriteRights ($right=DefaultModuleRights::RIGHT_UPDATE)
 
 getIdByAlias ($alias_or_id, $alias_field=null)
 
 saveRequest ($key)
 
 getIdsByRequest (\RS\Orm\Request $request)
 
 __set ($name, $value)
 
 __get ($name)
 
 __isset ($name)
 
 __unset ($name)
 
- Открытые члены унаследованные от BaseModel
 addError ($message, $fieldname=null, $form=null)
 
 hasError ()
 
 getErrors ()
 
 cleanErrors ()
 
 getDisplayErrors ()
 
 getErrorsStr ()
 
 getFormErrors ($form, $separator= ', ')
 
 getNonFormErrors ($separator= ', ')
 
 exportErrors ()
 
 importErrors ($data)
 

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

static staticTreeList ($parent_id=0, $first_elements=[])
 
static staticSelectList ($parent_id=0, $first=[])
 
static FindSubFolder (array $list)
 
static getChildsId ($ids)
 
- Открытые статические члены унаследованные от EntityList
static getInstance ($key= 'default')
 
static staticSelectList ($first=[])
 
static getSavedRequest ($key, $default=null)
 

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

 getAllParentIdsArray ($cache=true)
 
 getFakeNodesFromStringArray ($items)
 
 recursiveConvertTreeToSelectList (array $tree, $parent_id, $level=0)
 
- Защищенные члены унаследованные от 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)
 

Защищенные статические члены

static recursiveGetChildIdsFromTree (array $tree, $id)
 

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

 $parent_field
 
 $enable_tree_preload = true
 
 $delete_child = true
 
- Защищенные данные унаследованные от EntityList
 $default_order
 
 $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 = []
 
 $parsePrefixes = ['&' => 'AND'
 
 $cache_alias = []
 
 $options = []
 
 $q
 
- Защищенные данные унаследованные от BaseModel
 $default_error_fieldname = 'Информация'
 

Дополнительные унаследованные члены

- Поля данных унаследованные от EntityList
const WHERE_CONDITION_VAR = 'where_conditions'
 
- Поля данных унаследованные от BaseModel
 $form_fieldname = []
 
 $errors_by_form = []
 
 $errors_non_form = []
 
 $errors = []
 
- Статические защищенные данные унаследованные от EntityList
static $instance = []
 

Методы

addFilterControl ( FilterControl  $filter_control)

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

Аргументы
FilterControl$filter_control- объект фильтра
Возвращает
EntityList
del ( array  $ids)

Удаляет список объектов по id, включая дочерние элементы

Аргументы
array$ids- массив ID объектов
Возвращает
bool
static FindSubFolder ( array  $list)
static
Аргументы
string[]|int[]$list - список ID элементов, для которых необходимо найти дочерние ID
Возвращает
string[]|int[]
getAllParentIdsArray (   $cache = true)
protected

Возвращает массив [ID => ID родителя] для всех элементов

Аргументы
bool$cacheЕсли true, то будет использован кэш
Возвращает
array
getByAlias (   $alias,
  $parent = null 
)

Возвращает элемент по Псевдониму

Аргументы
string$alias- псевдоним
int | string$parent- ID родителя, если уникальность псевдонима в рамках родительского элемента
Возвращает
AbstractObject|false
static getChildsId (   $ids)
static

Дополняет список идентификаторами всех дочерних элементов

Аргументы
int|string|int[]|string[]$ids - список ID элементов, для которых необходимо найти дочерние ID
Возвращает
int[]|string[]
getFakeNodesFromStringArray (   $items)
protected

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

Аргументы
string[]$items - список названий
Возвращает
TreeListFakeNode[]
getParentField ( )

Возвращает поле, в котором хранится ссылка на ID родителя записи

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

Дополняет список идентификаторами родительских элементов

Аргументы
int|string|int[]|string[]$ids Список ID элементов
bool$cacheЕсли true, то будет использован локальный статический кэш
Возвращает
int[]|string[]
getPathToFirst (   $id,
  $cache = true 
)

Возвращает список элементов, составляющих путь к элементу от корня

Аргументы
int | string$id- id текущего элемента
bool$cacheЕсли true, то будет использован локальный статический кэш
Возвращает
AbstractObject[]
getSelectList (   $parent_id = 0,
array  $first = [] 
)
Аргументы
int$parent_id- id корневого элемента дерева
string[]$first - значения, которые нужно добавить в начало списка
Возвращает
string[]
getTreeList (   $parent_id = 0,
array  $first_elements = [] 
)

Возвращает дерево элементов

Аргументы
int$parent_id- id родительского узла
AbstractTreeListNode[]$first_elements - узлы, которые нужно добавить в начало списка
Возвращает
TreeListOrmIterator
Исключения
RSException
isDeleteChild ( )

Возвращает true, если необходимо удалять рекурсивно дочерние элементы при вызове метода del

Возвращает
bool
isEnableTreePreload ( )

Возвращает разрешена ли предварительная загрузка дерева элементов

Возвращает
bool
moveElement (   $from,
  $to,
  $flag,
OrmRequest  $extra_expr = null,
  $new_parent_id = null 
)

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

Аргументы
int$from- id элемента, который переносится
int$to- id ближайшего элемента, возле которого должен располагаться элемент
string$flag- up или down - флаг выше или ниже элемента $to должен располагаться элемент $from
OrmRequest$extra_expr- объект с установленными уточняющими условиями, для выборки объектов сортировки
int$new_parent_id- новый ID родительского элемента
Возвращает
bool
multiEditCheck (   $element,
  $post,
  $ids 
)

Проверяет возможно ли множественное изменение с параметрами, переданными в POST

Аргументы
AbstractObject$element- orm объект
array$post- данные из POST
array$ids- список id редактируемых объектов
Возвращает
bool
queryGetChilds (   $parent_id,
  $order = null 
)

Возвращает список непосредственных детей элемента $id используя запросы к БД

Аргументы
mixed$parent_id- ID родителя
string$order- сортировка
Возвращает
array
queryParents (   $id)
Аргументы
mixed$id
Возвращает
AbstractObject[]
recursiveConvertTreeToSelectList ( array  $tree,
  $parent_id,
  $level = 0 
)
protected
Аргументы
array$tree- список
$parent_id- id корневого элемента дерева
int$level- технический параметр, уровень вложенности
Возвращает
string[]
static recursiveGetChildIdsFromTree ( array  $tree,
  $id 
)
staticprotected

Рекурсивно собирает идентификаторы дочерних элементов узла дерева

Аргументы
array$tree- массив вида id => array(child_ids)
string | int$id- идентификатор узла
Возвращает
string[]|int[]
setDeleteChild (   $bool)

Устанавливает, нужно ли удалять рекурсивно дочерние элементы при вызове метода del Нужно устанавливать false, если логика удаления дочерних элементов реализована в ORM объекте

Аргументы
bool$bool
Возвращает
void
setEnableTreePreload (   $enable_tree_preload)

Устанавливает разрешение на предварительную загрузку дерева элементов

Аргументы
bool$enable_tree_preload- значение
Возвращает
void
setParentField (   $field)

Устанавливает поле, в котором хранится ссылка на ID родителя записи

Аргументы
string$field- поле ORM Объекта
Возвращает
TreeList
static staticSelectList (   $parent_id = 0,
  $first = [] 
)
static
Аргументы
int$parent_id= id корневого элемента дерева
array$first= значения, которые нужно добавить в начало списка
Возвращает
array
static staticTreeList (   $parent_id = 0,
  $first_elements = [] 
)
static

Статический вызов метода getTreeList()

Аргументы
int$parent_id- id родительского узла
string[]$first_elements - значения, которые нужно добавить в начало списка
Возвращает
TreeListOrmIterator
Исключения
RSException

Поля

$delete_child = true
protected
$enable_tree_preload = true
protected
$parent_field
protected