예제 #1
0
 /**
  * Отправка сообщения.
  * 
  * @param type $attr
  */
 public function _ceSend($attr)
 {
     $user = new users();
     $messages = new messages();
     $stopWords = new stop_words(false);
     $user->getUserByUID(intval($attr->uid));
     if (empty($user->login) || $user->login == 'admin') {
         self::error(3, false);
         return;
     }
     if ($user->is_banned) {
         self::error(4, false);
         return;
     }
     $text = iconv('UTF-8', 'CP1251', $attr->text);
     $text = antispam(change_q_x($text, false, true, null, false, false));
     $messages->Add($this->_uid, $user->login, addslashes($text), array(), 0, false, null, $id);
     if (!is_pro() && !is_pro(true, $attr->uid)) {
         if (!hasPermissions('streamnomod') && !hasPermissions('streamnomod', $attr->uid)) {
             $stopWords = new stop_words(false);
             $text = $stopWords->replace($text);
         }
     }
     $text = reformat($text, 14, 0, 0, 1);
     $time = date('Y-m-d H:i:s');
     $data = array('func' => 'income', 'attr' => array('id' => $id, 'uid' => $this->_uid, 'cuid' => $user->uid, 'text' => iconv('CP1251', 'UTF-8', $text), 'files' => array(), 'date' => $time));
     $this->_addEvent($data);
     return array('id' => $id, 'uid' => $user->uid, 'text' => iconv('CP1251', 'UTF-8', $text), 'date' => $time);
 }
예제 #2
0
 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/articles.php';
 $id = __paramInit('int', null, 'id');
 if (articles::setDecline($id, $uid)) {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
     $article = articles::getArticle($id);
     $adm = new users();
     $adm->getUser('admin');
     $text = "Здравствуйте, {$article['uname']}. \r\n\r\n";
     $text .= "Ваша статья «{$article['title']}» поступила на модерацию в раздел «Статьи и интервью» сайта Free-lance.ru. ";
     $text .= "К сожалению, ее формат не подходит для публикации в этом разделе. \r\n\r\n";
     $text .= "Вы можете опубликовать свою работу в блогах для ознакомления или в своем портфолио по инструкции http://feedback.free-lance.ru/article/details/id/204 . \r\n";
     $text .= "Команда Free-lance.ru благодарит вас за участие в жизни нашего портала. \r\n\r\n";
     $text .= "С уважением, \r\n";
     $text .= 'Алена, редактор Free-lance.ru';
     messages::Add($adm->uid, $article['login'], addslashes($text));
     $q = array();
     parse_str(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY), $q);
     if (isset($q['id'])) {
         unset($q['id']);
     }
     if ($q['p']) {
         $count = $q['page'] == 'unpublished' ? articles::ArticlesCount(false) : articles::ArticlesCount();
         if ($count - 1 < (intval($q['p']) - 1) * $msgs_on_page) {
             $q['p'] = $q['p'] - 1;
             if ($q['p'] < 2) {
                 unset($q['p']);
             }
         }
     }
     header('Location: /articles/' . url($GET, $q, true, '?'));
예제 #3
0
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/captcha.php";
     $captchanum = $_POST['captchanum'];
     $captcha = new captcha($captchanum);
     $rnd = $_POST['rndnum'];
     if (!$captcha->checkNumber(trim($rnd))) {
         $error_flag = 1;
         $alert[4] = "Вы ввели неверную комбинацию символов";
     }
 }
 // если запрошено обновление капчи в PDA
 $newCaptcha = $_POST['newcaptcha'];
 if ($newCaptcha) {
     $alert = array();
 }
 if ($chat_with != $_SESSION['login'] && !$error_flag) {
     list($alert, $error) = messages::Add(get_uid(), $chat_with, $msg, $files, 0, false, $attachedfiles_session);
     if (!$error && isNulArray($alert)) {
         messages::updateSendLog(get_uid(false));
         if ($draft_id) {
             require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php";
             drafts::DeleteDraft(intval($draft_id), get_uid(false), 2, true);
         }
         //Если сообщение фрилансеру то разрешаем отправку сообщений обратно
         if (!is_emp($chat_user->role)) {
             messages::setIsAllowed($uid, $chat_user->uid);
         }
         unset($msg);
         header("Location: " . $_SERVER["REQUEST_URI"]);
         exit;
     }
 }
