ModuleProperty_EntityProperty

Package application.modules.property
Inheritance class ModuleProperty_EntityProperty » EntityORM » Entity » LsObject
Since 2.0
Source Code /application/classes/modules/property/entity/Property.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 ModuleProperty_EntityProperty
aRelationsData array Список данных связей EntityORM
aValidateErrors array Список ошибок валидации в разрезе полей, например Entity
aValidateRules ModuleProperty_EntityProperty
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
ValidateCheckCode() ModuleProperty_EntityProperty
ValidateCheckDescription() ModuleProperty_EntityProperty
ValidateCheckParamsRaw() ModuleProperty_EntityProperty
ValidateCheckTitle() ModuleProperty_EntityProperty
ValidateCheckType() ModuleProperty_EntityProperty
ValidateCheckValidateRulesRaw() ModuleProperty_EntityProperty
_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() Получение имени родительского поля. Используется в связи RELATION_TYPE_TREE EntityORM
_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
getDescendants() Для сущности со связью RELATION_TYPE_TREE возвращает список всех потомков EntityORM
getParam() Возвращает конкретный параметр поля ModuleProperty_EntityProperty
getParams() Возвращает список дополнительных параметров поля ModuleProperty_EntityProperty
getParamsEscape() Возвращает экранированный список параметров ModuleProperty_EntityProperty
getParent() Для сущности со связью RELATION_TYPE_TREE возвращает предка EntityORM
getSaveFileDir() ModuleProperty_EntityProperty
getTypeTitle() Возвращает описание типа поля ModuleProperty_EntityProperty
getUrlAdminRemove() Возвращает URL админки для редактирования поля ModuleProperty_EntityProperty
getUrlAdminUpdate() Возвращает URL админки для редактирования поля ModuleProperty_EntityProperty
getValidateRuleOne() Возвращает конкретное правило валидации ModuleProperty_EntityProperty
getValidateRules() Возвращает правила валидации поля ModuleProperty_EntityProperty
getValidateRulesEscape() Возвращает экранированный список правил валидации ModuleProperty_EntityProperty
resetRelationsData() Сбрасывает данные необходимой связи EntityORM
setAncestors() Для сущности со связью RELATION_TYPE_TREE устанавливает предков EntityORM
setChildren() Для сущности со связью RELATION_TYPE_TREE устанавливает потомков EntityORM
setDescendants() Для сущности со связью RELATION_TYPE_TREE устанавливает потомков EntityORM
setParams() Устанавливает список дополнительных параметров поля ModuleProperty_EntityProperty
setParent() Для сущности со связью RELATION_TYPE_TREE устанавливает предка EntityORM
setValidateRules() Устанавливает правила валидации поля ModuleProperty_EntityProperty

Protected Methods

Hide inherited methods

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

Property Details

aRelations property
protected $aRelations;

aValidateRules property
protected $aValidateRules;

Method Details

ValidateCheckCode() method
public void ValidateCheckCode()
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#74 (show)
public function ValidateCheckCode()
{
    if (
$oProperty $this->Property_GetPropertyByTargetTypeAndCode($this->getTargetType(), $this->getCode())) {
        if (
$this->getId() != $oProperty->getId()) {
            return 
'Код поля должен быть уникальным';
        }
    }
    return 
true;
}

ValidateCheckDescription() method
public void ValidateCheckDescription()
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#90 (show)
public function ValidateCheckDescription()
{
    
$this->setDescription(htmlspecialchars($this->getDescription()));
    return 
true;
}

ValidateCheckParamsRaw() method
public void ValidateCheckParamsRaw()
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#114 (show)
public function ValidateCheckParamsRaw()
{
    
$aParamsRaw $this->getParamsRaw();
    
/**
     * Валидация зависит от типа
     */
    
$oValue Engine::GetEntity('ModuleProperty_EntityValue', array(
            
'property_type' => $this->getType(),
            
'property_id'   => $this->getId(),
            
'target_type'   => $this->getTargetType(),
            
'target_id'     => $this->getId()
        ));
    
$oValueType $oValue->getValueTypeObject();
    
$aParams $oValueType->prepareParamsRaw($aParamsRaw);
    
$this->setParams($aParams);
    return 
true;
}

ValidateCheckTitle() method
public void ValidateCheckTitle()
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#84 (show)
public function ValidateCheckTitle()
{
    
$this->setTitle(htmlspecialchars($this->getTitle()));
    return 
true;
}

ValidateCheckType() method
public void ValidateCheckType()
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#66 (show)
public function ValidateCheckType()
{
    if (
$this->Property_IsAllowPropertyType($this->getType())) {
        return 
true;
    }
    return 
'Неверный тип поля';
}

ValidateCheckValidateRulesRaw() method
public void ValidateCheckValidateRulesRaw()
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#96 (show)
public function ValidateCheckValidateRulesRaw()
{
    
$aRulesRaw $this->getValidateRulesRaw();
    
/**
     * Валидация зависит от типа
     */
    
$oValue Engine::GetEntity('ModuleProperty_EntityValue', array(
            
'property_type' => $this->getType(),
            
'property_id'   => $this->getId(),
            
'target_type'   => $this->getTargetType(),
            
'target_id'     => $this->getId()
        ));
    
$oValueType $oValue->getValueTypeObject();
    
$aRules $oValueType->prepareValidateRulesRaw($aRulesRaw);
    
$this->setValidateRules($aRules);
    return 
true;
}

