ModuleCategory_EntityCategory

Package application.modules.category
Inheritance class ModuleCategory_EntityCategory » EntityORM » Entity » LsObject
Since 2.0
Source Code /application/classes/modules/category/entity/Category.entity.class.php
Сущность категории

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
_aData array Данные сущности, на этот массив мапятся методы set* и get* Entity
_aManyToManyRelations array Объекты связей many_to_many EntityORM
_aOriginalData array Массив исходных данных сущности EntityORM
aBehaviors array Список поведений LsObject
aFields array Список полей таблицы сущности EntityORM
aRelations ModuleCategory_EntityCategory
aRelationsData array Список данных связей EntityORM
aValidateErrors array Список ошибок валидации в разрезе полей, например Entity
aValidateRules array Определяем правила валидации ModuleCategory_EntityCategory
bIsNew bool Флаг новая или нет сущность EntityORM
sPrimaryKey null|string Имя поля с первичным ключом в БД Entity
sValidateScenario string Сценарий валиадции полей Entity

Public Methods

Hide inherited methods

MethodDescriptionDefined By
Add() Добавление сущности в БД EntityORM
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
Delete() Удаление сущности из БД EntityORM
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
Init() Метод инициализации сущности, вызывается при её создании Entity
Reload() Обновляет данные сущности из БД EntityORM
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
Save() Сохранение сущности в БД (если новая то создается) EntityORM
ShowColumns() Возвращает список полей сущности EntityORM
ShowPrimaryIndex() Возвращает primary индекс сущности EntityORM
Update() Обновление сущности в БД EntityORM
ValidateOrderCheck() Установка дефолтной сортировки ModuleCategory_EntityCategory
ValidateParentCategory() Проверка родительской категории ModuleCategory_EntityCategory
_SetIsNew() Установка флага "новая" EntityORM
_Validate() Выполняет валидацию данных сущности Entity
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля EntityORM
__clone() При клонировании сбрасываем поведения LsObject
__construct() Установка связей EntityORM
__get() Используется для доступа к связанным данным типа MANY_TO_MANY EntityORM
_addValidateError() Добавляет для поля ошибку в список ошибок Entity
_clearValidateErrors() Очищает список всех ошибок или для конкретного поля Entity
_createValidators() Создает и возвращает список валидаторов для сущности Entity
_getData() Получает массив данных сущности Entity
_getDataArray() Рекурсивное преобразование объекта и вложенных объектов в массив Entity
_getDataFields() Возвращает данные для списка полей сущности EntityORM
_getDataOne() Возвращает данные по конкретному полю Entity
_getField() Возвращает поле в нужном формате EntityORM
_getFields() Возвращает список полей сущности EntityORM
_getManyToManyRelationEntity() Возвращает сущность связи при many to many EntityORM
_getOriginalData() Возвращает все данные сущности EntityORM
_getOriginalDataOne() Возвращает "оригинальные" данные по конкретному полю EntityORM
_getPrimaryKey() Получение primary key из схемы таблицы EntityORM
_getPrimaryKeyValue() Получение значения primary key EntityORM
_getRelations() Возвращает список связей EntityORM
_getRelationsData() Возвращает список данный связей EntityORM
_getTreeParentKey() Переопределяем имя поля с родителем ModuleCategory_EntityCategory
_getTreeParentKeyValue() Получение значения родителя. Используется в связи RELATION_TYPE_TREE EntityORM
_getValidateError() Возвращает первую ошибку для поля или среди всех полей Entity
_getValidateErrors() Возвращает список ошибок для всех полей или одного поля Entity
_getValidateRules() Возвращает список правил для валидации Entity
_getValidateScenario() Возвращает текущий сценарий валидации Entity
_getValidators() Возвращает список валидаторов с учетом текущего сценария Entity
_hasValidateErrors() Проверяет есть ли ошибки валидации Entity
_isNew() Новая или нет сущность EntityORM
_setData() Устанавливает данные сущности EntityORM
_setDataSafe() Устанавливает данные, но только те, которые есть в $this->aValidateRules Entity
_setManyToManyRelations() Устанавливает вспомогательные объекты для связи many_to_many EntityORM
_setRelationsData() Устанавливает данные связей EntityORM
_setValidateScenario() Устанавливает сценарий валидации Entity
getAncestors() Для сущности со связью RELATION_TYPE_TREE возвращает список всех предков EntityORM
getChildren() Для сущности со связью RELATION_TYPE_TREE возвращает список прямых потомков EntityORM
getCountTargetOfDescendants() Возвращает количество таргетов (объектов) для всех потомков, включая себя ModuleCategory_EntityCategory
getData() Возвращает список дополнительных данных ModuleCategory_EntityCategory
getDataOne() Возвращает данные по конкретному ключу ModuleCategory_EntityCategory
getDataOneSumDescendants() Возвращает сумму значений по ключу для всех потомков, включая себя ModuleCategory_EntityCategory
getDescendants() Для сущности со связью RELATION_TYPE_TREE возвращает список всех потомков EntityORM
getParent() Для сущности со связью RELATION_TYPE_TREE возвращает предка EntityORM
getTypeByCacheLife() Возвращает объект типа категории с использованием кеширования на время сессии ModuleCategory_EntityCategory
getUrlAdminRemove() Возвращает URL админки для удаления ModuleCategory_EntityCategory
getUrlAdminUpdate() Возвращает URL админки для редактирования ModuleCategory_EntityCategory
getWebUrl() Возвращает URL категории ModuleCategory_EntityCategory
resetRelationsData() Сбрасывает данные необходимой связи EntityORM
setAncestors() Для сущности со связью RELATION_TYPE_TREE устанавливает предков EntityORM
setChildren() Для сущности со связью RELATION_TYPE_TREE устанавливает потомков EntityORM
setData() Устанавливает список дополнительня данных ModuleCategory_EntityCategory
setDataOne() Устанваливает данные для конкретного ключа ModuleCategory_EntityCategory
setDescendants() Для сущности со связью RELATION_TYPE_TREE устанавливает потомков EntityORM
setParent() Для сущности со связью RELATION_TYPE_TREE устанавливает предка EntityORM

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
PrepareBehaviors() Инициализация поведений LsObject
_Method() Проксирует вызов методов в модуль сущности EntityORM
afterDelete() Хук, срабатывает после удаления сущности EntityORM
afterSave() Хук, срабатывает после сохранением сущности EntityORM
beforeDelete() Выполняется перед удалением ModuleCategory_EntityCategory
beforeSave() Выполняется перед сохранением ModuleCategory_EntityCategory

