当前位置: 首页>>代码示例>>PHP>>正文


PHP E::GetEntity方法代码示例

本文整理汇总了PHP中E::GetEntity方法的典型用法代码示例。如果您正苦于以下问题:PHP E::GetEntity方法的具体用法?PHP E::GetEntity怎么用?PHP E::GetEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在E的用法示例。


在下文中一共展示了E::GetEntity方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: Store

 /**
  * Saves file in storage
  *
  * @param string $sFile
  * @param string $sDestination
  *
  * @return bool|ModuleUploader_EntityItem
  */
 public function Store($sFile, $sDestination = null)
 {
     if (!$sDestination) {
         $oUser = E::ModuleUser()->GetUserCurrent();
         if (!$oUser) {
             return false;
         }
         $sDestination = E::ModuleUploader()->GetUserFileDir($oUser->getId());
     }
     if ($sDestination) {
         $sMimeType = ModuleImg::MimeType($sFile);
         $bIsImage = strpos($sMimeType, 'image/') === 0;
         $iUserId = E::UserId();
         $sExtension = F::File_GetExtension($sFile, true);
         if (substr($sDestination, -1) == '/') {
             $sDestinationDir = $sDestination;
         } else {
             $sDestinationDir = dirname($sDestination) . '/';
         }
         $sUuid = ModuleMresource::CreateUuid('file', $sFile, md5_file($sFile), $iUserId);
         $sDestination = $sDestinationDir . $sUuid . '.' . $sExtension;
         if ($sStoredFile = E::ModuleUploader()->Move($sFile, $sDestination, true)) {
             $oStoredItem = E::GetEntity('Uploader_Item', array('storage' => 'file', 'uuid' => $sUuid, 'original_filename' => basename($sFile), 'url' => $this->Dir2Url($sStoredFile), 'file' => $sStoredFile, 'user_id' => $iUserId, 'mime_type' => $sMimeType, 'is_image' => $bIsImage));
             return $oStoredItem;
         }
     }
     return false;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:36,代码来源:DriverFile.entity.class.php

示例2: GetSubscribeByTypeAndMail

 /**
  * Получение подписки по типу и емейлу
  *
  * @param string $sType    Тип
  * @param string $sMail    Емайл
  *
  * @return ModuleSubscribe_EntitySubscribe|null
  */
 public function GetSubscribeByTypeAndMail($sType, $sMail)
 {
     $sql = "SELECT * FROM ?_subscribe WHERE target_type = ? AND mail = ?";
     if ($aRow = $this->oDb->selectRow($sql, $sType, $sMail)) {
         return E::GetEntity('Subscribe', $aRow);
     }
     return null;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:16,代码来源:Subscribe.mapper.class.php

示例3: GetEventByTarget

 /**
  * Получает событие по типу и его ID
  *
  * @param string   $sEventType    Тип
  * @param int      $iTargetId     ID владельца события
  * @param int|null $iUserId       ID пользователя
  *
  * @return ModuleStream_EntityEvent
  */
 public function GetEventByTarget($sEventType, $iTargetId, $iUserId = null)
 {
     $sql = "SELECT * FROM\n\t\t\t\t\t?_stream_event\n\t\t\t\tWHERE target_id = ?d AND event_type = ? { AND user_id = ?d } ";
     $aRow = $this->oDb->selectRow($sql, $iTargetId, $sEventType, is_null($iUserId) ? DBSIMPLE_SKIP : $iUserId);
     if ($aRow) {
         return E::GetEntity('ModuleStream_EntityEvent', $aRow);
     }
     return null;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:18,代码来源:Stream.mapper.class.php

示例4: GetCaptcha

 /**
  * @param string $sKeyName
  *
  * @return ModuleCaptcha_EntityCaptcha
  */
 public function GetCaptcha($sKeyName = null)
 {
     /** @var ModuleCaptcha_EntityCaptcha $oCaptcha */
     $oCaptcha = E::GetEntity('Captcha_Captcha');
     if (!$sKeyName) {
         $sKeyName = $this->sKeyName;
     }
     E::ModuleSession()->Set($sKeyName, $oCaptcha->getKeyString());
     return $oCaptcha;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:15,代码来源:Captcha.class.php

示例5: GetSkinsList

 /**
  * Returns array of skin entities
  *
  * @param   array   $aFilter    - array('type' => 'site'|'admin')
  * @return  ModuleSkin_EntitySkin[]
  */
 public function GetSkinsList($aFilter = array())
 {
     if (is_null($this->aSkins)) {
         $aSkinList = array();
         if (isset($aFilter['dir'])) {
             $sSkinsDir = $aFilter['dir'];
         } else {
             $sSkinsDir = Config::Get('path.skins.dir');
         }
         if (isset($aFilter['name'])) {
             $sPattern = $sSkinsDir . $aFilter['name'];
         } else {
             $sPattern = $sSkinsDir . '*';
         }
         $aList = glob($sPattern, GLOB_ONLYDIR);
         if ($aList) {
             if (!isset($aFilter['type'])) {
                 $aFilter['type'] = '';
             }
             $sActiveSkin = Config::Get('view.skin');
             foreach ($aList as $sSkinDir) {
                 $sSkin = basename($sSkinDir);
                 $aData = array('id' => $sSkin, 'dir' => $sSkinDir);
                 $oSkinEntity = E::GetEntity('Skin', $aData);
                 $oSkinEntity->SetIsActive($oSkinEntity->GetId() == $sActiveSkin);
                 $aSkinList[$oSkinEntity->GetId()] = $oSkinEntity;
             }
         }
         $this->aSkins = $aSkinList;
     }
     if (!$aFilter || empty($aFilter['type'])) {
         $aResult = $this->aSkins;
     } else {
         $aResult = array();
         foreach ($this->aSkins as $sSkinName => $oSkinEntity) {
             if ($aFilter['type'] == $oSkinEntity->GetType()) {
                 $aResult[$sSkinName] = $oSkinEntity;
             }
         }
     }
     return $aResult;
 }
开发者ID:Azany,项目名称:altocms,代码行数:48,代码来源:Skin.class.php

示例6: SubmitAddField

 protected function SubmitAddField($oContentType)
 {
     // * Проверяем отправлена ли форма с данными
     if (!F::isPost('submit_field')) {
         return false;
     }
     // * Проверка корректности полей формы
     if (!$this->CheckFieldsField($oContentType)) {
         return false;
     }
     $oField = E::GetEntity('Topic_Field');
     $oField->setFieldType(F::GetRequest('field_type'));
     $oField->setContentId($oContentType->getContentId());
     $oField->setFieldName(F::GetRequest('field_name'));
     $oField->setFieldDescription(F::GetRequest('field_description'));
     $oField->setFieldRequired(F::GetRequest('field_required'));
     if (F::GetRequest('field_type') == 'select') {
         $oField->setOptionValue('select', F::GetRequest('field_values'));
     }
     $sFieldUniqueName = F::TranslitUrl(F::GetRequest('field_unique_name'));
     if (F::GetRequest('field_unique_name_translit')) {
         $sFieldUniqueName = F::TranslitUrl(F::GetRequest('field_name'));
     }
     $oField->setFieldUniqueName($sFieldUniqueName);
     try {
         if (E::ModuleTopic()->AddContentField($oField)) {
             E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('action.admin.contenttypes_success_fieldadd'), null, true);
             R::Location('admin/settings-contenttypes/edit/' . $oContentType->getContentId() . '/');
         }
     } catch (Exception $e) {
         // Если ошибка дублирования уникального ключа, то выводим соответствующее сообщение
         if (1062 == $e->getCode()) {
             E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('plugin.contentfieldsx.error_field_unique_name_duplicate', array('unique_name' => htmlspecialchars($sFieldUniqueName))), null, false);
         }
     }
     return false;
 }
开发者ID:shtrih,项目名称:altocms-plugin-contentfieldsx,代码行数:37,代码来源:ActionAdmin.class.php

示例7: GetUserChangemailByCodeTo

 /**
  * Возвращает объект смены емайла по коду подтверждения
  *
  * @param string $sCode Код подтверждения
  *
  * @return ModuleUser_EntityChangemail|null
  */
 public function GetUserChangemailByCodeTo($sCode)
 {
     $sql = "\n            SELECT *\n            FROM ?_user_changemail\n            WHERE code_to = ?\n            LIMIT 1\n            ";
     if ($aRow = $this->oDb->selectRow($sql, $sCode)) {
         return E::GetEntity('ModuleUser_EntityChangemail', $aRow);
     }
     return null;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:15,代码来源:User.mapper.class.php

示例8: Write

 /**
  * Запись события в ленту
  *
  * @param int    $iUserId       ID пользователя
  * @param string $sEventType    Тип события
  * @param int    $iTargetId     ID владельца
  * @param int    $iPublish      Статус
  *
  * @return bool
  */
 public function Write($iUserId, $sEventType, $iTargetId, $iPublish = 1)
 {
     $iPublish = (int) $iPublish;
     if (!$this->IsAllowEventType($sEventType)) {
         return false;
     }
     $aParams = $this->aEventTypes[$sEventType];
     if (isset($aParams['unique']) and $aParams['unique']) {
         // * Проверяем на уникальность
         /** @var ModuleStream_EntityEvent $oEvent */
         if ($oEvent = $this->GetEventByTarget($sEventType, $iTargetId)) {
             // * Событие уже было
             if ($oEvent->getPublish() != $iPublish) {
                 $oEvent->setPublish($iPublish);
                 $this->UpdateEvent($oEvent);
             }
             return true;
         }
     }
     if (isset($aParams['unique_user']) and $aParams['unique_user']) {
         // * Проверяем на уникальность для конкретного пользователя
         if ($oEvent = $this->GetEventByTarget($sEventType, $iTargetId, $iUserId)) {
             // * Событие уже было
             if ($oEvent->getPublish() != $iPublish) {
                 $oEvent->setPublish($iPublish);
                 $this->UpdateEvent($oEvent);
             }
             return true;
         }
     }
     if ($iPublish) {
         /**
          * Создаем новое событие
          */
         /** @var ModuleStream_EntityEvent $oEvent */
         $oEvent = E::GetEntity('Stream_Event');
         $oEvent->setEventType($sEventType);
         $oEvent->setUserId($iUserId);
         $oEvent->setTargetId($iTargetId);
         $oEvent->setDateAdded(date('Y-m-d H:i:s'));
         $oEvent->setPublish($iPublish);
         $this->AddEvent($oEvent);
     }
     return true;
 }
开发者ID:ZeoNish,项目名称:altocms,代码行数:55,代码来源:Stream.class.php

示例9: EventAjaxUserAdd

 public function EventAjaxUserAdd()
 {
     E::ModuleViewer()->SetResponseAjax('json');
     if ($this->IsPost()) {
         Config::Set('module.user.captcha_use_registration', false);
         $oUser = E::GetEntity('ModuleUser_EntityUser');
         $oUser->_setValidateScenario('registration');
         // * Заполняем поля (данные)
         $oUser->setLogin($this->GetPost('user_login'));
         $oUser->setMail($this->GetPost('user_mail'));
         $oUser->setPassword($this->GetPost('user_password'));
         $oUser->setPasswordConfirm($this->GetPost('user_password'));
         $oUser->setDateRegister(F::Now());
         $oUser->setIpRegister('');
         $oUser->setActivate(1);
         if ($oUser->_Validate()) {
             E::ModuleHook()->Run('registration_validate_after', array('oUser' => $oUser));
             $oUser->setPassword($oUser->getPassword(), true);
             if (E::ModuleUser()->Add($oUser)) {
                 E::ModuleHook()->Run('registration_after', array('oUser' => $oUser));
                 // Подписываем пользователя на дефолтные события в ленте активности
                 E::ModuleStream()->SwitchUserEventDefaultTypes($oUser->getId());
                 if ($this->IsPost('user_setadmin')) {
                     E::ModuleAdmin()->SetAdministrator($oUser->GetId());
                 }
             }
             E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('registration_ok'));
         } else {
             E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('error'));
             E::ModuleViewer()->AssignAjax('aErrors', $oUser->_getValidateErrors());
         }
     } else {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
     }
 }
开发者ID:ZeoNish,项目名称:altocms,代码行数:35,代码来源:ActionAdmin.class.php

示例10: CreateRssItem

 /**
  * Creates RSS item for the topic
  *
  * @return ModuleRss_EntityRssItem
  */
 public function CreateRssItem()
 {
     $aRssItemData = array('title' => $this->getTitle(), 'description' => $this->getText(), 'link' => $this->getUrl(), 'author' => $this->getUser() ? $this->getUser()->getMail() : '', 'guid' => $this->getUrlShort(), 'comments' => $this->getUrl() . '#comments', 'pub_date' => $this->getDateShow() ? date('r', strtotime($this->getDateShow())) : '');
     $oRssItem = E::GetEntity('ModuleRss_EntityRssItem', $aRssItemData);
     return $oRssItem;
 }
开发者ID:hard990,项目名称:altocms,代码行数:11,代码来源:Topic.entity.class.php

示例11: processTopicFields


//.........这里部分代码省略.........
                             if (!$iMaxFileSize || filesize($_FILES['fields_' . $oField->getFieldId()]['tmp_name']) <= $iMaxFileSize) {
                                 $aPathInfo = pathinfo($_FILES['fields_' . $oField->getFieldId()]['name']);
                                 if (!$aFileExtensions || in_array(strtolower($aPathInfo['extension']), $aFileExtensions)) {
                                     $sFileTmp = $_FILES['fields_' . $oField->getFieldId()]['tmp_name'];
                                     $sDirSave = Config::Get('path.uploads.root') . '/files/' . E::ModuleUser()->GetUserCurrent()->getId() . '/' . F::RandomStr(16);
                                     mkdir(Config::Get('path.root.dir') . $sDirSave, 0777, true);
                                     if (is_dir(Config::Get('path.root.dir') . $sDirSave)) {
                                         $sFile = $sDirSave . '/' . F::RandomStr(10) . '.' . strtolower($aPathInfo['extension']);
                                         $sFileFullPath = Config::Get('path.root.dir') . $sFile;
                                         if (copy($sFileTmp, $sFileFullPath)) {
                                             //удаляем старый файл
                                             if ($oTopic->getFieldFile($oField->getFieldId())) {
                                                 $sOldFile = Config::Get('path.root.dir') . $oTopic->getFieldFile($oField->getFieldId())->getFileUrl();
                                                 F::File_Delete($sOldFile);
                                             }
                                             $aFileObj = array();
                                             $aFileObj['file_hash'] = F::RandomStr(32);
                                             $aFileObj['file_name'] = E::ModuleText()->Parser($_FILES['fields_' . $oField->getFieldId()]['name']);
                                             $aFileObj['file_url'] = $sFile;
                                             $aFileObj['file_size'] = $_FILES['fields_' . $oField->getFieldId()]['size'];
                                             $aFileObj['file_extension'] = $aPathInfo['extension'];
                                             $aFileObj['file_downloads'] = 0;
                                             $sData = serialize($aFileObj);
                                             F::File_Delete($sFileTmp);
                                         }
                                     }
                                 } else {
                                     $sTypes = implode(', ', $aFileExtensions);
                                     E::ModuleMessage()->AddError(E::ModuleLang()->Get('topic_field_file_upload_err_type', array('types' => $sTypes)), null, true);
                                 }
                             } else {
                                 E::ModuleMessage()->AddError(E::ModuleLang()->Get('topic_field_file_upload_err_size', array('size' => $iMaxFileSize)), null, true);
                             }
                             F::File_Delete($_FILES['fields_' . $oField->getFieldId()]['tmp_name']);
                         }
                     }
                     // Поле с изображением
                     if ($oField->getFieldType() == 'single-image-uploader') {
                         $sTargetType = $oField->getFieldType() . '-' . $oField->getFieldId();
                         $iTargetId = $oTopic->getId();
                         // 1. Удалить значение target_tmp
                         // Нужно затереть временный ключ в ресурсах, что бы в дальнейшем картнка не
                         // воспринималась как временная.
                         if ($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) {
                             // 2. Удалить куку.
                             // Если прозошло сохранение вновь созданного топика, то нужно
                             // удалить куку временной картинки. Если же сохранялся уже существующий топик,
                             // то удаление куки ни на что влиять не будет.
                             E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
                             // 3. Переместить фото
                             $sNewPath = E::ModuleUploader()->GetUserImageDir(E::UserId(), true, false);
                             $aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, 0, E::UserId());
                             if ($aMresourceRel) {
                                 $oResource = array_shift($aMresourceRel);
                                 $sOldPath = $oResource->GetFile();
                                 $oStoredFile = E::ModuleUploader()->Store($sOldPath, $sNewPath);
                                 /** @var ModuleMresource_EntityMresource $oResource */
                                 $oResource = E::ModuleMresource()->GetMresourcesByUuid($oStoredFile->getUuid());
                                 if ($oResource) {
                                     $oResource->setUrl(E::ModuleMresource()->NormalizeUrl(E::ModuleUploader()->GetTargetUrl($sTargetType, $iTargetId)));
                                     $oResource->setType($sTargetType);
                                     $oResource->setUserId(E::UserId());
                                     // 4. В свойство поля записать адрес картинки
                                     $sData = $oResource->getMresourceId();
                                     $oResource = array($oResource);
                                     E::ModuleMresource()->UnlinkFile($sTargetType, 0, $oTopic->getUserId());
                                     E::ModuleMresource()->AddTargetRel($oResource, $sTargetType, $iTargetId);
                                 }
                             }
                         } else {
                             // Топик редактируется, просто обновим поле
                             $aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
                             if ($aMresourceRel) {
                                 $oResource = array_shift($aMresourceRel);
                                 $sData = $oResource->getMresourceId();
                             } else {
                                 $sData = false;
                                 //                                    $this->DeleteField($oField);
                             }
                         }
                     }
                     E::ModuleHook()->Run('content_field_proccess', array('sData' => &$sData, 'oField' => $oField, 'oTopic' => $oTopic, 'aValues' => $aValues, 'sType' => &$sType));
                     //Добавляем поле к топику.
                     if ($sData) {
                         /** @var ModuleTopic_EntityContentValues $oValue */
                         $oValue = E::GetEntity('Topic_ContentValues');
                         $oValue->setTargetId($oTopic->getId());
                         $oValue->setTargetType('topic');
                         $oValue->setFieldId($oField->getFieldId());
                         $oValue->setFieldType($oField->getFieldType());
                         $oValue->setValue($sData);
                         $oValue->setValueSource(in_array($oField->getFieldType(), array('file', 'single-image-uploader')) ? $sData : $_REQUEST['fields'][$oField->getFieldId()]);
                         $this->AddTopicValue($oValue);
                     }
                 }
             }
         }
     }
     return true;
 }