beforeDelete() method
protected bool beforeDelete()
{return} bool
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#168 (show)
protected function beforeDelete()
{
    if (
$bResult parent::beforeDelete()) {
        
/**
         * Сначала удаляем стандартные значения
         */
        
$this->Property_RemoveValueByPropertyId($this->getId());
        
/**
         * Удаляем значения тегов
         */
        
$this->Property_RemoveValueTagByPropertyId($this->getId());
        
/**
         * Удаляем значения селектов
         */
        
$this->Property_RemoveValueSelectByPropertyId($this->getId());
        
/**
         * Удаляем сами варианты селектов
         */
        
$this->Property_RemoveSelectByPropertyId($this->getId());
    }
    return 
$bResult;
}

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

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

            
$oValue Engine::GetEntity('ModuleProperty_EntityValue', array(
                    
'property_type' => $this->getType(),
                    
'property_id'   => $this->getId(),
                    
'target_type'   => $this->getTargetType(),
                    
'target_id'     => $this->getId()
                ));
            
$oValueType $oValue->getValueTypeObject();
            
/**
             * Выставляем дефолтные значения параметров
             */
            
$this->setParams($oValueType->getParamsDefault());
            
/**
             * Выставляем дефолтные значения параметров валидации
             */
            
$this->setValidateRules($oValueType->getValidateRulesDefault());
        }
    }
    return 
$bResult;
}

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

getParam() method
public null getParam($sName $sName)
$sName $sName
{return} null
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#286 (show)
public function getParam($sName)
{
    
$aParams $this->getParams();
    return isset(
$aParams[$sName]) ? $aParams[$sName] : null;
}

Возвращает конкретный параметр поля

getParams() method
public array|mixed getParams()
{return} array|mixed
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#248 (show)
public function getParams()
{
    
$aData = @unserialize($this->_getDataOne('params'));
    if (!
$aData) {
        
$aData = array();
    }
    return 
$aData;
}

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

getParamsEscape() method
public array getParamsEscape()
{return} array
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#262 (show)
public function getParamsEscape()
{
    
$aParams $this->getParams();
    
func_htmlspecialchars($aParams);
    return 
$aParams;
}

Возвращает экранированный список параметров

getSaveFileDir() method
public void getSaveFileDir($sPostfix='')
$sPostfix
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#325 (show)
public function getSaveFileDir($sPostfix '')
{
    
$sPostfix trim($sPostfix'/');
    return 
Config::Get('path.uploads.base') . '/property/' $this->getTargetType() . '/' $this->getType() . '/' date('Y/m/d/H/') . ($sPostfix "{$sPostfix}/" '');
}

getTypeTitle() method
public mixed getTypeTitle()
{return} mixed
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#317 (show)
public function getTypeTitle()
{
    
/**
     * TODO: использовать текстовку из языкового
     */
    
return $this->getType();
}

Возвращает описание типа поля

getUrlAdminRemove() method
public string getUrlAdminRemove()
{return} string
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#307 (show)
public function getUrlAdminRemove()
{
    return 
Router::GetPath('admin/properties/' $this->getTargetType() . '/remove/' $this->getId());
}

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

getUrlAdminUpdate() method
public string getUrlAdminUpdate()
{return} string
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#297 (show)
public function getUrlAdminUpdate()
{
    return 
Router::GetPath('admin/properties/' $this->getTargetType() . '/update/' $this->getId());
}

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

getValidateRuleOne() method
public null|mixed getValidateRuleOne(string $sRule)
$sRule string
{return} null|mixed
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#224 (show)
public function getValidateRuleOne($sRule)
{
    
$aData $this->getValidateRules();
    if (isset(
$aData[$sRule])) {
        return 
$aData[$sRule];
    }
    return 
null;
}

Возвращает конкретное правило валидации

getValidateRules() method
public array getValidateRules()
{return} array
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#196 (show)
public function getValidateRules()
{
    
$aData = @unserialize($this->_getDataOne('validate_rules'));
    if (!
$aData) {
        
$aData = array();
    }
    return 
$aData;
}

Возвращает правила валидации поля

getValidateRulesEscape() method
public array getValidateRulesEscape()
{return} array
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#210 (show)
public function getValidateRulesEscape()
{
    
$aRules $this->getValidateRules();
    
func_htmlspecialchars($aRules);
    return 
$aRules;
}

Возвращает экранированный список правил валидации

setParams() method
public void setParams($aParams $aParams)
$aParams $aParams
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#274 (show)
public function setParams($aParams)
{
    
$this->_aData['params'] = @serialize($aParams);
}

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

setValidateRules() method
public void setValidateRules(array $aRules)
$aRules array
Source Code: /application/classes/modules/property/entity/Property.entity.class.php#238 (show)
public function setValidateRules($aRules)
{
    
$this->_aData['validate_rules'] = @serialize($aRules);
}

Устанавливает правила валидации поля