protected function executeImpl(ArrayAdapter $params) { $url = $params->str('url'); $text = $params->str('text'); $note = $params->str('note'); if (!$url || !$text) { return 'Не передан url или текст'; } /* * Если пользователь не просматривал эту страницу и это не администратор - игнорируем. */ $wasOpened = PageOpenWatcher::isPageOpenedByUser($url, PsUser::instOrNull()); if (!$wasOpened && !AuthManager::isAuthorizedAsAdmin()) { return 'Пользователь не открывал страницу'; //--- } $text = UserInputTools::safeShortText($text); $note = $note ? UserInputTools::safeLongText($note) : $note; $saved = UtilsBean::inst()->saveMisprint($url, $text, $note, AuthManager::getUserIdOrNull()); if (!$saved) { return 'Запись не была сохранена'; //--- } return new AjaxSuccess(); }
/** * Оснвной метод построения дискуссии - с кнопками управления и т.д. */ public final function buildDiscussion($upDown = true, $threadId = null, $limited = true) { $threadId = $this->validateThreadId($threadId); //Form html $formParams['avatar'] = PsUserHelper::getAvatarImg(PsUser::instOrNull(), '42x', array('class' => 'small')); $formParams['themed'] = $this->SETTINGS->isThemed(); $form = PSSmarty::template('discussion/common/comment_form.tpl', $formParams)->fetch(); //Tree js data $treeData[self::JS_DATA_UPDOWN] = $upDown; $treeData[self::JS_DATA_THREAD] = $threadId; $treeData[self::JS_DATA_UNIQUE] = $this->SETTINGS->getUnique(); $treeData[self::JS_DATA_THEMED] = $this->SETTINGS->isThemed(); $params['tree'] = $this->buildLeafs($threadId, $this->makeDiscussionTree($this->loadMsgsPortion($threadId, $limited ? MAX_COMMENTS_COUNT : -1, $upDown, null, $hasMore), false)); $params['has_more'] = $hasMore; $params['form'] = $form; $params['unique'] = $this->SETTINGS->getUnique(); $params['data'] = PsHtml::data2string($treeData); return PSSmarty::template('discussion/common/discussion.tpl', $params)->fetch(); }