本文整理汇总了PHP中E::ModuleSession方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleSession方法的具体用法?PHP E::ModuleSession怎么用?PHP E::ModuleSession使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleSession方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Verify
/**
* @param string $sKeyString
* @param string $sKeyName
*
* @return int
*/
public function Verify($sKeyString, $sKeyName = null)
{
$iResult = 0;
if (empty($sKeyString)) {
$iResult = static::ERR_KEYSTRING_EMPTY;
} elseif (!is_string($sKeyString)) {
$iResult = static::ERR_KEYSTRING_NOT_STR;
} else {
if (!$sKeyName) {
$sKeyName = $this->sKeyName;
}
$sSavedString = E::ModuleSession()->Get($sKeyName);
// issue#342. При регистрации метод вызывается несколько раз в том
// числе и при проверки формы аяксом при первой проверке значение
// капчи сбрасывается и в дальнейшем проверка не проходит. Сброс капчи
// теперь происходит только после успешной регистрации
// E::ModuleSession()->Drop($sKeyName);
if (empty($sSavedString) || !is_string($sSavedString)) {
$iResult = static::ERR_KEYSTRING_NOT_DEFINED;
} elseif ($sSavedString != $sKeyString) {
$iResult = static::ERR_KEYSTRING_NOT_VALID;
}
}
return $iResult;
}
示例2: Init
/**
* Инициализация
*
*/
public function Init()
{
// Устанавливаем title страницы
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('people'));
if (!E::ModuleSession()->GetCookie('view') && F::GetRequestStr('view')) {
E::ModuleSession()->DelCookie('view');
}
E::ModuleSession()->SetCookie('view', F::GetRequestStr('view', '2'), 60 * 60 * 24 * 365);
}
示例3: Shutdown
/**
* При завершении работы модуля передаем списки сообщений в шаблоны Smarty
*
*/
public function Shutdown()
{
/**
* Добавляем в сессию те сообщения, которые были отмечены для сессионного использования
*/
E::ModuleSession()->Set('message_notice_session', $this->GetNoticeSession());
E::ModuleSession()->Set('message_error_session', $this->GetErrorSession());
E::ModuleViewer()->Assign('aMsgNotice', $this->GetNotice());
E::ModuleViewer()->Assign('aMsgError', $this->GetError());
}
示例4: Shutdown
/**
* Assign messages to template variables and save special messages to session
* (they will be shown in the next page)
*
*/
public function Shutdown()
{
// Save messages in session
if ($aMessages = $this->GetNoticeSession()) {
E::ModuleSession()->Set('message_notice_session', $aMessages);
}
if ($aMessages = $this->GetErrorSession()) {
E::ModuleSession()->Set('message_error_session', $aMessages);
}
E::ModuleViewer()->Assign('aMsgNotice', $this->GetNotice());
E::ModuleViewer()->Assign('aMsgError', $this->GetError());
}
示例5: Init
/**
* Инициализация экшена
*
*/
public function Init()
{
/**
* issue #104, {@see https://github.com/altocms/altocms/issues/104}
* Проверим, не пришли ли мы в ошибку с логаута, если да, то перейдем на главную,
* поскольку страница на самом деле есть, но только когда мы авторизованы.
*/
if (isset($_SERVER['HTTP_REFERER']) && E::ModuleSession()->GetCookie('lgp') === md5(F::RealUrl($_SERVER['HTTP_REFERER']) . 'logout')) {
return R::Location((string) Config::Get('module.user.logout.redirect'));
}
/**
* Устанавливаем дефолтный евент
*/
$this->SetDefaultEvent('index');
/**
* Запрешаем отображать статистику выполнения
*/
R::SetIsShowStats(false);
}
示例6: BanUsers
/**
* @param array $aUsers
* @param int $nDays
* @param string $sComment
*
* @return bool
*/
public function BanUsers($aUsers, $nDays = null, $sComment = null)
{
$aUserIds = $this->_entitiesId($aUsers);
$bOk = true;
if ($aUserIds) {
// для все юзеров, добавляемых в бан, закрываются сессии
foreach ($aUserIds as $nUserId) {
if ($nUserId) {
E::ModuleSession()->Drop($nUserId);
E::ModuleUser()->CloseAllSessions($nUserId);
}
}
if (!$nDays) {
$nUnlim = 1;
$dDate = null;
} else {
$nUnlim = 0;
$dDate = date('Y-m-d H:i:s', time() + 3600 * 24 * $nDays);
}
$bOk = $this->oMapper->BanUsers($aUserIds, $dDate, $nUnlim, $sComment);
E::ModuleCache()->CleanByTags(array('user_update'));
}
return $bOk;
}
示例7: AttachTmpPhotoToTopic
/**
* @param ModuleTopic_EntityTopic $oTopic
* @param null $sTargetTmp
* @return bool
*/
public function AttachTmpPhotoToTopic($oTopic, $sTargetTmp = null)
{
if (is_null($sTargetTmp)) {
$sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP);
}
E::ModuleMresource()->ResetTmpRelById($sTargetTmp, $oTopic->getId());
return $this->oMapper->attachTmpPhotoToTopic($oTopic, $sTargetTmp);
}
示例8: EventExit
/**
* Обрабатываем процесс разлогинивания
*
*/
protected function EventExit()
{
E::ModuleSecurity()->ValidateSendForm();
E::ModuleUser()->Logout();
$iShowTime = Config::Val('module.user.logout.show_exit', 3);
$sRedirect = Config::Get('module.user.logout.redirect');
if (!$sRedirect) {
if (isset($_SERVER['HTTP_REFERER']) && F::File_IsLocalUrl($_SERVER['HTTP_REFERER'])) {
$sRedirect = $_SERVER['HTTP_REFERER'];
}
}
/**
* issue #104, {@see https://github.com/altocms/altocms/issues/104}
* Установим в lgp (last_good_page) хэш имени страницы с постфиксом "logout". Такая
* кука будет означать, что на этой странице пользователь вышел с сайта. Время 60 -
* заранее достаточное время, что бы произошел редирект на страницу HTTP_REFERER. Если
* же эта страница выпадет в 404 то в экшене ActionError уйдем на главную, поскольку
* эта страница недоступна стала после выхода с сайта, а до этого была вполне ничего.
*/
if ($iShowTime) {
$sUrl = F::RealUrl($sRedirect);
$sReferrer = Config::Get('path.root.web') . R::GetAction() . "/" . R::GetActionEvent() . '/?security_key=' . F::GetRequest('security_key', '');
E::ModuleSession()->SetCookie('lgp', md5($sReferrer . 'logout'), 60);
E::ModuleViewer()->SetHtmlHeadTag('meta', array('http-equiv' => 'Refresh', 'Content' => $iShowTime . '; url=' . $sUrl));
} elseif ($sRedirect) {
// Если установлена пользовтаельская страница выхода, то считаем,
// что она без ошибки и смело не нее редиректим, в других случаях
// возможна 404
if (!Config::Get('module.user.logout.redirect')) {
E::ModuleSession()->SetCookie('lgp', md5(F::RealUrl($sRedirect) . 'logout'), 60);
}
R::Location($sRedirect);
exit;
} else {
// E::ModuleViewer()->Assign('bRefreshToHome', true);
// Время показа страницы выхода не задано, поэтому просто редирект
R::Location(Config::Get('path.root.web'));
exit;
}
}
示例9: 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;
}
示例10: 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;
}
示例11: Logout
/**
* Разлогинивание
*
*/
public function Logout()
{
if ($this->oSession) {
// Обновляем сессию
$this->oMapper->UpdateSession($this->oSession);
}
if ($this->oUserCurrent) {
// Close current session of the current user
$this->CloseSession();
}
E::ModuleCache()->CleanByTags(array('user_session_update'));
// * Удаляем из сессии
E::ModuleSession()->Drop('user_id');
// * Удаляем куки
E::ModuleSession()->DelCookie($this->GetKeyName());
E::ModuleSession()->DropSession();
$this->oUserCurrent = null;
$this->oSession = null;
}
示例12: OutLog
/**
* Протоколирование запросов
*
* @param array|null $aVars
*/
public function OutLog($aVars = null)
{
if (!$this->bLogEnable) {
return;
}
if (!($sLogFile = Config::Get('module.search.logs.file'))) {
$sLogFile = 'search.log';
}
if (!$this->oUser) {
if ($sUserId = E::ModuleSession()->Get('user_id')) {
$this->oUser = E::ModuleUser()->GetUserById($sUserId);
}
}
if (!$this->oUser) {
$sUserLogin = '*anonymous*';
} else {
$sUserLogin = $this->oUser->GetLogin();
}
$path = R::GetPathWebCurrent();
$uri = $_SERVER['REQUEST_URI'];
$sStrLog = 'user=>"' . $sUserLogin . '" ip=>"' . $_SERVER['REMOTE_ADDR'] . '"' . "\n" . str_repeat(' ', 22) . 'path=>' . $path . '"' . "\n" . str_repeat(' ', 22) . 'uri=>' . $uri . '"';
if (is_array($aVars) && sizeof($aVars)) {
foreach ($aVars as $key => $val) {
$sStrLog .= "\n" . str_repeat(' ', 22) . $key . '=>"' . $val . '"';
}
}
E::ModuleLogger()->Dump($sLogFile, $sStrLog);
}
示例13: getCurrentSession
/**
* Returns current session of user
*
* @return ModuleUser_EntitySession|null
*/
public function getCurrentSession()
{
if (!$this->getProp('_current_session')) {
$this->_aData['_current_session'] = E::ModuleUser()->GetSessionByUserId($this->getId(), E::ModuleSession()->GetKey());
}
return $this->getProp('_current_session');
}
示例14: EventReset
protected function EventReset()
{
$this->sMainMenuItem = 'tools';
$this->_setTitle(E::ModuleLang()->Get('action.admin.reset_title'));
$this->SetTemplateAction('tools/reset');
$aSettings = array();
if ($this->GetPost('adm_reset_submit')) {
$aConfig = array();
if ($this->GetPost('adm_cache_clear_data')) {
E::ModuleCache()->Clean();
$aSettings['adm_cache_clear_data'] = 1;
}
if ($this->GetPost('adm_cache_clear_assets')) {
E::ModuleViewer()->ClearAssetsFiles();
$aConfig['assets.version'] = time();
$aSettings['adm_cache_clear_assets'] = 1;
}
if ($this->GetPost('adm_cache_clear_smarty')) {
E::ModuleViewer()->ClearSmartyFiles();
$aSettings['adm_cache_clear_smarty'] = 1;
}
if ($this->GetPost('adm_reset_config_data')) {
$this->_eventResetCustomConfig();
$aSettings['adm_reset_config_data'] = 1;
}
if ($aConfig) {
Config::WriteCustomConfig($aConfig);
}
E::ModuleMessage()->AddNotice(E::ModuleLang()->Get('action.admin.action_ok'), null, true);
if ($aSettings) {
E::ModuleSession()->SetCookie('adm_tools_reset', serialize($aSettings));
} else {
E::ModuleSession()->DelCookie('adm_tools_reset');
}
R::Location('admin/tools-reset/');
}
if ($sSettings = E::ModuleSession()->GetCookie('adm_tools_reset')) {
$aSettings = @unserialize($sSettings);
if (is_array($aSettings)) {
E::ModuleViewer()->Assign('aSettings', $aSettings);
}
}
}
示例15: EventMultiUpload
/**
* Загружаем картинку
*/
public function EventMultiUpload()
{
// Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json', FALSE);
E::ModuleSecurity()->ValidateSendForm();
// Проверяем, загружен ли файл
if (!($aUploadedFile = $this->GetUploadedFile('uploader-upload-image'))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('error_upload_image'), E::ModuleLang()->Get('error'));
return false;
}
$sTarget = F::GetRequest('target', FALSE);
$sTargetId = F::GetRequest('target_id', FALSE);
$oTarget = E::ModuleUploader()->CheckAccessAndGetTarget($sTarget, $sTargetId);
$bTmp = F::GetRequest('tmp', FALSE);
$bTmp = $bTmp == 'true' ? true : false;
// Проверяем, целевой объект и права на его редактирование
if (!$oTarget) {
// Здесь два варианта, либо редактировать нельзя, либо можно, но топика еще нет
if ($oTarget === TRUE) {
// Будем делать временную картинку
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return false;
}
}
// Ошибок пока нет
$sError = '';
// Сделаем временный файд
$sTmpFile = E::ModuleUploader()->UploadLocal($aUploadedFile);
// Вызовем хук перед началом загрузки картинки
E::ModuleHook()->Run('uploader_upload_before', array('oTarget' => $oTarget, 'sTmpFile' => $sTmpFile, 'sTarget' => $sTarget));
// Если все ок, и по миме проходит, то
if ($sTmpFile && E::ModuleImg()->MimeType($sTmpFile)) {
// Проверим, проходит ли по количеству
if (!E::ModuleUploader()->GetAllowedCount($sTarget = F::GetRequest('target', FALSE), $sTargetId = F::GetRequest('target_id', FALSE))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('uploader_photoset_error_count_photos', array('MAX' => Config::Get('module.topic.photoset.count_photos_max'))), E::ModuleLang()->Get('error'));
return FALSE;
}
// Определим, существует ли объект или он будет создан позже
if (!($sTmpKey = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && $sTargetId == '0' && $bTmp) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('error_upload_image'), E::ModuleLang()->Get('error'));
return FALSE;
}
// Пересохраним файл из кэша
// Сохраняем фото во временный файл
$oImg = E::ModuleImg()->Read($sTmpFile);
$sExtension = strtolower(pathinfo($sTmpFile, PATHINFO_EXTENSION));
if (!($sTmpFile = $oImg->Save(F::File_UploadUniqname($sExtension)))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('error_upload_image'), E::ModuleLang()->Get('error'));
return FALSE;
}
// Окончательная запись файла только через модуль Uploader
if ($oStoredFile = E::ModuleUploader()->StoreImage($sTmpFile, $sTarget, $sTargetId, null, true)) {
/** @var ModuleMresource_EntityMresource $oResource */
//$oResource = $this->AddUploadedFileRelationInfo($oStoredFile, $sTarget, $sTargetId, TRUE);
$oResource = E::ModuleMresource()->GetMresourcesByUuid($oStoredFile->getUuid());
$sFile = $oStoredFile->GetUrl();
if ($oResource) {
$oResource->setType(ModuleMresource::TYPE_PHOTO);
E::ModuleMresource()->UpdateType($oResource);
}
$sFilePreview = $sFile;
if ($sSize = F::GetRequest('crop_size', FALSE)) {
$sFilePreview = E::ModuleUploader()->ResizeTargetImage($sFile, $sSize);
}
// Запускаем хук на действия после загрузки картинки
E::ModuleHook()->Run('uploader_upload_image_after', array('sFile' => $sFile, 'sFilePreview' => $sFilePreview, 'sTargetId' => $sTargetId, 'sTarget' => $sTarget, 'oTarget' => $oTarget));
E::ModuleViewer()->AssignAjax('file', $sFilePreview);
E::ModuleViewer()->AssignAjax('id', $oResource->getMresourceId());
// Чистим
E::ModuleImg()->Delete($sTmpFile);
return TRUE;
}
} else {
// Ошибки загрузки картинки
$sError = E::ModuleUploader()->GetErrorMsg();
if (!$sError) {
$sError = E::ModuleLang()->Get('error_upload_image');
}
}
// Выведем ошибки пользователю
E::ModuleMessage()->AddError($sError, E::ModuleLang()->Get('error'));
// Удалим ранее загруженый файл
F::File_Delete($sTmpFile);
}