ModuleProperty_EntityValueTypeDate
Package | application.modules.property |
---|---|
Inheritance | class ModuleProperty_EntityValueTypeDate » ModuleProperty_EntityValueType » Entity » LsObject |
Since | 2.0 |
Source Code | /application/classes/modules/property/entity/ValueTypeDate.entity.class.php |
Объект управления типом date
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
_aBehaviors | Список поведений в виде готовых объектов, формируется автоматически | LsObject | |
_aData | array | Данные сущности, на этот массив мапятся методы set* и get* | Entity |
aBehaviors | array | Список поведений | LsObject |
aValidateErrors | array | Список ошибок валидации в разрезе полей, например | Entity |
aValidateRules | array | Список правил валидации полей | Entity |
oValue | ModuleProperty_EntityValueType | ||
sFormatDateInput | ModuleProperty_EntityValueTypeDate | ||
sPrimaryKey | null|string | Имя поля с первичным ключом в БД | Entity |
sValidateScenario | string | Сценарий валиадции полей | Entity |
Public Methods
Method | Description | Defined By |
---|---|---|
AddBehaviorHook() | Добавляет хук поведения | LsObject |
AttachBehavior() | Присоединяет поведение к объекту | LsObject |
DetachBehavior() | Отсоединяет поведение от объекта | LsObject |
GetBehavior() | Возвращает объект поведения по его имени | LsObject |
GetBehaviors() | Возвращает все объекты поведения | LsObject |
Init() | Метод инициализации сущности, вызывается при её создании | Entity |
RemoveBehaviorHook() | Удаляет хук поведения | LsObject |
RunBehaviorHook() | Запускает хук поведения на выполнение | LsObject |
_Validate() | Выполняет валидацию данных сущности | Entity |
__call() | Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля | Entity |
__clone() | При клонировании сбрасываем поведения | LsObject |
__construct() | Если передать в конструктор ассоциативный массив свойств и их значений, то они автоматом загрузятся в сущность | Entity |
__get() | Обработка доступа к объекты поведения | LsObject |
_addValidateError() | Добавляет для поля ошибку в список ошибок | Entity |
_clearValidateErrors() | Очищает список всех ошибок или для конкретного поля | Entity |
_createValidators() | Создает и возвращает список валидаторов для сущности | Entity |
_getData() | Получает массив данных сущности | Entity |
_getDataArray() | Рекурсивное преобразование объекта и вложенных объектов в массив | Entity |
_getDataOne() | Возвращает данные по конкретному полю | Entity |
_getPrimaryKey() | Получение первичного ключа сущности (ключ, а не значение!) | Entity |
_getPrimaryKeyValue() | Возвращает значение первичного ключа/поля | Entity |
_getValidateError() | Возвращает первую ошибку для поля или среди всех полей | Entity |
_getValidateErrors() | Возвращает список ошибок для всех полей или одного поля | Entity |
_getValidateRules() | Возвращает список правил для валидации | Entity |
_getValidateScenario() | Возвращает текущий сценарий валидации | Entity |
_getValidators() | Возвращает список валидаторов с учетом текущего сценария | Entity |
_hasValidateErrors() | Проверяет есть ли ошибки валидации | Entity |
_setData() | Устанавливает данные сущности | Entity |
_setDataSafe() | Устанавливает данные, но только те, которые есть в $this->aValidateRules | Entity |
_setValidateScenario() | Устанавливает сценарий валидации | Entity |
beforeSaveValue() | ModuleProperty_EntityValueType | |
getParamsDefault() | ModuleProperty_EntityValueTypeDate | |
getValidateRulesDefault() | ModuleProperty_EntityValueType | |
getValueForDisplay() | ModuleProperty_EntityValueTypeDate | |
getValueForForm() | ModuleProperty_EntityValueTypeDate | |
getValueObject() | ModuleProperty_EntityValueType | |
getValueTimeH() | ModuleProperty_EntityValueTypeDate | |
getValueTimeM() | ModuleProperty_EntityValueTypeDate | |
prepareParamsRaw() | ModuleProperty_EntityValueTypeDate | |
prepareValidateRulesRaw() | ModuleProperty_EntityValueTypeDate | |
removeValue() | ModuleProperty_EntityValueType | |
resetAllValue() | ModuleProperty_EntityValueType | |
setValue() | ModuleProperty_EntityValueTypeDate | |
setValueObject() | ModuleProperty_EntityValueType | |
validate() | ModuleProperty_EntityValueTypeDate |
Protected Methods
Method | Description | Defined By |
---|---|---|
PrepareBehaviors() | Инициализация поведений | LsObject |
validateStandart() | ModuleProperty_EntityValueType |
Property Details
sFormatDateInput
property
protected $sFormatDateInput;
Method Details
getParamsDefault()
method
public void getParamsDefault()
|
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#159 (show)
public function getParamsDefault()
{
return array(
'format_out' => 'Y-m-d H:i:s',
'use_time' => true,
);
}
getValueForDisplay()
method
public void getValueForDisplay()
|
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#33 (show)
public function getValueForDisplay()
{
$oValue = $this->getValueObject();
$oProperty = $oValue->getProperty();
return $oValue->getValueDate() ? date($oProperty->getParam('format_out'),
strtotime($oValue->getValueDate())) : '';
}
getValueForForm()
method
public void getValueForForm()
|
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#42 (show)
public function getValueForForm()
{
$oValue = $this->getValueObject();
$sDate = $oValue->getValueDate();
// TODO: нужен конвертор формата дат вида Y в yyyy для учета $this->sFormatDateInput
return $sDate ? date('d.m.Y', strtotime($sDate)) : '';
}
getValueTimeH()
method
public void getValueTimeH()
|
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#51 (show)
public function getValueTimeH()
{
$sDate = $this->getValueObject()->getValueDate();
return $sDate ? date('H', strtotime($sDate)) : '';
}
getValueTimeM()
method
public void getValueTimeM()
|
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#57 (show)
public function getValueTimeM()
{
$sDate = $this->getValueObject()->getValueDate();
return $sDate ? date('i', strtotime($sDate)) : '';
}
prepareParamsRaw()
method
public void prepareParamsRaw($aParamsRaw)
| ||
$aParamsRaw |
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#147 (show)
public function prepareParamsRaw($aParamsRaw)
{
$aParams = array();
$aParams['use_time'] = isset($aParamsRaw['use_time']) ? true : false;
if (isset($aParamsRaw['format_out'])) {
$aParams['format_out'] = $aParamsRaw['format_out'];
}
return $aParams;
}
prepareValidateRulesRaw()
method
public void prepareValidateRulesRaw($aRulesRaw)
| ||
$aRulesRaw |
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#137 (show)
public function prepareValidateRulesRaw($aRulesRaw)
{
$aRules = array();
$aRules['allowEmpty'] = isset($aRulesRaw['allowEmpty']) ? false : true;
$aRules['disallowFuture'] = isset($aRulesRaw['disallowFuture']) ? true : false;
$aRules['disallowPast'] = isset($aRulesRaw['disallowPast']) ? true : false;
return $aRules;
}
setValue()
method
public void setValue($mValue)
| ||
$mValue |
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#130 (show)
public function setValue($mValue)
{
$this->resetAllValue();
$oValue = $this->getValueObject();
$oValue->setValueDate($mValue ? $mValue : null);
}
validate()
method
public void validate()
|
Source Code: /application/classes/modules/property/entity/ValueTypeDate.entity.class.php#63 (show)
public function validate()
{
/**
* Данные поступают ввиде массива array( 'date'=>'..', 'time' => array( 'h' => '..', 'm' => '..' ) )
*/
$aValue = $this->getValueForValidate();
$this->setValueForValidateDate(isset($aValue['date']) ? $aValue['date'] : '');
/**
* Сначала проверяем корректность даты
* В инпуте дата идет в формате d.m.Y
*/
$mRes = $this->validateStandart('date', array('format' => $this->sFormatDateInput), 'value_for_validate_date');
if ($mRes === true) {
/**
* Теперь проверяем на требование указывать дату
*/
$iTimeH = 0;
$iTimeM = 0;
$oValueObject = $this->getValueObject();
$oProperty = $oValueObject->getProperty();
if ($oProperty->getParam('use_time')) {
$iTimeH = isset($aValue['time']['h']) ? $aValue['time']['h'] : 0;
$iTimeM = isset($aValue['time']['m']) ? $aValue['time']['m'] : 0;
if ($iTimeH < 0 or $iTimeH > 23) {
$iTimeH = 0;
}
if ($iTimeM < 0 or $iTimeM > 59) {
$iTimeM = 0;
}
}
/**
* Формируем полную дату
*/
if ($this->getValueForValidateDate()) {
$sTimeFull = strtotime($this->getValueForValidateDate()) + 60 * $iTimeM + 60 * 60 * $iTimeH;
/**
* Проверка на ограничение даты
*/
if ($oProperty->getValidateRuleOne('disallowFuture')) {
if ($sTimeFull > time()) {
return "{$oProperty->getTitle()}: дата не может быть в будущем";
}
}
/**
* Проверка на ограничения только если это новая запись, либо старая с изменениями
*/
if ($oValueObject->_isNew() or strtotime($oValueObject->getValueDate()) != $sTimeFull) {
if ($oProperty->getValidateRuleOne('disallowPast')) {
if ($sTimeFull < time()) {
return "{$oProperty->getTitle()}: дата не может быть в прошлом";
}
}
}
} else {
$sTimeFull = null;
}
/**
* Переопределяем результирующее значение
*/
$this->setValueForValidate($sTimeFull ? date('Y-m-d H:i:00', $sTimeFull) : null);
return true;
} else {
return $mRes;
}
}