예제 #4
0
    /**
     * отправляет сообщение что аккаунт партнера по СБР заблокирован
     * @param array $partnersLogins массив с логинами получателей уведомления
     * @param string $login логин заблокированного пользователя
     */
    function yourSbrPartnerIsBanned(array $partnersLogins, $login)
    {
        if (!is_array($partnersLogins)) {
            return;
        }
        $message = 'Free-lance.ru: заблокирован пользователь, с которым вы заключили «Безопасную Сделку»

Здравствуйте!

Сообщаем вам, что пользователь [' . $login . '], с которым вы работаете через сервис «Безопасная Сделка», был заблокирован администрацией сайта. Для завершения текущих сделок с данным пользователем обратитесь в Арбитраж.

Подробная инструкция по завершению сотрудничества через арбитражную комиссию находится в соответствующей статье раздела «Помощь».

Приятной работы!
Команда Free-lance.ru';
        foreach ($partnersLogins as $targetLogin) {
            messages::Add(users::GetUid($err, "admin"), $targetLogin, $message, '', 1);
        }
    }
예제 #5
0
 /**
  * Отсылка уведомления в личку об Утверждение/удаление записи
  * 
  * @param  int $user_id идентификатор модератора
  * @param  int $from_id идентификатор пользователя
  * @param  int $content_id идентификатор сущности из admin_contents
  * @param  int $rec_id идентификатор записи
  * @param  int $rec_type тип записи 
  * @param  int $action действие: 1 - утверждено, 2 - удалено
  * @param  string $reason причина
  * @return bool true - успех, false - провал
  */
 function sendNotification($user_id = 0, $from_id = 0, $content_id = 0, $rec_id = 0, $rec_type = 0, $action = 1, $reason = '')
 {
     global $DB;
     if ($action != 2) {
         return;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/admin_parent.php';
     $need_send = false;
     $users = new users();
     $users->GetUserByUID($from_id);
     $reason = str_replace('%USERNAME%', $users->uname . ' ' . $users->usurname, $reason);
     switch ($content_id) {
         case self::MODER_MSSAGES:
             // Личные сообщения
             $DB9 = new DB('plproxy');
             $sQuery = 'SELECT * FROM messages_moder_send_get(?i, ?i);';
             $aMsg = $DB9->row($sQuery, $from_id, $rec_id);
             $msg = $aMsg['msg_text'];
             $message = "Сообщение заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_BLOGS:
             // Блоги: посты и комментарии
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/blogs.php';
             $aMsg = blogs::GetMsgInfo($rec_id, $ee, $tt);
             $msg = $aMsg['msgtext'];
             if ($rec_type == 1) {
                 $message = "Сообщение в блоге заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             }
             if ($rec_type == 2) {
                 $message = "Комментарий в блоге заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             }
             $need_send = true;
             break;
         case self::MODER_COMMUNITY:
             // Сообщества: посты и комментарии
             $sql = "SELECT * FROM commune_messages WHERE id = ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['msgtext'];
             if ($rec_type == 1) {
                 $message = "Сообщение в сообществе заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             }
             if ($rec_type == 2) {
                 $message = "Комментарий в сообществе заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             }
             $need_send = true;
             break;
         case self::MODER_PROJECTS:
             // Проекты
             $sql = "SELECT * FROM projects WHERE id= ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['descr'];
             $message = "Проект заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_PRJ_OFFERS:
             // Предложения в проектах
             $sql = "SELECT * FROM projects_offers WHERE id = ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['descr'];
             $message = "Предложение в проекте заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_ART_COM:
             // Комментарии в статьях
             $sql = "SELECT * FROM articles_comments WHERE id = ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['msgtext'];
             $message = "Комментарий в статьях заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_PROFILE:
             // Изменения в профилях
             $message = "Изменение в профиле отредактировано.\n\nПричина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_PRJ_DIALOG:
             // Комментарии к предложениям по проектам
             $sql = "SELECT * FROM projects_offers_dialogue WHERE id = ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['post_text'];
             $message = "Комментарий к предложению проекта заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_CONTEST_COM:
             // Комментарии к предложениям конкурсов
             $sql = "SELECT * FROM projects_contest_msgs WHERE id = ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['msg'];
             $message = "Комментарии к предложению конкурса заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_PORTF_CHOISE:
             // Уточнения к разделам в портфолио
             $message = "Уточнения к разделам в портфолио отредактированы.\n\nПричина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_PORTFOLIO:
             // Работы в портфолио
             $message = "Работа в портфолио заблокирована.\n\nПричина: {$reason}";
             $need_send = true;
             break;
         case self::MODER_SDELAU:
             // Предложения фрилансеров "Сделаю"
             $sql = "SELECT * FROM freelance_offers WHERE id = ?i";
             $aMsg = $DB->row($sql, $rec_id);
             $msg = $aMsg['descr'];
             $message = "Объявление в предложениях фрилансеров заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}";
             $need_send = true;
             break;
     }
     if ($need_send) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
         $users = new users();
         messages::Add(users::GetUid($err, 'admin'), $users->GetField($from_id, $err, 'login'), $message, '', 1);
     }
 }
예제 #6
0
 /**
  * Отправка ЛС по заказу ТУ
  * 
  * @param string $login
  * @param string $message
  */
 public function sendOrderStatus($login, $message)
 {
     messages::Add(users::GetUid($err, 'admin'), $login, $message, '', 0, TRUE);
 }
예제 #7
0
    /**
     * Уведомление об удалении предложений фрилансеров
     * 
     * @param mixed $mId ID предложения фрилансера / массив ID предложений фрилансеров
     */
    function freelancerOfferBlockedNotification($mId)
    {
        $sId = !is_array($mId) ? array($mId) : $mId;
        $sQuery = 'SELECT o.title, o.post_date, o.reason, f.uid, f.login, f.uname, f.usurname
            FROM freelance_offers o 
            INNER JOIN freelancer f ON f.uid = o.user_id 
            WHERE o.id IN (?l)';
        $aOffers = $GLOBALS['DB']->rows($sQuery, $sId);
        if ($aOffers) {
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
            foreach ($aOffers as $aOne) {
                $sMessage = 'Здравствуйте, ' . $aOne['uname'] . ' ' . $aOne['usurname'] . '

Сожалеем, но из-за нарушения Правил модераторы сайта вынуждены были заблокировать вашу услугу &laquo;' . $aOne['title'] . '&raquo;  от ' . date('d.m.Y', strtotimeEx($aOne['post_date'])) . ' в разделе &laquo;Сделаю&raquo;

Причина блокировки: ' . $aOne['reason'] . '

Просим вас впредь быть внимательнее при публикации услуг и соблюдать Правила сайта. 

Это сообщение было отправлено автоматически и не требует ответа. 

Надеемся на понимание, Команда FL.ru
';
                messages::Add(users::GetUid($err, 'admin'), $aOne['login'], $sMessage, '', 1);
            }
        }
    }
예제 #8
0
    /**
     * Уведомление об удалении комментария или поста в блогах.
     *
     * @param int   $moderator_uid - идентификатор автора блога
     * @param array $userSubscribe - массив идентификаторов сообщений подписаных польователей
     * */
    public function sendBlogPostDeleted($moderator_uid, $userSubscribe)
    {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
        // Посылаем подписавшимся на темы
        if ($userSubscribe) {
            $moderator = new users();
            $moderator->GetUserByUID($moderator_uid);
            $a_login = $moderator->login;
            $a_uname = $moderator->uname;
            $a_usurname = $moderator->usurname;
            foreach ($userSubscribe as $comment) {
                if (substr($comment['s_subscr'], 2, 1) == '1' && !$notSend[$comment['s_uid']] && $comment['s_email']) {
                    $this->subject = 'В блоге на сайте FL.ru удален комментарий';
                    $post_type = "комментарий в <a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}&openlevel={$comment['id']}{$this->_addUrlParams('b', '&')}#o{$comment['id']}'>в блоге</a>, на который вы подписаны";
                    if ($comment['s_uid'] == $comment['uid']) {
                        $this->subject = 'Ваш комментарий в блоге на сайте FL.ru удален';
                        $post_type = "ваш комментарий в <a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}&openlevel={$comment['id']}{$this->_addUrlParams('b', '&')}#o{$comment['id']}'> блоге</a>";
                    }
                    $message_template = 'subscribe_delete_comment';
                    if ($comment['reply_to'] == '') {
                        $this->subject = 'На сайте FL.ru удален блог';
                        $post_type = 'блог, на который вы подписаны';
                        if ($comment['s_uid'] == $comment['uid']) {
                            $this->subject = 'Ваш пост в блогах на сайте FL.ru удален';
                            $post_type = 'ваш пост в блогах';
                        }
                        $message_template = 'subscribe_delete_post';
                    }
                    $link_title = "<a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}{$this->_addUrlParams('b', '&')}' target='_blank'>" . ($comment['blog_title'] == '' ? 'Без названия' : $comment['blog_title']) . '</a>';
                    $this->message = $this->GetHtml($comment['s_uname'], "\n\tПользователь <a href='{$GLOBALS['host']}/users/{$a_login}/{$this->_addUrlParams('b')}'>{$a_uname} {$a_usurname}</a> [<a href='{$GLOBALS['host']}/users/{$a_login}{$this->_addUrlParams('b')}'>{$a_login}</a>]\n\tудалил(-а) {$post_type} на сайте FL.ru.\n\t<br /> --------\n\t<br />" . ($comment['title'] ? $this->ToHtml(input_ref(LenghtFormatEx($comment['title'], 300), 1)) . '<br />---<br />' : '') . $this->ToHtml(input_ref(LenghtFormatEx($comment['msgtext'], 300), 1)) . '
	<br /> --------
	<br />
	', array('header' => $message_template, 'footer' => 'subscribe'), array('type' => 1, 'title' => $link_title));
                    $this->recipient = $comment['s_uname'] . ' ' . $comment['s_usurname'] . ' [' . $comment['s_login'] . '] <' . $comment['s_email'] . '>';
                    $this->SmtpMail('text/html');
                    $message = 'Здравствуйте, ' . $comment['s_uname'] . ".                \n\tПользователь <a href='{$GLOBALS['host']}/users/{$a_login}/{$this->_addUrlParams('b')}'>{$a_uname} {$a_usurname}</a> [<a href='{$GLOBALS['host']}/users/{$a_login}{$this->_addUrlParams('b')}'>{$a_login}</a>]\n    удалил(-а) {$post_type} на сайте FL.ru.\n\t--------" . ($comment['title'] ? $this->ToHtml(input_ref(LenghtFormatEx($comment['title'], 300), 1)) . '
	---
	' : '') . $this->ToHtml(input_ref(LenghtFormatEx($comment['msgtext'], 300), 1)) . '
	 --------
	 ';
                    messages::Add(users::GetUid($err, 'admin'), $comment['s_login'], $message, '', 1);
                }
            }
        }
    }
예제 #9
0
 /**
  * Модератор отвергает рассылку, деньги возращаются юзеру.
  *
  * @param integer  $id             ИД Рассылки
  * @param string   $denied_reason  Причина отказа
  * @param string   $error          Возвращает сообщение об ошибке
  * @return integer 1 - все сработало как надо, 0 - ошибка 
  */
 public function Deny_new($id, $reason, $row)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/messages.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
     $this->error = '';
     global $DB;
     /*$sql = 'SELECT * FROM mass_sending WHERE id = ? AND is_accepted IS NULL';
     		
     		if (!($row = $DB->row($sql, $id))) {
     			$this->error = 'Рассылка выбрана неправильно';
     			return FALSE;
     		}*/
     $account = new account();
     $account->GetInfo($row['user_id']);
     if (!$account->id) {
         $this->error = 'Ошибка. Не опеределен счет пользователя.';
         return FALSE;
     }
     $users = new users();
     $user = $users->GetName($row['user_id'], $e);
     $login = $user['login'];
     $users->GetUser($login);
     $admin_id = users::GetUid($err, 'admin');
     $text = "Здравствуйте!\n\nАдминистрацией нашего ресурса было принято решение отказать Вам в рассылке по каталогу по причине:\n\n\"\n" . stripslashes($reason) . "\n\"\n\nЭто сообщение было выслано автоматически и ответ на него не будет рассматриваться.\n\nНадеемся на понимание, Команда Free-lance.ru. \n\nИсходный текст Вашей рассылки:\n\n---\n" . html_entity_decode($row['msgtext'], ENT_QUOTES) . "\n--- ";
     // уведомляем автора о разрешении рассылки
     $smail = new smail();
     $smail->subject = "Ваша заявка на рассылку не прошла модерацию";
     $smail->recipient = $users->uname . " " . $users->usurname . " [" . $users->login . "] <" . $users->email . ">";
     $reason = $smail->ToHtml($reason);
     $body = "Ваша заявка на рассылку была отклонена модераторами сайта Free-lance.ru.<br/> \n              Причина:<br/>\n              ---<br/>\n              {$reason}<br/>\n              ---<br/>\n          ";
     $smail->message = $smail->GetHtml($users->uname, $body, array('header' => 'default', 'footer' => 'simple'));
     $smail->send('text/html');
     messages::Add($admin_id, $login, $text, '', 1);
     if (!$DB->query("UPDATE mass_sending SET denied_reason = ?, is_accepted=false, decided_time=now() WHERE id=?", $reason, $id)) {
         $this->error = 'Произошла ошибка при установлении статуса "Отказано".';
         return FALSE;
     }
     return TRUE;
 }
예제 #10
0
 /**
  * Добавление личного сообщения
  * 
  * @param  array $aParams массив входящих данных
  * @return array $aResult ответ
  */
 protected function x____messages_send($aParams = array())
 {
     $this->_validDevice($aParams);
     $nUid = get_uid(false);
     $nTo = intvalPgSql($aParams['to_id']);
     if (!empty($nTo)) {
         require_once ABS_PATH . '/classes/users.php';
         $oUser = new users();
         $oUser->GetUserByUID($nTo);
         if ($oUser->uid) {
             if ($oUser->uid != $nUid) {
                 if (empty($oUser->is_banned)) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/ignor.php';
                     $bIgnor = ignor::CheckIgnored($oUser->uid, $nUid) || in_array($oUser->login, array('admin', 'Anonymous'));
                     if (!$bIgnor) {
                         $sMessage = __paramValue('html', antispam(iconv('utf-8', 'cp1251', $aParams['text'])), null, true);
                         if (!$sMessage || trim($sMessage) == '') {
                             $this->error(EXTERNAL_ERR_EMPTY_MESSAGE);
                         } elseif ($sMessage && strlen($sMessage) > $this->_mCfg['text_limit']) {
                             $this->error(EXTERNAL_ERR_LENGTH_MESSAGE);
                         }
                         require_once ABS_PATH . '/classes/messages.php';
                         list($alert, $error) = messages::Add($nUid, $oUser->login, $sMessage, array(), 0, false, null, $sId);
                         if (!$error && isNulArray($alert)) {
                             messages::updateSendLog($nUid);
                         } else {
                             $this->error(EXTERNAL_ERR_SERVER_ERROR);
                         }
                         $aResult = array("message" => array("id" => $sId, "from_id" => $nUid, "to_id" => $oUser->uid, "text" => $aParams['text'], "status" => 1, "read" => 0, "create_time" => time(), "update_time" => time()));
                     } else {
                         $this->error(EXTERNAL_ERR_MESSAGE_IGNOR);
                     }
                 } else {
                     $this->error(EXTERNAL_ERR_USER_BANNED);
                 }
             } else {
                 $this->error(EXTERNAL_ERR_SELF_MESSAGE);
             }
         } else {
             $this->error(EXTERNAL_ERR_USER_NOTFOUND);
         }
     } else {
         $this->error(EXTERNAL_ERR_EMPTY_USER_ID);
     }
     return $aResult;
 }