本文整理汇总了PHP中E::IsUser方法的典型用法代码示例。如果您正苦于以下问题:PHP E::IsUser方法的具体用法?PHP E::IsUser怎么用?PHP E::IsUser使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::IsUser方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: EventWallAdd
/**
* Добавление записи на стену
*/
public function EventWallAdd()
{
// * Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json');
// * Пользователь авторизован?
if (!E::IsUser()) {
return parent::EventNotFound();
}
$xResult = E::Module('PluginMagicrules\\Rule')->CheckRuleAction('create_wall', E::User());
if ($xResult === true) {
return parent::EventWallAdd();
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('plugin.magicrules.check_rule_action_error'), E::ModuleLang()->Get('attention'));
return Router::Action('error');
}
}
示例2: CodeHook
public function CodeHook()
{
// Если пользоватль авторизован и у него не заполнено поле о себе, то
if (E::IsUser() && trim(E::User()->getProfileAbout()) == '') {
// Получим меню пользователя
/** @var ModuleMenu_EntityMenu $oMenu */
$oMenu = E::ModuleMenu()->GetMenu('user');
// Проверим, может в этой теме меню не объектное
if ($oMenu && !$oMenu->GetItemById('plugin_menutest_my_menu')) {
// Создадим элемент меню
$oMenuItem = E::ModuleMenu()->CreateMenuItem('plugin_menutest_my_menu', array('text' => '{{plugin.menutest.empty_about}}', 'link' => E::User()->getProfileUrl() . 'settings/', 'display' => array('not_event' => array('settings')), 'options' => array('class' => 'btn right create')));
// Добавим в меню
$oMenu->AddItem('first', $oMenuItem);
// Сохраним
E::ModuleMenu()->SaveMenu($oMenu);
}
}
}
示例3: EventVoteUser
/**
* @return string|void
*/
protected function EventVoteUser()
{
// * Пользователь авторизован?
if (!E::IsUser()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return;
}
$xResult = E::Module('PluginMagicrules\\Rule')->CheckRuleAction('vote_user', E::User(), array('vote_value' => (int) $this->getPost('value')));
if (true === $xResult) {
return parent::EventVoteUser();
} else {
if (is_string($xResult)) {
E::ModuleMessage()->AddErrorSingle($xResult, E::ModuleLang()->Get('attention'));
return Router::Action('error');
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('plugin.magicrules.check_rule_action_error'), E::ModuleLang()->Get('attention'));
return Router::Action('error');
}
}
}
示例4: CodeHook
/**
* Метод, который вызывается после создания меню
*/
public function CodeHook()
{
// Получим результат выполнения метода-источника хука
/** @var ModuleMenu_EntityMenu $oMenu */
$oMenu = $this->GetSourceResult();
// Убеждаемся, что было создано нужное нам меню - меню пользователя
if ($oMenu && $oMenu->getId() == 'user') {
// Если пользователь авторизован и у него не заполнено поле о себе, то
if (E::IsUser() && trim(E::User()->getProfileAbout()) == '') {
// Проверим, есть ли в меню нужный элемент
if (!$oMenu->GetItemById('plugin.menutest.my_menu')) {
// Создадим элемент меню
$oMenuItem = E::ModuleMenu()->CreateMenuItem('plugin.menutest.my_menu', array('text' => '{{plugin.menutest.empty_about}}', 'link' => E::User()->getProfileUrl() . 'settings/', 'display' => array('not_event' => array('settings')), 'options' => array('class' => 'btn right create')));
// Добавим в меню
$oMenu->AddItem($oMenuItem, 'first');
// Сохраним
E::ModuleMenu()->SaveMenu($oMenu);
}
}
}
}
示例5: GetNamedFilter
/**
* Return filter for topic list by name and params
*
* @param string $sFilterName
* @param array $aParams
*
* @return array
*/
public function GetNamedFilter($sFilterName, $aParams = array())
{
$aFilter = $this->GetTopicsFilter();
switch ($sFilterName) {
case 'good':
// Filter for good topics
$aFilter['topic_rating'] = array('value' => empty($aParams['rating']) ? 0 : intval($aParams['rating']), 'type' => 'top', 'publish_index' => 1);
break;
case 'bad':
// Filter for good topics
$aFilter['topic_rating'] = array('value' => empty($aParams['rating']) ? 0 : intval($aParams['rating']), 'type' => 'down', 'publish_index' => 1);
break;
case 'new':
// Filter for new topics
$sDate = date('Y-m-d H:00:00', time() - Config::Get('module.topic.new_time'));
$aFilter['topic_new'] = $sDate;
break;
case 'new_all':
// Filter for ALL new topics
// Nothing others
break;
case 'discussed':
//
if (!empty($aParams['period'])) {
if (is_numeric($aParams['period'])) {
// количество последних секунд
$sPeriod = date('Y-m-d H:00:00', time() - intval($aParams['period']));
} else {
$sPeriod = $aParams['period'];
}
$aFilter['topic_date_more'] = $sPeriod;
}
if (!isset($aFilter['order'])) {
$aFilter['order'] = array();
}
$aFilter['order'][] = 't.topic_count_comment DESC';
$aFilter['order'][] = 't.topic_date_show DESC';
$aFilter['order'][] = 't.topic_id DESC';
break;
case 'top':
if (!empty($aParams['period'])) {
if (is_numeric($aParams['period'])) {
// количество последних секунд
$sPeriod = date('Y-m-d H:00:00', time() - intval($aParams['period']));
} else {
$sPeriod = $aParams['period'];
}
$aFilter['topic_date_more'] = $sPeriod;
}
if (!isset($aFilter['order'])) {
$aFilter['order'] = array();
}
$aFilter['order'][] = 't.topic_rating DESC';
$aFilter['order'][] = 't.topic_date_show DESC';
$aFilter['order'][] = 't.topic_id DESC';
break;
default:
// Nothing others
}
if (!empty($aParams['blog_id'])) {
$aFilter['blog_id'] = intval($aParams['blog_id']);
} else {
$aFilter['blog_type'] = empty($aParams['personal']) ? E::ModuleBlog()->GetOpenBlogTypes() : 'personal';
// If a user is authorized then adds blogs on which it is subscribed
if (E::IsUser() && !empty($aParams['accessible']) && empty($aParams['personal'])) {
$aOpenBlogs = E::ModuleBlog()->GetAccessibleBlogsByUser(E::User());
if (count($aOpenBlogs)) {
$aFilter['blog_type']['*'] = $aOpenBlogs;
}
}
}
if (isset($aParams['personal']) && $aParams['personal'] === false && $aFilter['blog_type'] && is_array($aFilter['blog_type'])) {
if (false !== ($iKey = array_search('personal', $aFilter['blog_type']))) {
unset($aFilter['blog_type'][$iKey]);
}
}
if (!empty($aParams['topic_type'])) {
$aFilter['topic_type'] = $aParams['topic_type'];
}
if (!empty($aParams['user_id'])) {
$aFilter['user_id'] = $aParams['user_id'];
}
if (isset($aParams['topic_published'])) {
$aFilter['topic_publish'] = $aParams['topic_published'] ? 1 : 0;
}
return $aFilter;
}
示例6: smarty_function_img
/**
* Выводит изображение и прикрепляет его ко временному объекту
*
* @param $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_function_img($aParams, &$oSmarty = NULL)
{
// Пропущен тип объекта
if (!isset($aParams['attr']['target-type'])) {
trigger_error("img: missing 'target-type' parameter", E_USER_WARNING);
return '';
}
// Пропущен идентификатор объекта
if (!isset($aParams['attr']['target-id'])) {
trigger_error("img: missing 'target-id' parameter", E_USER_WARNING);
return '';
}
// Получим тип объекта
$sTargetType = $aParams['attr']['target-type'];
unset($aParams['attr']['target-type']);
// Получим ид объекта
$iTargetId = intval($aParams['attr']['target-id']);
unset($aParams['attr']['target-id']);
// Получим ид объекта
$sCrop = isset($aParams['attr']['crop']) ? $aParams['attr']['crop'] : FALSE;
unset($aParams['attr']['crop']);
// Получим изображение по временному ключу, или создадим этот ключ
if (($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && E::IsUser()) {
// Продлим куку
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, $sTargetTmp, 'P1D', FALSE);
// Получим предыдущее изображение и если оно было, установим в качестве текущего
// Получим и удалим все ресурсы
$aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
if ($aMresourceRel) {
/** @var ModuleMresource_EntityMresource $oResource */
$oMresource = array_shift($aMresourceRel);
if ($oMresource) {
if ($sCrop) {
$aParams['attr']['src'] = E::ModuleUploader()->ResizeTargetImage($oMresource->GetUrl(), $sCrop);
} else {
$aParams['attr']['src'] = $oMresource->GetUrl();
}
$oSmarty->assign("bImageIsTemporary", TRUE);
}
}
} else {
// Куки нет, это значит, что пользователь первый раз создает этот тип
// и старой картинки просто нет
if ($iTargetId == '0') {
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, F::RandomStr(), 'P1D', FALSE);
} else {
E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
$sImage = E::ModuleUploader()->GetTargetImageUrl($sTargetType, $iTargetId, $sCrop);
if ($sImage) {
$aParams['attr']['src'] = $sImage;
$oSmarty->assign("bImageIsTemporary", TRUE);
}
}
}
// Формируем строку атрибутов изображения
$sAttr = '';
if (isset($aParams['attr']) && is_array($aParams['attr'])) {
foreach ($aParams['attr'] as $sAttrName => $sAttrValue) {
$sAttr .= ' ' . $sAttrName . '="' . $sAttrValue . '"';
}
}
// Сформируем тег изображения
$sImageTag = '<img ' . $sAttr . '/>';
return $sImageTag;
}
示例7: CountMessages
/**
* Возвращает количество сообщений для пользователя
*
* @param bool $sTemplate
* @return int|mixed|string
*/
public function CountMessages($sTemplate = false)
{
if (!E::IsUser()) {
return '';
}
$sKeyString = 'menu_count_messages_' . E::UserId() . '_' . (string) $sTemplate;
if (FALSE === ($sData = E::ModuleCache()->GetTmp($sKeyString))) {
$iValue = (int) $this->CountTrack() + (int) $this->NewTalk();
if ($sTemplate && $iValue) {
$sData = str_replace('{{count_messages}}', $iValue, $sTemplate);
} else {
$sData = $iValue ? $iValue : '';
}
E::ModuleCache()->SetTmp($sData, $sKeyString);
}
return $sData;
}
示例8: EventReminder
/**
* Обработка напоминания пароля, подтверждение смены пароля
*
* @return string|null
*/
protected function EventReminder()
{
if (E::IsUser()) {
// Для авторизованного юзера восстанавливать нечего
Router::Location('/');
} else {
// Устанавливаем title страницы
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('password_reminder'));
$this->_eventRecovery(false);
}
}
示例9: array
*/
$config['data']['user'] = array('list' => array('userbar' => array('text' => array('user_name' => array(), 'count_messages' => array($sTemplate = '<span class="badge badge-danger badge-mail-counter">+{{count_messages}}</span>'), ' <span class="caret"></span>'), 'options' => array('class' => 'dropdown', 'link_class' => 'dropdown-toggle user-button', 'image_url' => array('user_avatar_url' => array('32x32crop')), 'image_title' => array('user_name'), 'image_class' => 'user', 'link_data' => array('toggle' => 'dropdown', 'role' => 'button', 'target' => '#'), 'data' => array('hidden-class' => 'btn'))), 'talk' => FALSE));
/**
* Меню пользователя + experience
*/
$config['data']['toolbar_user'] = array('init' => array('fill' => array('list' => array('*'))), 'description' => '{{menu_user_description}}', 'list' => array('userbar' => array('text' => array('user_name' => array(), 'count_messages' => array('<span class="badge badge-danger badge-mail-counter">+{{count_messages}}</span>')), 'link' => E::User()->getProfileUrl(), 'options' => array('image_url' => array('user_avatar_url' => array('32x32crop'))))));
/**
* Подменю пользователя + experience
*/
$config['data']['toolbar_userbar'] = array('init' => array('fill' => array('list' => array('*'))), 'description' => '{{menu_toolbar_userbar_description}}', 'class' => 'dropdown-menu dropdown-user-menu animated fadeIn', 'list' => array('user' => array('text' => '<span><i class="fa fa-user"></i></span><span>{{user_menu_profile}}</span>', 'link' => E::User()->getProfileUrl(), 'options' => array('class' => 'fixed-item')), 'favourites' => array('text' => '<span><i class="fa fa-star"></i></span><span>{{user_menu_profile_favourites}}</span>', 'link' => E::User()->getProfileUrl() . 'favourites/topics/', 'options' => array('class' => 'fixed-item')), 'talk' => array('text' => array('<span><i class="fa fa-envelope"></i></span><span>{{user_privat_messages}}</span>', ' <span class="new-messages">', 'new_talk_string' => array(), '</span>'), 'link' => Router::GetPath('talk'), 'options' => array('link_id' => 'new_messages', 'class' => 'fixed-item')), 'settings' => array('text' => '<span><i class="fa fa-cog"></i></span><span>{{user_settings}}</span>', 'link' => '___path.root.url___/settings/', 'options' => array('class' => 'fixed-item')), 'toolbar_userbar_item' => '', 'logout' => array('text' => '<span><i class="fa fa-sign-out"></i></span><span>{{exit}}</span>', 'link' => Router::GetPath('login') . 'exit/?security_key=' . E::Security_GetSecurityKey(), 'options' => array('class' => 'fixed-item'))));
/**
* Подменю пользователя + experience
*/
$config['data']['userbar'] = array('class' => 'dropdown-menu dropdown-user-menu animated fadeIn', 'list' => array('pre' => array('text' => FALSE, 'link' => FALSE, 'options' => array('class' => 'user_activity_items'), 'submenu' => 'userinfo'), 'user' => array('text' => '<i class="fa fa-user"></i> {{user_menu_profile}}', 'link' => E::User()->getProfileUrl()), 'create' => array('text' => '<i class="fa fa-pencil"></i> {{block_create}}', 'link' => '#', 'options' => array('data' => array('toggle' => 'modal', 'target' => '#modal-write'))), 'talk' => array('text' => array('<i class="fa fa-envelope-o"></i> {{user_privat_messages}}', ' <span class="new-messages">', 'new_talk_string' => array(), '</span>'), 'link' => Router::GetPath('talk'), 'options' => array('link_id' => 'new_messages')), 'wall' => array('text' => '<i class="fa fa-bars"></i> {{user_menu_profile_wall}}', 'link' => E::User()->getProfileUrl() . 'wall/'), 'publication' => array('text' => '<i class="fa fa-file-o"></i> {{user_menu_publication}}', 'link' => E::User()->getProfileUrl() . 'created/topics/'), 'favourites' => array('text' => '<i class="fa fa-star-o"></i> {{user_menu_profile_favourites}}', 'link' => E::User()->getProfileUrl() . 'favourites/topics/'), 'settings' => array('text' => '<i class="fa fa-cogs"></i> {{user_settings}}', 'link' => '___path.root.url___/settings/'), 'userbar_item' => '', 'logout' => array('text' => '<i class="fa fa-sign-out"></i> {{exit}}', 'link' => Router::GetPath('login') . 'exit/?security_key=' . E::Security_GetSecurityKey())));
}
if (E::IsUser()) {
$config['data']['userinfo'] = array('init' => array('fill' => array('list' => array('*'))), 'description' => 'Индикаторы пользователя', 'list' => array('user_rating' => array('text' => array('user_rating' => array('<i class="fa fa-bar-chart-o"></i>', 'negative')), 'link' => E::User()->getProfileUrl(), 'options' => array('class' => 'menu-item-user-rating')), 'user_comments' => array('text' => array('count_track' => array('<i class="fa fa-bullhorn"></i>')), 'link' => Router::GetPath('feed') . 'track/', 'options' => array('class' => 'menu-item-user-comments')), 'user_mails' => array('text' => array('new_talk_string' => array('<i class="fa fa-envelope-o"></i>')), 'link' => Router::GetPath('talk'), 'options' => array('class' => 'menu-item-user-talks'))));
}
/**
* Меню топиков
*/
C::Set('menu.data.topics.discussed.text', array('{{blog_menu_all_discussed}}', ' <i class="caret"></i>'));
$config['data']['topics'] = array('class' => 'menu-topics', 'list' => array('good' => array('active' => array('topic_kind' => array('good')), 'options' => array('class' => 'menu-topics-good')), 'new' => array('text' => array('{{blog_menu_all_new}}', 'new_topics_count' => array('red')), 'options' => array('class' => 'menu-topics-new', 'link_title' => '{{blog_menu_top_period_24h}}')), 'newall' => array('options' => array('class' => 'menu-topics-all', 'link_title' => '{{blog_menu_top_period_24h}}')), 'feed' => array('options' => array('class' => 'menu-topics-feed role-guest-hide')), 'discussed' => array('text' => array('{{blog_menu_all_discussed}}', ' <i class="caret"></i>'), 'submenu' => 'discussed', 'options' => array('class' => 'dropdown menu-topics-discussed', 'link_data' => array('toggle' => 'dropdown')))));
if (C::Get('rating.enabled')) {
$config['data']['topics']['list']['top'] = array('text' => array('{{blog_menu_all_top}}', ' <i class="caret"></i>'), 'submenu' => 'top', 'options' => array('class' => 'dropdown menu-topics-top', 'link_data' => array('toggle' => 'dropdown')));
}
/**
* Подменю обсуждаемых
*/
$config['data']['discussed'] = array('class' => 'dropdown-menu dropdown-content-menu animated fadeIn');
if (C::Get('rating.enabled')) {
示例10: GetTopicsPageByType
/**
* Получает топики пользователя с картинками
*
* @param int $iUserId
* @param string $sType
* @param int $iPage
* @param int $iPerPage
*
* @return array
*/
public function GetTopicsPageByType($iUserId, $sType, $iPage, $iPerPage)
{
$iCount = 0;
$aFilter = array('user_id' => $iUserId, 'mresource_type' => ModuleMresource::TYPE_IMAGE | ModuleMresource::TYPE_PHOTO | ModuleMresource::TYPE_PHOTO_PRIMARY, 'target_type' => array('photoset', 'topic'));
if (E::IsUser() && E::User() !== $iUserId) {
// Если текущий юзер не совпадает с запрашиваемым, то получаем список доступных блогов
$aFilter['blogs_id'] = E::ModuleBlog()->GetAccessibleBlogsByUser(E::User());
// И топики должны быть опубликованы
$aFilter['topic_publish'] = 1;
}
if (!E::IsUser()) {
// Если юзер не авторизован, то считаем все доступные для индексации топики
$aFilter['topic_index_ignore'] = 0;
}
$aFilter['topic_type'] = $sType;
$aTopicInfo = $this->oMapper->GetTopicInfo($aFilter, $iCount, $iPage, $iPerPage);
if ($aTopicInfo) {
$aFilter = array('topic_id' => array_keys($aTopicInfo), 'topic_type' => $sType);
// Результат в формате array('collection'=>..., 'count'=>...)
$aResult = E::ModuleTopic()->GetTopicsByFilter($aFilter, 1, count($aTopicInfo));
if ($aResult) {
/** @var ModuleTopic_EntityTopic $oTopic */
foreach ($aResult['collection'] as $sTopicId => $oTopic) {
$oTopic->setImagesCount($aTopicInfo[$sTopicId]);
$aResult['collection'][$sTopicId] = $oTopic;
}
$aResult['count'] = $iCount;
// total number of topics with images
}
return $aResult;
}
return array('collection' => array(), 'count' => 0);
}
示例11: EventImageManagerLoadImages
/**
* Загрузка страницы картинок
*/
protected function EventImageManagerLoadImages()
{
E::ModuleSecurity()->ValidateSendForm();
// Менеджер изображений может запускаться в том числе и из админки
// Если передано название скина админки, то используем его, если же
// нет, то ту тему, которая установлена для сайта
if (($sAdminTheme = F::GetRequest('admin')) && E::IsAdmin()) {
C::Set('view.skin', $sAdminTheme);
}
// Получим идентификатор пользователя, изображения которого нужно загрузить
$iUserId = (int) F::GetRequest('profile', FALSE);
if ($iUserId && E::ModuleUser()->GetUserById($iUserId)) {
C::Set('menu.data.profile_images.uid', $iUserId);
} else {
// Только пользователь может смотреть своё дерево изображений
if (!E::IsUser()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
return;
}
$iUserId = E::UserId();
}
$sCategory = F::GetRequestStr('category', FALSE);
$iPage = intval(F::GetRequestStr('page', '1'));
$sTopicId = F::GetRequestStr('topic_id', FALSE);
$sTargetType = F::GetRequestStr('target');
if (!$sCategory) {
return;
}
$aTplVariables = array('sTargetType' => $sTargetType, 'sTargetId' => $sTopicId);
// Страница загрузки картинки с компьютера
if ($sCategory == 'insert-from-pc') {
$sImages = E::ModuleViewer()->Fetch('modals/insert_img/inject.pc.tpl', $aTplVariables);
E::ModuleViewer()->AssignAjax('images', $sImages);
return;
}
// Страница загрузки из интернета
if ($sCategory == 'insert-from-link') {
$sImages = E::ModuleViewer()->Fetch('modals/insert_img/inject.link.tpl', $aTplVariables);
E::ModuleViewer()->AssignAjax('images', $sImages);
return;
}
$sTemplateName = 'inject.images.tpl';
$aResources = array('collection' => array());
$iPagesCount = 0;
if ($sCategory == 'user') {
//ок
// * Аватар и фото пользователя
$aResources = E::ModuleMresource()->GetMresourcesByFilter(array('target_type' => array('profile_avatar', 'profile_photo'), 'user_id' => $iUserId), $iPage, Config::Get('module.topic.images_per_page'));
$sTemplateName = 'inject.images.user.tpl';
$iPagesCount = 0;
} elseif ($sCategory == '_topic') {
// * Конкретный топик
$oTopic = E::ModuleTopic()->GetTopicById($sTopicId);
if ($oTopic && ($oTopic->isPublished() || $oTopic->getUserId() == E::UserId()) && E::ModuleACL()->IsAllowShowBlog($oTopic->getBlog(), E::User())) {
$aResourcesId = E::ModuleMresource()->GetCurrentTopicResourcesId($iUserId, $sTopicId);
if ($aResourcesId) {
$aResources = E::ModuleMresource()->GetMresourcesByFilter(array('user_id' => $iUserId, 'mresource_id' => $aResourcesId), $iPage, Config::Get('module.topic.images_per_page'));
$aResources['count'] = count($aResourcesId);
$iPagesCount = ceil($aResources['count'] / Config::Get('module.topic.images_per_page'));
$aTplVariables['oTopic'] = $oTopic;
}
}
$sTemplateName = 'inject.images.tpl';
} elseif ($sCategory == 'talk') {
// * Письмо
/** @var ModuleTalk_EntityTalk $oTopic */
$oTopic = E::ModuleTalk()->GetTalkById($sTopicId);
if ($oTopic && E::ModuleTalk()->GetTalkUser($sTopicId, $iUserId)) {
$aResources = E::ModuleMresource()->GetMresourcesByFilter(array('user_id' => $iUserId, 'target_type' => 'talk', 'target_id' => $sTopicId), $iPage, Config::Get('module.topic.images_per_page'));
$aResources['count'] = E::ModuleMresource()->GetMresourcesCountByTargetIdAndUserId('talk', $sTopicId, $iUserId);
$iPagesCount = ceil($aResources['count'] / Config::Get('module.topic.images_per_page'));
$aTplVariables['oTopic'] = $oTopic;
}
$sTemplateName = 'inject.images.tpl';
} elseif ($sCategory == 'comments') {
// * Комментарии
$aResources = E::ModuleMresource()->GetMresourcesByFilter(array('user_id' => $iUserId, 'target_type' => array('talk_comment', 'topic_comment')), $iPage, Config::Get('module.topic.images_per_page'));
$aResources['count'] = E::ModuleMresource()->GetMresourcesCountByTargetAndUserId(array('talk_comment', 'topic_comment'), $iUserId);
$iPagesCount = ceil($aResources['count'] / Config::Get('module.topic.images_per_page'));
$sTemplateName = 'inject.images.tpl';
} elseif ($sCategory == 'current') {
//ок
// * Картинки текущего топика (текст, фотосет, одиночные картинки)
$aResourcesId = E::ModuleMresource()->GetCurrentTopicResourcesId($iUserId, $sTopicId);
if ($aResourcesId) {
$aResources = E::ModuleMresource()->GetMresourcesByFilter(array('user_id' => $iUserId, 'mresource_id' => $aResourcesId), $iPage, Config::Get('module.topic.images_per_page'));
$aResources['count'] = count($aResourcesId);
$iPagesCount = ceil($aResources['count'] / Config::Get('module.topic.images_per_page'));
}
$sTemplateName = 'inject.images.tpl';
} elseif ($sCategory == 'blog_avatar') {
// ок
// * Аватары созданных блогов
$aResources = E::ModuleMresource()->GetMresourcesByFilter(array('target_type' => 'blog_avatar', 'user_id' => $iUserId), $iPage, Config::Get('module.topic.group_images_per_page'));
$aResources['count'] = E::ModuleMresource()->GetMresourcesCountByTargetAndUserId('blog_avatar', $iUserId);
// Получим блоги
$aBlogsId = array();
//.........这里部分代码省略.........
示例12: CheckAccessAndGetTarget
/**
* Проверяет доступность того или иного целевого объекта, переопределяется
* плагинами. По умолчанию всё грузить запрещено.
* Если всё нормально и пользователю разрешено сюда загружать картинки,
* то метод возвращает целевой объект, иначе значение FALSE.
*
* @param string $sTarget
* @param int $iTargetId
*
* @return bool
*/
public function CheckAccessAndGetTarget($sTarget, $iTargetId = null)
{
// Проверяем право пользователя на прикрепление картинок к топику
if (mb_strpos($sTarget, 'single-image-uploader') === 0 || $sTarget == 'photoset') {
// Проверям, авторизован ли пользователь
if (!E::IsUser()) {
return FALSE;
}
// Топик редактируется
if ($oTopic = E::ModuleTopic()->GetTopicById($iTargetId)) {
if (!E::ModuleACL()->IsAllowEditTopic($oTopic, E::User())) {
return FALSE;
}
return $oTopic;
}
return TRUE;
}
// Загружать аватарки можно только в свой профиль
if ($sTarget == 'profile_avatar') {
if ($iTargetId && E::IsUser() && $iTargetId == E::UserId()) {
return E::User();
}
return FALSE;
}
// Загружать аватарки можно только в свой профиль
if ($sTarget == 'profile_photo') {
if ($iTargetId && E::IsUser() && $iTargetId == E::UserId()) {
return E::User();
}
return FALSE;
}
if ($sTarget == 'blog_avatar') {
/** @var ModuleBlog_EntityBlog $oBlog */
$oBlog = E::ModuleBlog()->GetBlogById($iTargetId);
if (!E::IsUser()) {
return false;
}
if (!$oBlog) {
// Блог еще не создан
return E::ModuleACL()->CanCreateBlog(E::User()) || E::IsAdminOrModerator();
}
if ($oBlog && (E::ModuleACL()->CheckBlogEditBlog($oBlog, E::User()) || E::IsAdminOrModerator())) {
return $oBlog;
}
return '';
}
if ($sTarget == 'topic') {
if (!E::IsUser()) {
return false;
}
/** @var ModuleTopic_EntityTopic $oTopic */
$oTopic = E::ModuleTopic()->GetTopicById($iTargetId);
if (!$oTopic) {
// Топик еще не создан
return TRUE;
}
if ($oTopic && (E::ModuleACL()->IsAllowEditTopic($oTopic, E::User()) || E::IsAdminOrModerator())) {
return $oTopic;
}
return '';
}
if ($sTarget == 'topic_comment') {
if (!E::IsUser()) {
return false;
}
/** @var ModuleComment_EntityComment $oComment */
$oComment = E::ModuleComment()->GetCommentById($iTargetId);
if (!$oComment) {
// Комментарий еще не создан
return TRUE;
}
if ($oComment && (E::ModuleACL()->CanPostComment(E::User(), $oComment->getTarget()) && E::ModuleAcl()->CanPostCommentTime(E::User()) || E::IsAdminOrModerator())) {
return $oComment;
}
return '';
}
if ($sTarget == 'talk_comment') {
if (!E::IsUser()) {
return false;
}
/** @var ModuleComment_EntityComment $oComment */
$oComment = E::ModuleComment()->GetCommentById($iTargetId);
if (!$oComment) {
// Комментарий еще не создан
return TRUE;
}
if ($oComment && (E::ModuleAcl()->CanPostTalkCommentTime(E::User()) || E::IsAdminOrModerator())) {
return $oComment;
}
//.........这里部分代码省略.........
示例13: smarty_function_imgs
/**
* Выводит изображение и прикрепляет его ко временному объекту
*
* @param $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_function_imgs($aParams, &$oSmarty = NULL)
{
// Пропущен тип объекта
if (!isset($aParams['target-type'])) {
trigger_error("img: missing 'target-type' parameter", E_USER_WARNING);
return '';
}
// Пропущен идентификатор объекта
if (!isset($aParams['target-id'])) {
trigger_error("img: missing 'target-id' parameter", E_USER_WARNING);
return '';
}
// Получим тип объекта
$sTargetType = $aParams['target-type'];
unset($aParams['target-type']);
// Получим ид объекта
$iTargetId = intval($aParams['target-id']);
unset($aParams['target-id']);
// Получим параметры обрезки объекта
$sCrop = isset($aParams['crop']) ? $aParams['crop'] : FALSE;
unset($aParams['crop']);
// Получим ид объекта
$sTemplate = isset($aParams['template']) ? $aParams['template'] : FALSE;
unset($aParams['template']);
// Получим изображение по временному ключу, или создадим этот ключ
$aParams['src'] = array();
if (($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && E::IsUser()) {
// Продлим куку
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, $sTargetTmp, 'P1D', FALSE);
} else {
// Куки нет, это значит, что пользователь первый раз создает этот тип
// и старой картинки просто нет
if ($iTargetId == '0') {
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, F::RandomStr(), 'P1D', FALSE);
} else {
E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
}
}
// Получим предыдущее изображение и если оно было, установим в качестве текущего
// Получим и удалим все ресурсы
$aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
if ($aMresourceRel && is_array($aMresourceRel)) {
/** @var ModuleMresource_EntityMresource $oResource */
foreach ($aMresourceRel as $oMresource) {
if ($sCrop) {
$aParams['src'][$oMresource->getMresourceId()] = array('url' => E::ModuleUploader()->ResizeTargetImage($oMresource->GetUrl(), $sCrop), 'cover' => $oMresource->IsCover());
} else {
$aParams['src'][$oMresource->getMresourceId()] = array('url' => $oMresource->GetUrl(), 'cover' => $oMresource->IsCover());
}
$oSmarty->assign("bHasImage", TRUE);
}
}
// Создадим массив картинок
$sItems = '';
if ($aParams['src']) {
foreach ($aParams['src'] as $sID => $aData) {
$sItems .= str_replace(array('ID', 'uploader_item_SRC', 'MARK_AS_PREVIEW'), array($sID, $aData['url'], $aData['cover'] ? E::ModuleLang()->Get('topic_photoset_is_preview') : E::ModuleLang()->Get('topic_photoset_mark_as_preview')), $sTemplate);
}
}
return $sItems;
}
示例14: isCondition
/**
* Условия показа виджета
*
* @return bool
*/
public function isCondition()
{
$bResult = $this->getProp('_is_condition');
if (is_null($bResult)) {
$bResult = true;
$sCondition = $this->GetCondition();
if (is_string($sCondition) && $sCondition > '') {
try {
extract($this->GetParams(), EXTR_SKIP);
$bResult = (bool) eval('return ' . $sCondition . ';');
} catch (Exception $oException) {
$bResult = false;
}
}
if ($bResult && ($sVisitors = $this->GetVisitors())) {
if ($sVisitors == 'users') {
$bResult = E::IsUser();
} elseif ($sVisitors == 'admins') {
$bResult = E::IsAdmin();
}
}
$this->setProp('_is_condition', $bResult);
}
return $bResult;
}
示例15: AddComment
/**
* Добавляет коммент
*
* @param ModuleComment_EntityComment $oComment Объект комментария
*
* @return bool|ModuleComment_EntityComment
*/
public function AddComment(ModuleComment_EntityComment $oComment)
{
if (Config::Get('module.comment.use_nested')) {
$iCommentId = $this->oMapper->AddCommentTree($oComment);
E::ModuleCache()->CleanByTags(array("comment_update"));
} else {
$iCommentId = $this->oMapper->AddComment($oComment);
}
if ($iCommentId) {
$oComment->setId($iCommentId);
if ($oComment->getTargetType() == 'topic') {
E::ModuleTopic()->RecalcCountOfComments($oComment->getTargetId());
}
// Освежим хранилище картинок
E::ModuleMresource()->CheckTargetTextForImages($oComment->getTargetType() . '_comment', $iCommentId, $oComment->getText());
if (E::IsUser()) {
// * Сохраняем дату последнего коммента для юзера
E::User()->setDateCommentLast(F::Now());
E::ModuleUser()->Update(E::User());
// чистим зависимые кеши
E::ModuleCache()->CleanByTags(array("comment_new", "comment_new_{$oComment->getTargetType()}", "comment_new_user_{$oComment->getUserId()}_{$oComment->getTargetType()}", "comment_new_{$oComment->getTargetType()}_{$oComment->getTargetId()}"));
} else {
// чистим зависимые кеши
E::ModuleCache()->CleanByTags(array("comment_new", "comment_new_{$oComment->getTargetType()}", "comment_new_{$oComment->getTargetType()}_{$oComment->getTargetId()}"));
}
return $oComment;
}
return false;
}