ModulePoll
Package | application.modules.poll |
---|---|
Inheritance | class ModulePoll » ModuleORM » Module » LsObject |
Since | 2.0 |
Source Code | /application/classes/modules/poll/Poll.class.php |
Модуль опросов
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
_aBehaviors | Список поведений в виде готовых объектов, формируется автоматически | LsObject | |
aBehaviors | array | Список поведений | LsObject |
aTargetTypes | ModulePoll | ||
bIsInit | bool | Указывает на то, была ли проведенна инициализация модуля | Module |
oMapperORM | MapperORM | Объект маппера ORM | ModuleORM |
oUserCurrent | ModuleUser_EntityUser|null | Объект текущего пользователя | ModulePoll |
Public Methods
Method | Description | Defined By |
---|---|---|
AddBehaviorHook() | Добавляет хук поведения | LsObject |
AddTargetType() | Добавляет в разрешенные новый тип | ModulePoll |
AttachBehavior() | Присоединяет поведение к объекту | LsObject |
CheckTarget() | Проверка объекта target - владелец медиа | ModulePoll |
CheckTargetTopic() | Проверка владельца с типом "topic" | ModulePoll |
DeleteItemsByFilter() | Удаляет сущности по фильтру | ModuleORM |
DetachBehavior() | Отсоединяет поведение от объекта | LsObject |
GetAggregateFunctionByFilter() | Получить значение агрегирующей функции | ModuleORM |
GetBehavior() | Возвращает объект поведения по его имени | LsObject |
GetBehaviors() | Возвращает все объекты поведения | LsObject |
GetByFilter() | Получить сущность по фильтру | ModuleORM |
GetCountItemsByFilter() | Получить количество сущностей по фильтру | ModuleORM |
GetCountItemsByJoinEntity() | ModuleORM | |
GetItemsByArray() | Возвращает список сущностей по фильтру | ModuleORM |
GetItemsByFilter() | Получить список сущностей по фильтру | ModuleORM |
GetItemsByJoinEntity() | ModuleORM | |
GetPollItemsByTarget() | Возвращает список опросов для объекта | ModulePoll |
GetTargetTypeParams() | Возвращает парметры нужного типа | ModulePoll |
GetTargetTypes() | Возвращает список типов объектов | ModulePoll |
Init() | Инициализация | ModulePoll |
IsAllowTargetType() | Проверяет разрешен ли данный тип | ModulePoll |
LoadTree() | Для сущностей со связью RELATION_TYPE_TREE возвращает список сущностей в виде дерева | ModuleORM |
RemoveBehaviorHook() | Удаляет хук поведения | LsObject |
ReplaceTargetTmpById() | Заменяет временный идентификатор на необходимый ID объекта | ModulePoll |
RunBehaviorHook() | Запускает хук поведения на выполнение | LsObject |
SetInit() | Помечает модуль как инициализированный | Module |
Shutdown() | Метод срабатывает при завершении работы ядра | Module |
__call() | Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля. | ModuleORM |
__clone() | Блокируем копирование/клонирование объекта | Module |
__construct() | Конструктор, запускается автоматически при создании объекта | LsObject |
__get() | Обработка доступа к объекты поведения | LsObject |
buildTree() | Построение дерева | ModuleORM |
isInit() | Возвращает значение флага инициализации модуля | Module |
Protected Methods
Method | Description | Defined By |
---|---|---|
PrepareBehaviors() | Инициализация поведений | LsObject |
_AddEntity() | Добавление сущности в БД | ModuleORM |
_DeleteEntity() | Удаление сущности из БД | ModuleORM |
_GetAncestorsOfEntity() | Для сущности со связью RELATION_TYPE_TREE возвращает список всех предков | ModuleORM |
_GetChildrenOfEntity() | Для сущности со связью RELATION_TYPE_TREE возвращает список прямых потомков | ModuleORM |
_GetDescendantsOfEntity() | Для сущности со связью RELATION_TYPE_TREE возвращает список всех потомков | ModuleORM |
_GetParentOfEntity() | Для сущности со связью RELATION_TYPE_TREE возвращает предка | ModuleORM |
_LoadMapperORM() | Загрузка маппера ORM | ModuleORM |
_NormalizeEntityRootName() | Приводит название сущности к единому формату полного имени класса | ModuleORM |
_ReloadEntity() | Обновляет данные сущности из БД | ModuleORM |
_SaveEntity() | Сохранение сущности в БД | ModuleORM |
_ShowColumnsFrom() | Список полей сущности | ModuleORM |
_ShowPrimaryIndexFrom() | Primary индекс сущности | ModuleORM |
_UpdateEntity() | Обновление сущности в БД | ModuleORM |
_deleteManyToManyRelation() | Выполняет удаление всех связей many_to_many сущности | ModuleORM |
_setIndexesFromField() | Returns assotiative array, indexed by PRIMARY KEY or another field. | ModuleORM |
_setIndexesGroupField() | Возвращает сгруппированный массив по нужному полю | ModuleORM |
_setIndexesGroupJoinField() | Возвращает сгруппированный массив по нужному полю из данных таблицы связей | ModuleORM |
_updateManyToManyRelation() | Выполняет обновление связи many_to_many у сущности | ModuleORM |
Property Details
aTargetTypes
property
protected $aTargetTypes;
oUserCurrent
property
protected ModuleUser_EntityUser|null $oUserCurrent;
Объект текущего пользователя
Method Details
AddTargetType()
method
public bool AddTargetType(string $sTargetType, array $aParams=array (
))
| ||
$sTargetType | string | Тип |
$aParams | array | Параметры |
{return} | bool |
Source Code: /application/classes/modules/poll/Poll.class.php#69 (show)
public function AddTargetType($sTargetType, $aParams = array())
{
if (!array_key_exists($sTargetType, $this->aTargetTypes)) {
$this->aTargetTypes[$sTargetType] = $aParams;
return true;
}
return false;
}
Добавляет в разрешенные новый тип
CheckTarget()
method
public bool CheckTarget(string $sTargetType, int $iTargetId)
| ||
$sTargetType | string | Тип |
$iTargetId | int | ID владельца |
{return} | bool |
Source Code: /application/classes/modules/poll/Poll.class.php#110 (show)
public function CheckTarget($sTargetType, $iTargetId)
{
if (!$this->IsAllowTargetType($sTargetType)) {
return false;
}
$sMethod = 'CheckTarget' . func_camelize($sTargetType);
if (method_exists($this, $sMethod)) {
return $this->$sMethod($iTargetId);
}
return false;
}
Проверка объекта target - владелец медиа
CheckTargetTopic()
method
public bool CheckTargetTopic(int $iTargetId)
| ||
$iTargetId | int | ID владельца |
{return} | bool |
Source Code: /application/classes/modules/poll/Poll.class.php#180 (show)
public function CheckTargetTopic($iTargetId)
{
if ($oTopic = $this->Topic_GetTopicById($iTargetId)) {
if (!$oTopicType = $this->Topic_GetTopicType($oTopic->getType()) or !$oTopicType->getParam('allow_poll')) {
return false;
}
/**
* Проверяем права на редактирование топика
*/
if ($this->ACL_IsAllowEditTopic($oTopic, $this->oUserCurrent)) {
return true;
}
}
return false;
}
Проверка владельца с типом "topic" Название метода формируется автоматически
GetPollItemsByTarget()
method
public mixed GetPollItemsByTarget(string $sTargetType, string $sTargetId)
| ||
$sTargetType | string | |
$sTargetId | string | |
{return} | mixed |
Source Code: /application/classes/modules/poll/Poll.class.php#154 (show)
public function GetPollItemsByTarget($sTargetType, $sTargetId)
{
$aFilter = array(
'target_type' => $sTargetType,
'target_id' => $sTargetId,
'#with' => array('answers')
);
if ($this->oUserCurrent) {
$aFilter['#with']['vote_current'] = array('user_id' => $this->oUserCurrent->getId(),
'#value-default' => false
);
} else {
$aFilter['#with']['vote_current'] = array('#value-set' => false);
}
$aPollItems = $this->Poll_GetPollItemsByFilter($aFilter);
return $aPollItems;
}
Возвращает список опросов для объекта
GetTargetTypeParams()
method
public mixed GetTargetTypeParams(string $sTargetType)
| ||
$sTargetType | string | |
{return} | mixed |
Source Code: /application/classes/modules/poll/Poll.class.php#96 (show)
public function GetTargetTypeParams($sTargetType)
{
if ($this->IsAllowTargetType($sTargetType)) {
return $this->aTargetTypes[$sTargetType];
}
}
Возвращает парметры нужного типа
GetTargetTypes()
method
public array GetTargetTypes()
| ||
{return} | array |
Source Code: /application/classes/modules/poll/Poll.class.php#57 (show)
public function GetTargetTypes()
{
return $this->aTargetTypes;
}
Возвращает список типов объектов
Init()
method
public void Init()
|
Source Code: /application/classes/modules/poll/Poll.class.php#46 (show)
public function Init()
{
parent::Init();
$this->oUserCurrent = $this->User_GetUserCurrent();
}
Инициализация
IsAllowTargetType()
method
public bool IsAllowTargetType(string $sTargetType)
| ||
$sTargetType | string | Тип |
{return} | bool |
Source Code: /application/classes/modules/poll/Poll.class.php#84 (show)
public function IsAllowTargetType($sTargetType)
{
return in_array($sTargetType, array_keys($this->aTargetTypes));
}
Проверяет разрешен ли данный тип
ReplaceTargetTmpById()
method
public void ReplaceTargetTmpById(string $sTargetType, string $sTargetId, null|string $sTargetTmp=NULL)
| ||
$sTargetType | string | |
$sTargetId | string | |
$sTargetTmp | null|string | Если не задан, то берется их куки "poll_target_tmp_{$sTargetType}" |
Source Code: /application/classes/modules/poll/Poll.class.php#129 (show)
public function ReplaceTargetTmpById($sTargetType, $sTargetId, $sTargetTmp = null)
{
$sCookieKey = 'poll_target_tmp_' . $sTargetType;
if (is_null($sTargetTmp) and isset($_COOKIE[$sCookieKey])) {
$sTargetTmp = $_COOKIE[$sCookieKey];
setcookie($sCookieKey, null, -1, Config::Get('sys.cookie.path'), Config::Get('sys.cookie.host'));
}
if (is_string($sTargetTmp)) {
$aPollItems = $this->Poll_GetPollItemsByTargetTmpAndTargetType($sTargetTmp, $sTargetType);
foreach ($aPollItems as $oPoll) {
$oPoll->setTargetTmp(null);
$oPoll->setTargetId($sTargetId);
$oPoll->Update();
}
}
}
Заменяет временный идентификатор на необходимый ID объекта