protected function executeImpl(ArrayAdapter $params) { $unique = $params->str(DiscussionController::JS_DATA_UNIQUE); $upDown = $params->bool(DiscussionController::JS_DATA_UPDOWN); $entity = $params->str(DiscussionController::JS_DATA_THREAD); $theme = $params->str(self::JS_PARAM_THEME); $comment = $params->str(self::JS_PARAM_COMMENT); $parentId = $params->int(self::JS_PARAM_PARENT_ID); $controller = Handlers::getInstance()->getDiscussionController($unique); //Валидируем тему if (!$parentId && $controller->getDiscussionSettings()->isThemed()) { if (!$theme) { return 'Введите тему'; } $error = UserInputValidator::validateShortText($theme); if ($error) { return $error; } $theme = UserInputTools::safeShortText($theme); } //Валидируем комментарий if (!$comment) { return 'Введите комментарий'; } $error = UserInputValidator::validateLongText($comment); if ($error) { return $error; } $comment = UserInputTools::safeLongText($comment); $msgObj = $controller->saveMessage($entity, $parentId, $comment, $theme, PsUser::inst()); if (!$msgObj instanceof DiscussionMsg) { return 'Ошибка добавления сообщения'; } return new AjaxSuccess($controller->buildLeaf($msgObj)); }
protected function processImpl(PostArrayAdapter $adapter, $button) { $FEEDBACK = FeedbackManager::inst(); /* * Тема */ $theme = $adapter->str(FORM_PARAM_THEME); $error = UserInputValidator::validateShortText($theme); if ($error) { return array(FORM_PARAM_THEME => $error); } $theme = UserInputTools::safeShortText($theme); /* * Комментарий */ $text = $adapter->str(FORM_PARAM_COMMENT); $error = UserInputValidator::validateLongText($text); if ($error) { return array(FORM_PARAM_COMMENT => $error); } $text = UserInputTools::safeLongText($text); /* * АВТОРИЗОВАН - пользуемся стандартным механизмом добавления сообщения в тред. * Кодом треда, при этом, является сам пользователь. */ if (AuthManager::isAuthorized()) { $msg = $FEEDBACK->saveMessage(PsUser::inst()->getId(), null, $text, $theme, PsUser::inst()); return new AjaxSuccess($FEEDBACK->buildLeaf($msg)); } /* * НЕ АВТОРИЗОВАН - сохраняем сообщение в таблицу анонимных пользователей. */ if (!AuthManager::isAuthorized()) { /* * Имя пользователя */ $name = $adapter->str(FORM_PARAM_NAME); $error = UserInputValidator::validateShortText($name); if ($error) { return array(FORM_PARAM_NAME => $error); } $name = UserInputTools::safeShortText($name); /* * Контакты */ $contacts = $adapter->str(FORM_PARAM_REG_CONTACTS); if ($contacts) { $error = UserInputValidator::validateShortText($contacts, false); if ($error) { return array(FORM_PARAM_REG_CONTACTS => $error); } $contacts = UserInputTools::safeShortText($contacts); } $FEEDBACK->saveAnonimousFeedback($name, $contacts, $theme, $text); return new AjaxSuccess(); } }
public function getDataImpl() { $data = new RegFormData(); /* * Имя пользователя */ $name = $adapter->str(FORM_PARAM_REG_NAME); $error = UserInputValidator::validateShortText($name); if ($error) { return array(FORM_PARAM_REG_NAME => $error); } $name = UserInputTools::safeShortText($name); $data->setUserName($name); /* * Пол */ $sex = $adapter->str(FORM_PARAM_REG_SEX); $error = UserInputValidator::validateSex($sex); if ($error) { return array(FORM_PARAM_REG_SEX => $error); } $data->setSex($sex); /* * Обо мне */ $about = $adapter->str(FORM_PARAM_REG_ABOUT); if ($about) { $error = UserInputValidator::validateLongText($about, false); if ($error) { return array(FORM_PARAM_REG_ABOUT => $error); } $data->setAboutSrc($about); $data->setAbout(UserInputTools::safeLongText($about)); } /* * Контакты */ $contacts = $adapter->str(FORM_PARAM_REG_CONTACTS); if ($contacts) { $error = UserInputValidator::validateLongText($contacts, false); if ($error) { return array(FORM_PARAM_REG_CONTACTS => $error); } $data->setContactsSrc($contacts); $data->setContacts(UserInputTools::safeLongText($contacts)); } /* * Цитата */ $msg = $adapter->str(FORM_PARAM_REG_MSG); if ($msg) { $error = UserInputValidator::validateLongText($msg, false); if ($error) { return array(FORM_PARAM_REG_MSG => $error); } $data->setMsgSrc($msg); $data->setMsg(UserInputTools::safeLongText($msg)); } return $data; }