本文整理汇总了PHP中F::CheckVal方法的典型用法代码示例。如果您正苦于以下问题:PHP F::CheckVal方法的具体用法?PHP F::CheckVal怎么用?PHP F::CheckVal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类F
的用法示例。
在下文中一共展示了F::CheckVal方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: checkBlogFields
protected function checkBlogFields($oBlog = null)
{
$bOk = parent::checkBlogFields($oBlog);
if (!F::isPost('submit_blog_add')) {
// Проверяем есть ли подзаголовок блога
$iMin = C::Get('plugin.blogsubtitle.min_subtitle_len');
$iMax = C::Get('plugin.blogsubtitle.max_subtitle_len');
$sSubtitle = F::GetRequestStr('blog_subtitle');
if (!$sSubtitle && $iMin) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('plugin.blogsubtitle.blog_create_subtitle_error', array('min' => $iMin, 'max' => $iMax)), E::ModuleLang()->Get('error'));
$bOk = false;
} elseif ($iMax) {
if (!F::CheckVal($sSubtitle, 'text', $iMin, $iMax)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('plugin.blogsubtitle.blog_create_subtitle_error', array('min' => $iMin, 'max' => $iMax)), E::ModuleLang()->Get('error'));
$bOk = false;
}
}
}
return $bOk;
}
示例2: CheckSeopackFields
/**
* @return bool
*/
protected function CheckSeopackFields()
{
E::ModuleSecurity()->ValidateSendForm();
$bOk = true;
if (F::isPost('title') && !F::CheckVal(F::GetRequest('title', null, 'post'), 'text', 0, 1000)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('plugin.seopack.title_error'), E::ModuleLang()->Get('error'));
$bOk = false;
}
if (F::isPost('description') && !F::CheckVal(F::GetRequest('description', null, 'post'), 'text', 0, 1000)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('plugin.seopack.description_error'), E::ModuleLang()->Get('error'));
$bOk = false;
}
if (F::isPost('keywords') && !F::CheckVal(F::GetRequest('keywords', null, 'post'), 'text', 0, 1000)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('plugin.seopack.keywords_error'), E::ModuleLang()->Get('error'));
$bOk = false;
}
if (!F::CheckVal(F::GetRequest('url', null, 'post'), 'text', 0, 255)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('plugin.seopack.url_error'), E::ModuleLang()->Get('error'));
$bOk = false;
}
return $bOk;
}
示例3: processTopicFields
/**
* Обработка дополнительных полей топика
*
* @param ModuleTopic_EntityTopic $oTopic
* @param string $sType
*
* @return bool
*/
public function processTopicFields($oTopic, $sType = 'add')
{
/** @var ModuleTopic_EntityContentValues $aValues */
$aValues = array();
if ($sType == 'update') {
// * Получаем существующие значения
if ($aData = $this->GetTopicValuesByArrayId(array($oTopic->getId()))) {
$aValues = $aData[$oTopic->getId()];
}
// * Чистим существующие значения
E::ModuleTopic()->DeleteTopicValuesByTopicId($oTopic->getId());
}
if ($oType = E::ModuleTopic()->GetContentTypeByUrl($oTopic->getType())) {
//получаем поля для данного типа
if ($aFields = $oType->getFields()) {
foreach ($aFields as $oField) {
$sData = null;
if (isset($_REQUEST['fields'][$oField->getFieldId()]) || isset($_FILES['fields_' . $oField->getFieldId()]) || $oField->getFieldType() == 'single-image-uploader') {
//текстовые поля
if (in_array($oField->getFieldType(), array('input', 'textarea', 'select'))) {
$sData = E::ModuleText()->Parser($_REQUEST['fields'][$oField->getFieldId()]);
}
//поле ссылки
if ($oField->getFieldType() == 'link') {
$sData = $_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)) {
$sData = $_REQUEST['fields'][$oField->getFieldId()];
}
}
}
}
//поле с файлом
if ($oField->getFieldType() == 'file') {
//если указано удаление файла
if (F::GetRequest('topic_delete_file_' . $oField->getFieldId())) {
if ($oTopic->getFieldFile($oField->getFieldId())) {
@unlink(Config::Get('path.root.dir') . $oTopic->getFieldFile($oField->getFieldId())->getFileUrl());
//$oTopic->setValueField($oField->getFieldId(),'');
$sData = null;
}
} else {
//если удаление файла не указано, уже ранее залит файл^ и нового файла не загружалось
if ($sType == 'update' && isset($aValues[$oField->getFieldId()])) {
$sData = $aValues[$oField->getFieldId()]->getValueSource();
}
}
if (isset($_FILES['fields_' . $oField->getFieldId()]) && is_uploaded_file($_FILES['fields_' . $oField->getFieldId()]['tmp_name'])) {
$iMaxFileSize = F::MemSize2Int(Config::Get('module.uploader.files.default.file_maxsize'));
$aFileExtensions = Config::Get('module.uploader.files.default.file_extensions');
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']);
}
}
// Поле с изображением
//.........这里部分代码省略.........
示例4: _eventRecovery
protected function _eventRecovery($bAjax = false)
{
if ($this->IsPost()) {
// Was POST request
$sEmail = F::GetRequestStr('mail');
// Пользователь с таким емайлом существует?
if ($sEmail && F::CheckVal($sEmail, 'mail')) {
if ($this->_eventRecoveryRequest($sEmail)) {
if (!$bAjax) {
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('password_reminder_send_link'));
}
return;
}
}
E::ModuleMessage()->AddError(E::ModuleLang()->Get('password_reminder_bad_email'), E::ModuleLang()->Get('error'));
} elseif ($sRecoveryCode = $this->GetParam(0)) {
// Was recovery code in GET
if (F::CheckVal($sRecoveryCode, 'md5')) {
// Проверка кода подтверждения
if ($this->_eventRecoverySend($sRecoveryCode)) {
return null;
}
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('password_reminder_bad_code_txt'), E::ModuleLang()->Get('password_reminder_bad_code'));
if (!$bAjax) {
return R::Action('error');
}
return;
}
}
}
示例5: GetUserAuthorization
/**
* @param $aUserAuthData
*
* @return bool|ModuleUser_EntityUser|null
*/
public function GetUserAuthorization($aUserAuthData)
{
$oUser = null;
$iError = null;
if (!empty($aUserAuthData['login'])) {
$oUser = $this->GetUserByLogin($aUserAuthData['login']);
if (!$oUser) {
$iError = self::USER_AUTH_ERR_LOGIN;
}
}
if (!$oUser && !empty($aUserAuthData['email'])) {
if (F::CheckVal($aUserAuthData['email'], 'email')) {
$oUser = $this->GetUserByMail($aUserAuthData['email']);
if ($oUser) {
$iError = null;
} else {
$iError = self::USER_AUTH_ERR_MAIL;
}
}
}
if (!$oUser && !empty($aUserAuthData['id'])) {
if (F::CheckVal(!empty($aUserAuthData['id']), 'id')) {
$oUser = $this->GetUserById($aUserAuthData['id']);
if (!$oUser) {
$iError = self::USER_AUTH_ERR_ID;
}
}
}
if (!$oUser && !empty($aUserAuthData['session'])) {
$oUser = $this->GetUserBySessionKey($aUserAuthData['session']);
if (!$oUser) {
$iError = self::USER_AUTH_ERR_SESSION;
}
}
if ($oUser && !empty($aUserAuthData['password'])) {
if (!$this->CheckPassword($oUser, $aUserAuthData['password'])) {
$iError = self::USER_AUTH_ERR_PASSWORD;
}
}
if ($oUser && !$iError) {
$iError = self::USER_AUTH_RESULT_OK;
if (!$oUser->getActivate()) {
$iError = self::USER_AUTH_ERR_NOT_ACTIVATED;
}
// Не забанен ли юзер
if ($oUser->IsBanned()) {
if ($oUser->IsBannedByIp()) {
$iError = self::USER_AUTH_ERR_IP_BANNED;
} elseif ($oUser->GetBanLine()) {
$iError = self::USER_AUTH_ERR_BANNED_DATE;
} else {
$iError = self::USER_AUTH_ERR_BANNED_UNLIM;
}
}
} elseif (!$iError) {
$iError = self::USER_AUTH_ERROR;
}
$aUserAuthData['error'] = $iError;
return $oUser;
}
示例6: checkBlogFields
/**
* Проверка полей блога
*
* @param ModuleBlog_EntityBlog|null $oBlog
*
* @return bool
*/
protected function checkBlogFields($oBlog = null)
{
$bOk = true;
// * Проверяем есть ли название блога
if (!F::CheckVal(F::GetRequestStr('blog_title'), 'text', 2, 200)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('blog_create_title_error'), E::ModuleLang()->Get('error'));
$bOk = false;
} else {
// * Проверяем есть ли уже блог с таким названием
if ($oBlogExists = E::ModuleBlog()->GetBlogByTitle(F::GetRequestStr('blog_title'))) {
if (!$oBlog || $oBlog->getId() != $oBlogExists->getId()) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('blog_create_title_error_unique'), E::ModuleLang()->Get('error'));
$bOk = false;
}
}
}
return $bOk;
}
示例7: _prepareRequest
/**
* Разбор запроса
*
* @param null $sType
*
* @return mixed
*/
protected function _prepareRequest($sType = null)
{
$sRequest = trim(F::GetRequest('q'));
// * Иногда ломается кодировка, напр., если ввели поиск в адресной строке браузера
// * Пытаемся восстановить по основной кодировке браузера
if (!mb_check_encoding($sRequest)) {
list($sCharset) = explode(',', $_SERVER['HTTP_ACCEPT_CHARSET']);
$sQueryString = mb_convert_encoding($_SERVER['QUERY_STRING'], 'UTF-8', $sCharset);
$sRequest = mb_convert_encoding($sRequest, 'UTF-8', $sCharset);
}
if ($sRequest) {
// Две звездочки подряд меняем на одну
$sRequest = preg_replace('/(\\*{2,})/', '*', $sRequest);
// Две пробела подряд меняем на один
$sRequest = preg_replace('/(\\s{2,})/', ' ', $sRequest);
// Последовательность звездочек и пробелов, начинающаяся со звездочки
$sRequest = preg_replace('/\\*[\\*\\s]{2,}/', '* ', $sRequest);
// Последовательность звездочек и пробелов, начинающаяся с пробела
$sRequest = preg_replace('/\\s[\\*\\s]{2,}/', ' *', $sRequest);
}
$aReq['q'] = $sRequest;
$aReq['regexp'] = preg_quote(trim(mb_strtolower($aReq['q'])));
// * Проверка длины запроса
if (!F::CheckVal($aReq['regexp'], 'text', Config::Get('module.search.min_length_req'), Config::Get('module.search.max_length_req'))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('search_err_length', array('min' => Config::Get('module.search.min_length_req'), 'max' => Config::Get('module.search.max_length_req'))));
$aReq['regexp'] = '';
}
// Save quoted substrings
$aQuoted = array();
if (preg_match_all('/"([^"]+)"/U', $aReq['regexp'], $aMatches)) {
foreach ($aMatches[1] as $sStr) {
$sSubstKey = 'begin-' . md5($sStr) . '-end';
$aQuoted[0][] = $sSubstKey;
$aQuoted[1][] = $sStr;
}
$aReq['regexp'] = str_replace($aQuoted[1], $aQuoted[0], $aReq['regexp']);
}
/*
* Проверка длины каждого слова в запросе
* Хотя бы одно слово должно быть больше минимальной длины
* Слова меньше минимальной длины исключаем из поиска
*/
if ($aReq['regexp']) {
$aWords = explode(' ', $aReq['regexp']);
$nErr = 0;
$sStr = '';
foreach ($aWords as $sWord) {
if (!F::CheckVal($sWord, 'text', Config::Get('module.search.min_length_req'), Config::Get('module.search.max_length_req'))) {
$nErr += 1;
} else {
if ($sStr) {
$sStr .= ' ';
}
$sStr .= $sWord;
}
}
if ($nErr == sizeof($aWords)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('search_err_length_word', array('min' => Config::Get('module.search.min_length_req'), 'max' => Config::Get('module.search.max_length_req'))));
$aReq['regexp'] = '';
} else {
$aReq['regexp'] = $sStr;
}
}
// * Если все нормально, формируем выражение для поиска
if ($aReq['regexp']) {
if ($this->bSearchStrict) {
$aReq['regexp'] = str_replace('\\*', '*', $aReq['regexp']);
/*
* Проверка на "лишние" символы, оставляем только "слова"
* На месте "небукв" оставляем пробелы
*/
$aReq['regexp'] = preg_replace('/' . $this->sPatternXA . '/iusxSU', ' ', $aReq['regexp']);
$aReq['regexp'] = trim(preg_replace('/(\\s{2,})/', ' ', $aReq['regexp']));
// * Если после "чистки" что-то осталось, то продолжаем дальше
if ($aReq['regexp']) {
$aReq['regexp'] = str_replace('* *', '|', $aReq['regexp']);
$aReq['regexp'] = str_replace('* ', '|[[:<:]]', $aReq['regexp']);
$aReq['regexp'] = str_replace(' *', '[[:>:]]|', $aReq['regexp']);
$aReq['regexp'] = str_replace(' ', '[[:>:]]|[[:<:]]', $aReq['regexp']);
if (mb_substr($aReq['regexp'], 0, 1) == '*') {
$aReq['regexp'] = mb_substr($aReq['regexp'], 1);
} else {
$aReq['regexp'] = '[[:<:]]' . $aReq['regexp'];
}
if (mb_substr($aReq['regexp'], -1) == '*') {
$aReq['regexp'] = mb_substr($aReq['regexp'], 0, mb_strlen($aReq['regexp']) - 1);
} else {
$aReq['regexp'] = $aReq['regexp'] . '[[:>:]]';
}
}
} else {
$aReq['regexp'] = preg_replace('/' . $this->sPatternXA . '/uU', '', $aReq['regexp']);
$aReq['regexp'] = trim(preg_replace('/(\\s{2,})/', ' ', $aReq['regexp']));
//.........这里部分代码省略.........
示例8: EventAjaxUserList
public function EventAjaxUserList()
{
E::ModuleViewer()->SetResponseAjax('json');
if ($this->IsPost()) {
$sList = trim($this->GetPost('invite_listmail'));
if ($aList = F::Array_Str2Array($sList, "\n", true)) {
$iSentCount = 0;
foreach ($aList as $iKey => $sMail) {
if (F::CheckVal($sMail, 'mail')) {
$oInvite = E::ModuleUser()->GenerateInvite($this->oUserCurrent);
if (E::ModuleNotify()->SendInvite($this->oUserCurrent, $sMail, $oInvite)) {
unset($aList[$iKey]);
$iSentCount++;
}
}
}
E::ModuleMessage()->AddNotice(E::ModuleLang()->Get('action.admin.invaite_mail_done', array('num' => $iSentCount)), null, true);
if ($aList) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('action.admin.invaite_mail_err', array('num' => count($aList))), null, true);
}
}
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
}
}
示例9: SubmitComment
/**
* Обработка добавление комментария к письму
*
*/
protected function SubmitComment()
{
// * Проверям авторизован ли пользователь
if (!E::ModuleUser()->IsAuthorization()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем разговор
if (!($oTalk = E::ModuleTalk()->GetTalkById(F::GetRequestStr('cmt_target_id')))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
if (!($oTalkUser = E::ModuleTalk()->GetTalkUser($oTalk->getId(), $this->oUserCurrent->getId()))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем разрешено ли отправлять инбокс по времени
if (!E::ModuleACL()->CanPostTalkCommentTime($this->oUserCurrent)) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('talk_time_limit'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем текст комментария
$sText = E::ModuleText()->Parser(F::GetRequestStr('comment_text'));
$iMin = intval(Config::Get('module.talk.min_length'));
$iMax = intval(Config::Get('module.talk.max_length'));
if (!F::CheckVal($sText, 'text', $iMin, $iMax)) {
if ($iMax) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('talk_create_text_error_len', array('min' => $iMin, 'max' => $iMax)), E::ModuleLang()->Get('error'));
} else {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('talk_create_text_error_min', array('min' => $iMin)), E::ModuleLang()->Get('error'));
}
return false;
}
// * Проверям на какой коммент отвечаем
$sParentId = (int) F::GetRequest('reply');
if (!F::CheckVal($sParentId, 'id')) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
$oCommentParent = null;
if ($sParentId != 0) {
// * Проверяем существует ли комментарий на который отвечаем
if (!($oCommentParent = E::ModuleComment()->GetCommentById($sParentId))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
// * Проверяем из одного топика ли новый коммент и тот на который отвечаем
if ($oCommentParent->getTargetId() != $oTalk->getId()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return false;
}
} else {
// * Корневой комментарий
$sParentId = null;
}
// * Проверка на дублирующий коммент
if (E::ModuleComment()->GetCommentUnique($oTalk->getId(), 'talk', $this->oUserCurrent->getId(), $sParentId, md5($sText))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('topic_comment_spam'), E::ModuleLang()->Get('error'));
return false;
}
// * Создаём комментарий
/** @var ModuleComment_EntityComment $oCommentNew */
$oCommentNew = E::GetEntity('Comment');
$oCommentNew->setTargetId($oTalk->getId());
$oCommentNew->setTargetType('talk');
$oCommentNew->setUserId($this->oUserCurrent->getId());
$oCommentNew->setText($sText);
$oCommentNew->setDate(F::Now());
$oCommentNew->setUserIp(F::GetUserIp());
$oCommentNew->setPid($sParentId);
$oCommentNew->setTextHash(md5($sText));
$oCommentNew->setPublish(1);
// * Добавляем коммент
E::ModuleHook()->Run('talk_comment_add_before', array('oCommentNew' => $oCommentNew, 'oCommentParent' => $oCommentParent, 'oTalk' => $oTalk));
if (E::ModuleComment()->AddComment($oCommentNew)) {
E::ModuleHook()->Run('talk_comment_add_after', array('oCommentNew' => $oCommentNew, 'oCommentParent' => $oCommentParent, 'oTalk' => $oTalk));
E::ModuleViewer()->AssignAjax('sCommentId', $oCommentNew->getId());
$oTalk->setDateLast(F::Now());
$oTalk->setUserIdLast($oCommentNew->getUserId());
$oTalk->setCommentIdLast($oCommentNew->getId());
$oTalk->setCountComment($oTalk->getCountComment() + 1);
E::ModuleTalk()->UpdateTalk($oTalk);
// * Отсылаем уведомления всем адресатам
$aUsersTalk = E::ModuleTalk()->GetUsersTalk($oTalk->getId(), ModuleTalk::TALK_USER_ACTIVE);
foreach ($aUsersTalk as $oUserTalk) {
if ($oUserTalk->getId() != $oCommentNew->getUserId()) {
E::ModuleNotify()->SendTalkCommentNew($oUserTalk, $this->oUserCurrent, $oTalk, $oCommentNew);
}
}
// * Увеличиваем число новых комментов
E::ModuleTalk()->IncreaseCountCommentNew($oTalk->getId(), $oCommentNew->getUserId());
return true;
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
}
return false;
//.........这里部分代码省略.........
示例10: PrepareRequest
/**
* Подготовка запроса на поиск
*
* @return array
*/
protected function PrepareRequest()
{
$aReq['q'] = F::GetRequestStr('q');
if (!F::CheckVal($aReq['q'], 'text', 2, 255)) {
/*
* Если запрос слишком короткий перенаправляем на начальную страницу поиска
* Хотя тут лучше показывать юзеру в чем он виноват
*/
Router::Location(Router::GetPath('search'));
}
$aReq['sType'] = strtolower(Router::GetActionEvent());
// * Определяем текущую страницу вывода результата
$aReq['iPage'] = intval(preg_replace('#^page([1-9]\\d{0,5})$#', '\\1', $this->getParam(0)));
if (!$aReq['iPage']) {
$aReq['iPage'] = 1;
}
// * Передача данных в шаблонизатор
E::ModuleViewer()->Assign('aReq', $aReq);
return $aReq;
}
示例11: 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)) {
//.........这里部分代码省略.........
示例12: EventActivate
/**
* Обрабатывает активацию аккаунта
*/
protected function EventActivate()
{
$bError = false;
// * Проверяет передан ли код активации
$sActivateKey = $this->GetParam(0);
if (!F::CheckVal($sActivateKey, 'md5')) {
$bError = true;
}
// * Проверяет верный ли код активации
if (!($oUser = E::ModuleUser()->GetUserByActivationKey($sActivateKey))) {
$bError = true;
}
// * User is already activated
if ($oUser && $oUser->isActivated()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('registration_activate_error_reactivate'), E::ModuleLang()->Get('error'));
return R::Action('error');
}
// * Если что то не то
if ($bError) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('registration_activate_error_code'), E::ModuleLang()->Get('error'));
return R::Action('error');
}
// * Активируем
if ($this->_activateUser($oUser)) {
$this->DropInviteRegister();
E::ModuleViewer()->Assign('bRefreshToHome', true);
E::ModuleUser()->Authorization($oUser, false);
return;
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
return R::Action('error');
}
}
示例13: AjaxUpdateComment
/**
* Updates comment
*
*/
protected function AjaxUpdateComment()
{
// * Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json');
// * Пользователь авторизован?
if (!$this->oUserCurrent) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return;
}
if (!E::ModuleSecurity()->ValidateSendForm(false) || $this->GetPost('comment_mode') != 'edit') {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
// * Проверяем текст комментария
$sNewText = E::ModuleText()->Parse($this->GetPost('comment_text'));
$iMin = Config::Val('module.comment.min_length', 2);
$iMax = Config::Val('module.comment.max_length', 0);
if (!F::CheckVal($sNewText, 'text', $iMin, $iMax)) {
if ($iMax) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('topic_comment_text_len', array('min' => $iMin, 'max' => $iMax)), E::ModuleLang()->Get('error'));
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('topic_comment_text_min', array('min' => $iMin)), E::ModuleLang()->Get('error'));
}
return;
}
// * Получаем комментарий
$iCommentId = intval($this->GetPost('comment_id'));
/** var ModuleComment_EntityComment $oComment */
if (!$iCommentId || !($oComment = E::ModuleComment()->GetCommentById($iCommentId))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
if (!$oComment->isEditable()) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('comment_cannot_edit'), E::ModuleLang()->Get('error'));
return;
}
if (!$oComment->getEditTime() && !$oComment->isEditable(false)) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('comment_edit_timeout'), E::ModuleLang()->Get('error'));
return;
}
// Если все нормально, то обновляем текст
$oComment->setText($sNewText);
if (E::ModuleComment()->UpdateComment($oComment)) {
$oComment = E::ModuleComment()->GetCommentById($iCommentId);
E::ModuleViewer()->AssignAjax('nCommentId', $oComment->getId());
E::ModuleViewer()->AssignAjax('sText', $oComment->getText());
E::ModuleViewer()->AssignAjax('sDateEdit', $oComment->getCommentDateEdit());
E::ModuleViewer()->AssignAjax('sDateEditText', E::ModuleLang()->Get('date_now'));
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('comment_updated'));
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
}
}
示例14: func_check
function func_check($sValue, $sParam, $iMin = 1, $iMax = 100)
{
return F::CheckVal($sValue, $sParam, $iMin, $iMax);
}
示例15: EventAjaxSubscribeToggle
/**
* Изменение состояния подписки
*/
protected function EventAjaxSubscribeToggle()
{
/**
* Устанавливаем формат Ajax ответа
*/
E::ModuleViewer()->SetResponseAjax('json');
/**
* Получаем емайл подписки и проверяем его на валидность
*/
$sMail = F::GetRequestStr('mail');
if ($this->oUserCurrent) {
$sMail = $this->oUserCurrent->getMail();
}
if (!F::CheckVal($sMail, 'mail')) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('registration_mail_error'), E::ModuleLang()->Get('error'));
return;
}
/**
* Получаем тип объекта подписки
*/
$sTargetType = F::GetRequestStr('target_type');
if (!E::ModuleSubscribe()->IsAllowTargetType($sTargetType)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
$sTargetId = F::GetRequestStr('target_id') ? F::GetRequestStr('target_id') : null;
$iValue = F::GetRequest('value') ? 1 : 0;
$oSubscribe = null;
/**
* Есть ли доступ к подписке гостям?
*/
if (!$this->oUserCurrent && !E::ModuleSubscribe()->IsAllowTargetForGuest($sTargetType)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('need_authorization'), E::ModuleLang()->Get('error'));
return;
}
/**
* Проверка объекта подписки
*/
if (!E::ModuleSubscribe()->CheckTarget($sTargetType, $sTargetId, $iValue)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}
/**
* Если подписка еще не существовала, то создаем её
*/
if ($oSubscribe = E::ModuleSubscribe()->AddSubscribeSimple($sTargetType, $sTargetId, $sMail, $this->oUserCurrent ? $this->oUserCurrent->getId() : null)) {
$oSubscribe->setStatus($iValue);
E::ModuleSubscribe()->UpdateSubscribe($oSubscribe);
E::ModuleMessage()->AddNotice(E::ModuleLang()->Get('subscribe_change_ok'), E::ModuleLang()->Get('attention'));
return;
}
E::ModuleMessage()->AddError(E::ModuleLang()->Get('system_error'), E::ModuleLang()->Get('error'));
return;
}