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

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
aBehaviors array Список поведений LsObject
aTargetTypes ModulePoll
bIsInit bool Указывает на то, была ли проведенна инициализация модуля Module
oMapperORM MapperORM Объект маппера ORM ModuleORM
oUserCurrent ModuleUser_EntityUser|null Объект текущего пользователя ModulePoll

Public Methods

Hide inherited methods

MethodDescriptionDefined 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

Hide inherited methods

MethodDescriptionDefined 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($sTargetTypearray_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($sCookieKeynull, -1Config::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 объекта