开发者ID:AlexSSN,项目名称:altocms,代码行数:101,代码来源:Topic.class.php

示例12: CreateRssChannel

 /**
  * Creates RSS channel for the blog (without items)
  *
  * @return ModuleRss_EntityRssChannel
  */
 public function CreateRssChannel()
 {
     $aRssChannelData = array('title' => C::Get('view.name') . '/' . $this->getTitle(), 'description' => $this->getDescription(), 'link' => $this->getLink(), 'language' => C::Get('lang.current'), 'managing_editor' => $this->getOwner() ? $this->getOwner()->getMail() : '', 'web_master' => C::Get('general.rss_editor_mail'), 'generator' => 'Alto CMS v.' . ALTO_VERSION);
     $oRssChannel = E::GetEntity('ModuleRss_EntityRssChannel', $aRssChannelData);
     return $oRssChannel;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:11,代码来源:Blog.entity.class.php

示例13: AjaxBlogJoin

 /**
  * Подключение/отключение к блогу
  *
  */
 protected function AjaxBlogJoin()
 {
     //  Устанавливаем формат Ajax ответа
     E::ModuleViewer()->SetResponseAjax('json');
     //  Пользователь авторизован?
     if (!$this->oUserCurrent) {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
         return;
     }
     //  Блог существует?
     $nBlogId = intval(F::GetRequestStr('idBlog', null, 'post'));
     if (!$nBlogId || !($oBlog = E::ModuleBlog()->GetBlogById($nBlogId))) {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
         return;
     }
     $this->oCurrentBlog = $oBlog;
     // Type of the blog
     $oBlogType = $oBlog->getBlogType();
     // Current status of user in the blog
     /** @var ModuleBlog_EntityBlogUser $oBlogUser */
     $oBlogUser = E::ModuleBlog()->GetBlogUserByBlogIdAndUserId($oBlog->getId(), $this->oUserCurrent->getId());
     if (!$oBlogUser || $oBlogUser->getUserRole() < ModuleBlog::BLOG_USER_ROLE_GUEST && (!$oBlogType || $oBlogType->IsPrivate())) {
         // * Проверяем тип блога на возможность свободного вступления или вступления по запросу
         if ($oBlogType && !$oBlogType->GetMembership(ModuleBlog::BLOG_USER_JOIN_FREE) && !$oBlogType->GetMembership(ModuleBlog::BLOG_USER_JOIN_REQUEST)) {
             E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('blog_join_error_invite'), E::ModuleLang()->Get('error'));
             return;
         }
         if ($oBlog->getOwnerId() != $this->oUserCurrent->getId()) {
             // Subscribe user to the blog
             if ($oBlogType->GetMembership(ModuleBlog::BLOG_USER_JOIN_FREE)) {
                 $bResult = false;
                 if ($oBlogUser) {
                     $oBlogUser->setUserRole(ModuleBlog::BLOG_USER_ROLE_USER);
                     $bResult = E::ModuleBlog()->UpdateRelationBlogUser($oBlogUser);
                 } elseif ($oBlogType->GetMembership(ModuleBlog::BLOG_USER_JOIN_FREE)) {
                     // User can free subscribe to blog
                     /** @var ModuleBlog_EntityBlogUser $oBlogUserNew */
                     $oBlogUserNew = E::GetEntity('Blog_BlogUser');
                     $oBlogUserNew->setBlogId($oBlog->getId());
                     $oBlogUserNew->setUserId($this->oUserCurrent->getId());
                     $oBlogUserNew->setUserRole(ModuleBlog::BLOG_USER_ROLE_USER);
                     $bResult = E::ModuleBlog()->AddRelationBlogUser($oBlogUserNew);
                 }
                 if ($bResult) {
                     E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('blog_join_ok'), E::ModuleLang()->Get('attention'));
                     E::ModuleViewer()->AssignAjax('bState', true);
                     //  Увеличиваем число читателей блога
                     $oBlog->setCountUser($oBlog->getCountUser() + 1);
                     E::ModuleBlog()->UpdateBlog($oBlog);
                     E::ModuleViewer()->AssignAjax('iCountUser', $oBlog->getCountUser());
                     //  Добавляем событие в ленту
                     E::ModuleStream()->Write($this->oUserCurrent->getId(), 'join_blog', $oBlog->getId());
                     //  Добавляем подписку на этот блог в ленту пользователя
                     E::ModuleUserfeed()->SubscribeUser($this->oUserCurrent->getId(), ModuleUserfeed::SUBSCRIBE_TYPE_BLOG, $oBlog->getId());
                 } else {
                     $sMsg = $oBlogType->IsPrivate() ? E::ModuleLang()->Get('blog_join_error_invite') : E::ModuleLang()->Get('system_error');
                     E::ModuleMessage()->AddErrorSingle($sMsg, E::ModuleLang()->Get('error'));
                     return;
                 }
             }
             // Подписываем по запросу
             if ($oBlogType->GetMembership(ModuleBlog::BLOG_USER_JOIN_REQUEST)) {
                 // Подписка уже была запрошена, но результатов пока нет
                 if ($oBlogUser && $oBlogUser->getUserRole() == ModuleBlog::BLOG_USER_ROLE_WISHES) {
                     E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('blog_join_request_already'), E::ModuleLang()->Get('attention'));
                     E::ModuleViewer()->AssignAjax('bState', true);
                     return;
                 }
                 if ($oBlogUser) {
                     if (!in_array($oBlogUser->getUserRole(), array(ModuleBlog::BLOG_USER_ROLE_REJECT, ModuleBlog::BLOG_USER_ROLE_WISHES))) {
                         $sMessage = E::ModuleLang()->Get('blog_user_status_is') . ' "' . E::ModuleBlog()->GetBlogUserRoleName($oBlogUser->getUserRole()) . '"';
                         E::ModuleMessage()->AddNoticeSingle($sMessage, E::ModuleLang()->Get('attention'));
                         E::ModuleViewer()->AssignAjax('bState', true);
                         return;
                     } else {
                         $oBlogUser->setUserRole(ModuleBlog::BLOG_USER_ROLE_WISHES);
                         $bResult = E::ModuleBlog()->UpdateRelationBlogUser($oBlogUser);
                     }
                 } else {
                     // Подписки ещё не было - оформим ее
                     /** @var ModuleBlog_EntityBlogUser $oBlogUserNew */
                     $oBlogUserNew = E::GetEntity('Blog_BlogUser');
                     $oBlogUserNew->setBlogId($oBlog->getId());
                     $oBlogUserNew->setUserId($this->oUserCurrent->getId());
                     $oBlogUserNew->setUserRole(ModuleBlog::BLOG_USER_ROLE_WISHES);
                     $bResult = E::ModuleBlog()->AddRelationBlogUser($oBlogUserNew);
                 }
                 if ($bResult) {
                     // Отправим сообщение модераторам и администраторам блога о том, что
                     // этот пользоватлеь захотел присоединиться к нашему блогу
                     $aBlogUsersResult = E::ModuleBlog()->GetBlogUsersByBlogId($oBlog->getId(), array(ModuleBlog::BLOG_USER_ROLE_MODERATOR, ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR), null);
                     if ($aBlogUsersResult) {
                         /** @var ModuleUser_EntityUser[] $aBlogModerators */
                         $aBlogModerators = array();
                         /** @var ModuleBlog_EntityBlogUser $oCurrentBlogUser */
                         foreach ($aBlogUsersResult['collection'] as $oCurrentBlogUser) {
//.........这里部分代码省略.........
开发者ID:anp135,项目名称:altocms,代码行数:101,代码来源:ActionBlog.class.php

示例14: EventPreviewTopic

 /**
  * Предпросмотр топика
  *
  */
 protected function EventPreviewTopic()
 {
     /**
      * Т.к. используется обработка отправки формы, то устанавливаем тип ответа 'jsonIframe' (тот же JSON только обернутый в textarea)
      * Это позволяет избежать ошибок в некоторых браузерах, например, Opera
      */
     E::ModuleViewer()->SetResponseAjax(F::AjaxRequest(true) ? 'json' : 'jsonIframe', false);
     // * Пользователь авторизован?
     if (!$this->oUserCurrent) {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
         return;
     }
     // * Допустимый тип топика?
     if (!E::ModuleTopic()->IsAllowTopicType($sType = F::GetRequestStr('topic_type'))) {
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('topic_create_type_error'), E::ModuleLang()->Get('error'));
         return;
     }
     // * Создаем объект топика для валидации данных
     $oTopic = E::GetEntity('ModuleTopic_EntityTopic');
     $oTopic->_setValidateScenario($sType);
     // зависит от типа топика
     $oTopic->setTitle(strip_tags(F::GetRequestStr('topic_title')));
     $oTopic->setTextSource(F::GetRequestStr('topic_text'));
     $aTags = F::GetRequestStr('topic_field_tags');
     if (!$aTags) {
         // LS compatibility
         $aTags = F::GetRequestStr('topic_tags');
     }
     $oTopic->setTags($aTags);
     $oTopic->setDateAdd(F::Now());
     $oTopic->setUserId($this->oUserCurrent->getId());
     $oTopic->setType($sType);
     $oTopic->setBlogId(F::GetRequestStr('blog_id'));
     $oTopic->setPublish(1);
     // * Валидируем необходимые поля топика
     $oTopic->_Validate(array('topic_title', 'topic_text', 'topic_tags', 'topic_type'), false);
     if ($oTopic->_hasValidateErrors()) {
         E::ModuleMessage()->AddErrorSingle($oTopic->_getValidateError());
         return false;
     }
     // * Формируем текст топика
     list($sTextShort, $sTextNew, $sTextCut) = E::ModuleText()->Cut($oTopic->getTextSource());
     $oTopic->setCutText($sTextCut);
     $oTopic->setText(E::ModuleText()->Parse($sTextNew));
     $oTopic->setTextShort(E::ModuleText()->Parse($sTextShort));
     // * Готовим дополнительные поля, кроме файлов
     if ($oType = $oTopic->getContentType()) {
         //получаем поля для данного типа
         if ($aFields = $oType->getFields()) {
             $aValues = array();
             // вставляем поля, если они прописаны для топика
             foreach ($aFields as $oField) {
                 if (isset($_REQUEST['fields'][$oField->getFieldId()])) {
                     $sText = null;
                     //текстовые поля
                     if (in_array($oField->getFieldType(), array('input', 'textarea', 'select'))) {
                         $sText = E::ModuleText()->Parse($_REQUEST['fields'][$oField->getFieldId()]);
                     }
                     //поле ссылки
                     if ($oField->getFieldType() == 'link') {
                         $sText = $_REQUEST['fields'][$oField->getFieldId()];
                     }
                     //поле даты
                     if ($oField->getFieldType() == 'date') {
                         if (isset($_REQUEST['fields'][$oField->getFieldId()])) {
                             if (F::CheckVal($_REQUEST['fields'][$oField->getFieldId()], 'text', 6, 10) && substr_count($_REQUEST['fields'][$oField->getFieldId()], '.') == 2) {
                                 list($d, $m, $y) = explode('.', $_REQUEST['fields'][$oField->getFieldId()]);
                                 if (@checkdate($m, $d, $y)) {
                                     $sText = $_REQUEST['fields'][$oField->getFieldId()];
                                 }
                             }
                         }
                     }
                     if ($sText) {
                         $oValue = E::GetEntity('Topic_ContentValues');
                         $oValue->setFieldId($oField->getFieldId());
                         $oValue->setFieldType($oField->getFieldType());
                         $oValue->setValue($sText);
                         $oValue->setValueSource($_REQUEST['fields'][$oField->getFieldId()]);
                         $aValues[$oField->getFieldId()] = $oValue;
                     }
                 }
             }
             $oTopic->setTopicValues($aValues);
         }
     }
     // * Рендерим шаблон для предпросмотра топика
     $oViewer = E::ModuleViewer()->GetLocalViewer();
     $oViewer->Assign('oTopic', $oTopic);
     $oViewer->Assign('bPreview', true);
     // Alto-style template
     $sTemplate = 'topics/topic.show.tpl';
     if (!E::ModuleViewer()->TemplateExists($sTemplate)) {
         // LS-style template
         $sTemplate = "topic_preview_{$oTopic->getType()}.tpl";
         if (!E::ModuleViewer()->TemplateExists($sTemplate)) {
//.........这里部分代码省略.........
开发者ID:anp135,项目名称:altocms,代码行数:101,代码来源:ActionAjax.class.php

示例15: Send

 /**
  * Универсальный метод отправки уведомлений на email
  *
  * @param ModuleUser_EntityUser|string $xUserTo     Кому отправляем (пользователь или email)
  * @param string                       $sTemplate   Шаблон для отправки
  * @param string                       $sSubject    Тема письма
  * @param array                        $aAssign     Ассоциативный массив для загрузки переменных в шаблон письма
  * @param string|null                  $sPluginName Плагин из которого происходит отправка
  * @param bool                         $bForceSend  Отправлять сразу, даже при опции module.notify.delayed = true
  *
  * @return bool
  */
 public function Send($xUserTo, $sTemplate, $sSubject, $aAssign = array(), $sPluginName = null, $bForceSend = false)
 {
     if ($xUserTo instanceof ModuleUser_EntityUser) {
         $sMail = $xUserTo->getMail();
         $sName = $xUserTo->getLogin();
     } else {
         $sMail = $xUserTo;
         $sName = '';
     }
     /**
      * Передаём в шаблон переменные
      */
     foreach ($aAssign as $sVarName => $sValue) {
         $this->oViewerLocal->Assign($sVarName, $sValue);
     }
     /**
      * Формируем шаблон
      */
     $sTemplate = $this->sPrefix . $sTemplate;
     $sBody = $this->oViewerLocal->Fetch($this->GetTemplatePath($sTemplate, $sPluginName));
     /**
      * Если в конфигураторе указан отложенный метод отправки,
      * то добавляем задание в массив. В противном случае,
      * сразу отсылаем на email
      */
     if (Config::Get('module.notify.delayed') && !$bForceSend) {
         $oNotifyTask = E::GetEntity('Notify_Task', array('user_mail' => $sMail, 'user_login' => $sName, 'notify_text' => $sBody, 'notify_subject' => $sSubject, 'date_created' => F::Now(), 'notify_task_status' => self::NOTIFY_TASK_STATUS_NULL));
         if (Config::Get('module.notify.insert_single')) {
             $this->aTask[] = $oNotifyTask;
             $bResult = true;
         } else {
             $bResult = $this->oMapper->AddTask($oNotifyTask);
         }
     } else {
         // * Отправляем e-mail
         E::ModuleMail()->SetAdress($sMail, $sName);
         E::ModuleMail()->SetSubject($sSubject);
         E::ModuleMail()->SetBody($sBody);
         E::ModuleMail()->SetHTML();
         $bResult = E::ModuleMail()->Send();
     }
     return $bResult;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:55,代码来源:Notify.class.php


注:本文中的E::GetEntity方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。