/** * Сохраняет теги для избранного * */ protected function EventFavouriteSaveTags() { // * Пользователь авторизован? if (!$this->oUserCurrent) { E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error')); return; } // * Объект уже должен быть в избранном if ($oFavourite = E::ModuleFavourite()->GetFavourite(F::GetRequestStr('target_id'), F::GetRequestStr('target_type'), $this->oUserCurrent->getId())) { // * Обрабатываем теги $aTags = explode(',', trim(F::GetRequestStr('tags'), "\r\n\t\v .")); $aTagsNew = array(); $aTagsNewLow = array(); $aTagsReturn = array(); foreach ($aTags as $sTag) { $sTag = trim($sTag); if (F::CheckVal($sTag, 'text', 2, 50) && !in_array(mb_strtolower($sTag, 'UTF-8'), $aTagsNewLow)) { $sTagEsc = htmlspecialchars($sTag); $aTagsNew[] = $sTagEsc; $aTagsReturn[] = array('tag' => $sTagEsc, 'url' => $this->oUserCurrent->getUserWebPath() . 'favourites/' . $oFavourite->getTargetType() . 's/tag/' . $sTagEsc . '/'); $aTagsNewLow[] = mb_strtolower($sTag, 'UTF-8'); } } if (!count($aTagsNew)) { $oFavourite->setTags(''); } else { $oFavourite->setTags(join(',', $aTagsNew)); } E::ModuleViewer()->AssignAjax('aTags', $aTagsReturn); E::ModuleFavourite()->UpdateFavourite($oFavourite); return; } E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error')); }
/** * Сохраняет теги для избранного * */ protected function EventFavouriteSaveTags() { /** * Пользователь авторизован? */ if (!$this->oUserCurrent) { $this->Message_AddErrorSingle($this->Lang_Get('need_authorization'), $this->Lang_Get('error')); return; } /** * Объект уже должен быть в избранном */ if ($oFavourite = $this->Favourite_GetFavourite(getRequestStr('target_id'), getRequestStr('target_type'), $this->oUserCurrent->getId())) { /** * Обрабатываем теги */ $aTags = explode(',', trim(getRequestStr('tags'), "\r\n\t\v .")); $aTagsNew = array(); $aTagsNewLow = array(); $aTagsReturn = array(); foreach ($aTags as $sTag) { $sTag = trim($sTag); if (func_check($sTag, 'text', 2, 50) and !in_array(mb_strtolower($sTag, 'UTF-8'), $aTagsNewLow)) { $sTagEsc = htmlspecialchars($sTag); $aTagsNew[] = $sTagEsc; $aTagsReturn[] = array('tag' => $sTagEsc, 'url' => $this->oUserCurrent->getUserWebPath() . 'favourites/' . $oFavourite->getTargetType() . 's/tag/' . $sTagEsc . '/'); $aTagsNewLow[] = mb_strtolower($sTag, 'UTF-8'); } } if (!count($aTagsNew)) { $oFavourite->setTags(''); } else { $oFavourite->setTags(join(',', $aTagsNew)); } $this->Viewer_AssignAjax('aTags', $aTagsReturn); $this->Favourite_UpdateFavourite($oFavourite); return; } $this->Message_AddErrorSingle($this->Lang_Get('system_error'), $this->Lang_Get('error')); }
/** * Выводит список комментариев которые написал юзер * Перенаправляет на профиль пользователя * */ protected function EventComments() { /** * Получаем логин из УРЛа */ $sUserLogin = $this->sCurrentEvent; /** * Проверяем есть ли такой юзер */ if (!($this->oUserProfile = E::ModuleUser()->GetUserByLogin($sUserLogin))) { return parent::EventNotFound(); } /** * Передан ли номер страницы */ $iPage = $this->GetParamEventMatch(1, 2) ? $this->GetParamEventMatch(1, 2) : 1; /** * Выполняем редирект на новый URL, в новых версиях LS экшен "my" будет удален */ $sPage = $iPage == 1 ? '' : "page{$iPage}/"; R::Location($this->oUserProfile->getUserWebPath() . 'created/comments/' . $sPage); }
/** * Список созданных заметок */ public function EventCreatedNotes() { if (!$this->CheckUserProfile()) { return parent::EventNotFound(); } $this->sMenuSubItemSelect = 'notes'; $this->sMenuProfileItemSelect = 'created'; /** * Заметки может читать только сам пользователь */ if (!$this->oUserCurrent or $this->oUserCurrent->getId() != $this->oUserProfile->getId()) { return parent::EventNotFound(); } /** * Передан ли номер страницы */ $iPage = $this->GetParamEventMatch(2, 2) ? $this->GetParamEventMatch(2, 2) : 1; /** * Получаем список заметок */ $aResult = $this->User_GetUsersByNoteAndUserId($this->oUserProfile->getId(), $iPage, Config::Get('module.user.usernote_per_page')); $aNotes = $aResult['collection']; /** * Формируем постраничность */ $aPaging = $this->Viewer_MakePaging($aResult['count'], $iPage, Config::Get('module.user.usernote_per_page'), Config::Get('pagination.pages.count'), $this->oUserProfile->getUserWebPath() . 'created/notes'); /** * Загружаем переменные в шаблон */ $this->Viewer_Assign('paging', $aPaging); $this->Viewer_Assign('notesUsers', $aNotes); $this->Viewer_AddHtmlTitle($this->Lang_Get('user.publications.title') . ' ' . $this->oUserProfile->getLogin()); $this->Viewer_AddHtmlTitle($this->Lang_Get('user.publications.nav.notes')); /** * Устанавливаем шаблон вывода */ $this->SetTemplateAction('created.notes'); }