Property Details

aRelations property
protected $aRelations;

aValidateRules property
protected array $aValidateRules;

Определяем правила валидации

Method Details

ValidateOrderCheck() method
public bool ValidateOrderCheck(string $sValue, array $aParams)
$sValue string Валидируемое значение
$aParams array Параметры
{return} bool
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#85 (show)
public function ValidateOrderCheck($sValue$aParams)
{
    if (!
$this->getSort()) {
        
$this->setSort(100);
    }
    return 
true;
}

Установка дефолтной сортировки

ValidateParentCategory() method
public bool ValidateParentCategory(string $sValue, array $aParams)
$sValue string Валидируемое значение
$aParams array Параметры
{return} bool
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#57 (show)
public function ValidateParentCategory($sValue$aParams)
{
    if (
$this->getPid()) {
        if (
$oCategory $this->Category_GetCategoryById($this->getPid())) {
            if (
$oCategory->getId() == $this->getId()) {
                return 
'Попытка вложить категорию в саму себя';
            }
            if (
$oCategory->getTypeId() != $this->getTypeId()) {
                return 
'Неверная родительская категория';
            }
            
$this->setUrlFull($oCategory->getUrlFull() . '/' $this->getUrl());
        } else {
            return 
'Неверная категория';
        }
    } else {
        
$this->setPid(null);
        
$this->setUrlFull($this->getUrl());
    }
    return 
true;
}

Проверка родительской категории

_getTreeParentKey() method
public string _getTreeParentKey()
{return} string
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#130 (show)
public function _getTreeParentKey()
{
    return 
'pid';
}

Переопределяем имя поля с родителем Т.к. по дефолту в деревьях используется поле parent_id

beforeDelete() method
protected bool beforeDelete()
{return} bool
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#98 (show)
protected function beforeDelete()
{
    if (
$bResult parent::beforeDelete()) {
        
/**
         * Запускаем удаление дочерних категорий
         */
        
if ($aCildren $this->getChildren()) {
            foreach (
$aCildren as $oChildren) {
                
$oChildren->Delete();
            }
        }
        
/**
         * Удаляем связь с таргетом
         */
        
if ($aTargets $this->Category_GetTargetItemsByCategoryId($this->getId())) {
            foreach (
$aTargets as $oTarget) {
                
$oTarget->Delete();
                
/**
                 * TODO: Нужно запустить хук, что мы удалили такую-то связь
                 */
            
}
        }
    }
    return 
$bResult;
}

Выполняется перед удалением

beforeSave() method
protected bool beforeSave()
{return} bool
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#140 (show)
protected function beforeSave()
{
    if (
$bResult parent::beforeSave()) {
        if (
$this->_isNew()) {
            
$this->setDateCreate(date("Y-m-d H:i:s"));
        }
    }
    return 
$bResult;
}

Выполняется перед сохранением

getCountTargetOfDescendants() method
public mixed getCountTargetOfDescendants()
{return} mixed
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#271 (show)
public function getCountTargetOfDescendants()
{
    
$iCount $this->getCountTarget();
    
$aChildren $this->getDescendants();
    foreach (
$aChildren as $oItem) {
        
$iCount += $oItem->getCountTarget();
    }
    return 
$iCount;
}

Возвращает количество таргетов (объектов) для всех потомков, включая себя

getData() method
public array|mixed getData()
{return} array|mixed
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#201 (show)
public function getData()
{
    
$aData = @unserialize($this->_getDataOne('data'));
    if (!
$aData) {
        
$aData = array();
    }
    return 
$aData;
}

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

getDataOne() method
public null getDataOne($sKey $sKey)
$sKey $sKey
{return} null
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#227 (show)
public function getDataOne($sKey)
{
    
$aData $this->getData();
    if (isset(
$aData[$sKey])) {
        return 
$aData[$sKey];
    }
    return 
null;
}

Возвращает данные по конкретному ключу

getDataOneSumDescendants() method
public null getDataOneSumDescendants($sKey $sKey)
$sKey $sKey
{return} null
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#256 (show)
public function getDataOneSumDescendants($sKey)
{
    
$iResult $this->getDataOne($sKey);
    
$aChildren $this->getDescendants();
    foreach (
$aChildren as $oItem) {
        
$iResult += $oItem->getDataOne($sKey);
    }
    return 
$iResult;
}

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

getTypeByCacheLife() method
public ModuleCategory_EntityType getTypeByCacheLife()
{return} ModuleCategory_EntityType
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#166 (show)
public function getTypeByCacheLife()
{
    
$sKey 'category_type_' . (string)$this->getTypeId();
    if (
false === ($oType $this->Cache_GetLife($sKey))) {
        
$oType $this->getType();
        
$this->Cache_SetLife($oType$sKey);
    }
    return 
$oType;
}

Возвращает объект типа категории с использованием кеширования на время сессии

getUrlAdminRemove() method
public string getUrlAdminRemove()
{return} string
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#191 (show)
public function getUrlAdminRemove()
{
    return 
Router::GetPath('admin/categories/' $this->getTypeByCacheLife()->getTargetType() . '/remove/' $this->getId());
}

Возвращает URL админки для удаления

getUrlAdminUpdate() method
public string getUrlAdminUpdate()
{return} string
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#181 (show)
public function getUrlAdminUpdate()
{
    return 
Router::GetPath('admin/categories/' $this->getTypeByCacheLife()->getTargetType() . '/update/' $this->getId());
}

Возвращает URL админки для редактирования

getWebUrl() method
public string getWebUrl()
{return} string
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#156 (show)
public function getWebUrl()
{
    return 
null;
}

Возвращает URL категории Этот метод необходимо переопределить из плагина и возвращать свой URL для нужного типа категорий

setData() method
public void setData($aRules $aRules)
$aRules $aRules
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#215 (show)
public function setData($aRules)
{
    
$this->_aData['data'] = @serialize($aRules);
}

Устанавливает список дополнительня данных

setDataOne() method
public void setDataOne($sKey $sKey, $mValue $mValue)
$sKey $sKey
$mValue $mValue
Source Code: /application/classes/modules/category/entity/Category.entity.class.php#242 (show)
public function setDataOne($sKey$mValue)
{
    
$aData $this->getData();
    
$aData[$sKey] = $mValue;
    
$this->setData($aData);
}

Устанваливает данные для конкретного ключа