예제 #1
0
 /**
  * Изменение логина юзера. Перед вызовом необходимо проинициализировать члены класса
  * old_login, new_login, save_old.
  * 
  * @param string $error	возвращает сообщение об ошибке	
  *
  * @return 0
  *
  * @see classes/db_access#Add($error, $return_id)
  */
 public function Add(&$error)
 {
     global $DB;
     require_once ABS_PATH . '/classes/users.php';
     $user = new users();
     $this->user_id = $user->GetUid($error, $this->old_login);
     if (!$this->user_id) {
         $error = 'Пользователь не найден!';
         return 0;
     }
     $new_user = $user->GetUid($error, $this->new_login);
     if ($new_user) {
         $error = 'Логин занят!';
         return 0;
     }
     if ($this->save_old) {
         require_once ABS_PATH . '/classes/users_old.php';
         require_once ABS_PATH . '/classes/account.php';
         $account = new account();
         $tr_id = $account->start_transaction($this->user_id);
         $id = 0;
         $error = $account->Buy($id, $tr_id, self::OP_CODE, $this->user_id, 'Изменеие логина', 'Изменение логина');
         if ($error) {
             return 0;
         }
         $this->operation_id = $id;
         $users_old = new users_old();
         $users_old->Add($this->old_login);
     }
     if (!$error) {
         $aData = array('user_id' => '', 'old_login' => '', 'new_login' => '', 'save_old' => '', 'operation_id' => '');
         foreach ($aData as $key => $val) {
             $aData[$key] = $this->{$key};
         }
         $CFile = new CFile();
         if (!$CFile->MoveDir($this->new_login, $this->old_login)) {
             $error = "Директория не создана! {$this->new_login}, {$this->old_login}";
             if ($this->operation_id) {
                 $account->Del($this->user_id, $this->operation_id);
             }
         } else {
             $DB->insert('login_change', $aData);
             $user->login = $this->new_login;
             $user->Update($this->user_id, $res);
         }
     }
     return 0;
 }
예제 #2
0
 /**
  * Добавляет пользователя в список игнорирования.
  *
  * @param integer $user_id      id пользователя, добавляющего другого в игнор-лист
  * @param string  $target_login логин пользователя, добаляемого в игнор-лист
  *
  * @return string пустая строка или сообщение об ошибке в случае неуспеха
  */
 public function Add($user_id, $target_login)
 {
     global $usersNotBeIgnored;
     if (empty($user_id) || empty($target_login) || in_array($target_login, $usersNotBeIgnored)) {
         return false;
     }
     $user = new users();
     $user->login = $target_login;
     $target_id = $user->GetUid($error);
     $DB = new DB();
     $r = $DB->val('SELECT ignor_add(?i, ?i)', $user_id, $target_id);
     return '';
 }
예제 #3
0
 /**
  * Файлы переписки в ЛС доступны участникам и админу.
  * 
  * @param type $params
  * @param CFile $file
  *
  * @return type
  */
 protected function _contacts($params, CFile $file)
 {
     //нет необходимости так как в общей таблице
     //$tableName = $file->getTableName();
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
     $allow_download = false;
     $users = new users();
     $from_uid = $users->GetUid($error, $params['login']);
     if ($from_uid > 0) {
         $msgObj = new messages();
         $allow_download = $msgObj->isFileExist($from_uid, $this->uid, $file->id);
     }
     return $allow_download;
 }
예제 #4
0
 /**
  * Добавляет/удаляет пользователя в личную папку
  *
  * @param string $login             логин пользователя, над которым производим действия
  *
  * @return integer
  */
 function Change($login)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
     $DB = new DB();
     $ok = FALSE;
     $this->to_id = users::GetUid($error, $login);
     $res = $DB->query("SELECT * FROM messages_folders(?i)", $this->from_id);
     while ($row = pg_fetch_assoc($res)) {
         if ($row['id'] == $this->folder) {
             $ok = TRUE;
             break;
         }
     }
     if ($this->to_id && $this->from_id) {
         $id = $DB->val("SELECT messages_folders_user_move(?i, ?i, ?i)", $this->from_id, $this->to_id, $this->folder);
     }
     return $id;
 }
예제 #5
0
    /**
     * отправляет сообщение что аккаунт партнера по СБР заблокирован.
     *
     * @param array  $partnersLogins массив с логинами получателей уведомления
     * @param string $login          логин заблокированного пользователя
     */
    public function yourSbrPartnerIsBanned(array $partnersLogins, $login)
    {
        if (!is_array($partnersLogins)) {
            return;
        }
        $message = 'Free-lance.ru: заблокирован пользователь, с которым вы заключили «Безопасную Сделку»

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

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

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

Приятной работы!
Команда Free-lance.ru';
        foreach ($partnersLogins as $targetLogin) {
            self::Add(users::GetUid($err, 'admin'), $targetLogin, $message, '', 1);
        }
    }
예제 #6
0
 /**
  * Обработчик вывода страницы /send/ - "Передать деньги".
  */
 public function sendAction()
 {
     if (!hasPermissions('payments')) {
         include $_SERVER['DOCUMENT_ROOT'] . '/404.php';
         exit;
     }
     front::og('tpl')->page = 'send';
     front::og('tpl')->script = '/scripts/bill2.js';
     self::isBlockMoney();
     /**
      * Подключаем AJAX для страницы.
      */
     require_once $_SERVER['DOCUMENT_ROOT'] . '/xajax/bill.common.php';
     front::og('tpl')->xajax = $xajax;
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/account.php';
     $canTransfer = account::checkDepositByNotCard(get_uid(false));
     front::og('tpl')->canTransfer = $canTransfer;
     // Обработка события подтверждения перевода
     if ($_POST['action'] == 'sendm' && !$_POST['last_action'] && $canTransfer) {
         $trs_sum = round(floatval($_POST['sum']), 2);
         $sum = round(floatval(str_replace(',', '.', trim($_POST['sum']))));
         // сумма перевода
         $login = trim(strip_tags($_POST['login']));
         $msg = __paramInit('string', null, 'msg', null, 300);
         $tr_id = $_REQUEST['transaction_id'];
         front::og('tpl')->tr_id = $tr_id;
         front::og('tpl')->login = $login;
         front::og('tpl')->msg = $msg;
         front::og('tpl')->sum = $sum;
         $user = new users();
         $gid = $user->GetUid($error, $login);
         if (!$gid) {
             $error = 1;
             $alert['login'] = '******';
         }
         if ($sum > 0 && $this->account->sum < $sum) {
             $error = 1;
             $alert['sum'] = 'Недостаточно средств';
         }
         if ($sum <= 0) {
             $error = 1;
             $alert['sum'] = 'Значение должно быть больше нуля';
         }
         if (!$error) {
             // Ошибок нет все круто
             $order_id = $this->account->transfer(get_uid(), $gid, $sum, $tr_id, $msg, true, $trs_sum);
             if (!$order_id) {
                 header('Location: /bill/fail/');
                 die;
             } else {
                 header("Location: /{$this->name_page}/success/");
                 die;
             }
         } else {
             // Если есть ошибки выводим ту же страницу но с другой капчей
             $inner = 'send2.php';
             $user->GetUser($login);
             $transaction_id = $tr_id;
             front::og('tpl')->user = $user;
             front::og('tpl')->alert = $alert;
             front::og('tpl')->display('bill/bill_send2.tpl');
             return true;
         }
         front::og('tpl')->alert = $alert;
     }
     if ($_POST['last_action']) {
         $sum = floatval(trim($_POST['sum']));
         $login = trim($_POST['login']);
         $msg = trim($_POST['msg']);
         $tr_id = $_REQUEST['transaction_id'];
         front::og('tpl')->tr_id = $tr_id;
         front::og('tpl')->login = $login;
         front::og('tpl')->msg = $msg;
         front::og('tpl')->sum = $sum;
     }
     front::og('tpl')->display('bill/bill_send.tpl');
 }
예제 #7
0
     $dialog = $msgs->GetMessages(get_uid(), $chat_with, $num_msgs_from, $curpage, $page_size);
     //$_SESSION['newmsgs'] = $msgs->GetNewMsgCount($_SESSION['uid'], $err);
     $user = new users();
     $user->GetUser($chat_with);
     if (!is_pro(true, $user->uid) && !is_emp($user->role) && count($dialog) == 0 && is_emp($_SESSION['role'])) {
         $is_contact_splash = true;
     }
     if ($user->login == '') {
         header("Location: /404.php");
     }
     // Если пользователь забанен
     if ($user->is_banned && !hasPermissions('users')) {
         $error_flag = 1;
         $alert[3] = "Этот пользователь заблокирован. Вы не можете отправить ему личное сообщение";
     }
     $dlg_user = users::GetUid($err, $user->login);
     $dlg_user_login = $user->login;
     if ($post_denied = ignor::CheckIgnored($dlg_user, $_SESSION['uid']) || in_array($user->login, array('admin', 'Anonymous'))) {
         $error = "Пользователь запретил отправлять ему сообщения";
     }
     if (!$post_denied && is_emp($user->role)) {
         $is_allow_messages = messages::isAllowed($user->uid, $uid);
         $post_denied = !$is_allow_messages;
     }
     $prjname = $_POST['prjname'];
     $cnt_role = substr($user->role, 0, 1) == '0' ? "frl" : "emp";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/memBuff.php";
     $memBuff = new memBuff();
     $memBuff->delete("msgsCnt" . get_uid(false));
     #		$css_file = "";
 }
예제 #8
0
 /**
  * Проверка депозита и зачисление денег на счет.
  *
  * @param integer $op_id        Возвращает Код операции
  * @param integer $err_code     Возвращает Код ошибки
  * @param integer $ammount      Возвращает Сумма депозита
  * @param string $login         Логин депозитчика
  * @param integer $operation_id ИД Операции
  * @param string $op_date       Дата операции
  * @return string Сообщение об ошибке
  */
 function checkdeposit(&$op_id, &$err_code, &$ammount, $login, $operation_id, $op_date)
 {
     if (floatval($ammount) <= 0) {
         $err_code = 241;
         return "Неверная сумма!";
     }
     if (!$operation_id) {
         return "Неверный идентификатор операции!";
     }
     if (!$op_date) {
         $err_code = 300;
         return "Неверная дата операции!";
     }
     $date_arr = strptime($op_date, "%Y%m%d%H%M%S");
     $date = $date_arr['tm_year'] + 1900 . "-" . ($date_arr['tm_mon'] + 1) . "-" . $date_arr['tm_mday'] . " " . $date_arr['tm_hour'] . ":" . $date_arr['tm_min'] . ":" . $date_arr['tm_sec'];
     if (strtotime($date) == -1) {
         $err_code = 300;
         return "Неверная дата операции!";
     }
     $user = new users();
     $uid = $user->GetUid($error, $login);
     if (!$uid) {
         $err_code = 5;
         $error = "Неверный счет на сайте!";
     } elseif (!$this->GetInfo($uid)) {
         $err_code = 79;
         $error = "Счет абонента не активен.";
     }
     $descr = "ОСМП от {$date} сумма - {$ammount}, номер покупки ОСМП {$operation_id}";
     $op_id = 0;
     $op_code = 12;
     $amm = $ammount;
     $old_payment = $this->SearchPaymentByDescr("номер покупки ОСМП {$operation_id}");
     if ($old_payment) {
         $op_id = $old_payment['id'];
         $ammount = $old_payment['trs_sum'];
     } else {
         $error = $this->deposit($op_id, $this->id, $amm, $descr, 8, $ammount, $op_code, 0, $date);
         if ($error) {
             $error = "Невозможно завершить оплату. Повторите позже";
             $err_code = 1;
         }
     }
     return $error;
 }
예제 #9
0
파일: teams.php 프로젝트: amage/fl-ru-damp
 /**
  * Удаление пользователя из избранного по его логину
  *
  * @param integer $user_id     id пользователя в избранном которого нужно удалить пользователя
  * @param string  $target_login   login пользователя, которого нужно удалить
  * @return string  текст ошибки операции или пустая строка
  */
 function teamsDelFavoritesByLogin($user_id, $target_login)
 {
     $DB = new DB();
     $error = '';
     if ($user_id && ($target_id = users::GetUid($error, $target_login))) {
         $DB->query("SELECT teams_del(?i, ?i)", $user_id, $target_id);
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/pmail.php";
         $mail = new pmail();
         $mail->delTeamPeople($user_id, $target_id);
     } else {
         $error = "Юзер не определен";
     }
     return $error;
 }
예제 #10
0
 /**
  * Собирает WHERE часть SQL запроса истории админских действий
  */
 function _setLogWhere()
 {
     $this->aSQL['where'] = array();
     $sCurrDate = date('Y-m-d');
     // если не админ - то показывать только те действия на которые юзер имеет права
     if (!in_array('all', $this->user_permissions)) {
         $sSearch = '|' . implode('|', $this->user_permissions) . '|';
         $this->aSQL['where'][] = "position('|'||a.rights||'|' in '{$sSearch}' ) > 0";
     }
     if (self::isFilter('in_id')) {
         $ids = is_array($this->filter['in_id']) ? $this->filter['in_id'] : array($this->filter['in_id']);
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.id IN (?l)', $ids);
     }
     if (self::isFilter('date_from')) {
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.act_time >= ?::timestamp without time zone', $this->filter['date_from']);
     }
     if (self::isFilter('date_to') && $this->filter['date_to'] < $sCurrDate) {
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.act_time <= ?::timestamp without time zone', date('Y-m-d', strtotime($this->filter['date_to'] . '+1 day')));
     }
     if (self::isFilter('act_id')) {
         $ids = is_array($this->filter['act_id']) ? $this->filter['act_id'] : array($this->filter['act_id']);
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.act_id  IN (?l)', $ids);
     }
     if (self::isFilter('not-act_id')) {
         $ids = is_array($this->filter['not-act_id']) ? $this->filter['not-act_id'] : array($this->filter['not-act_id']);
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.act_id NOT IN (?l)', $ids);
     }
     if (self::isFilter('obj_code')) {
         $this->aSQL['count_join']['admin_actions'] = 1;
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('a.obj_code = ?i', $this->filter['obj_code']);
     }
     if (self::isFilter('object_id')) {
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.object_id = ?i', $this->filter['object_id']);
     }
     if (self::isFilter('admin_id')) {
         $this->aSQL['where'][] = $GLOBALS['DB']->parse('l.admin_id = ?i', $this->filter['admin_id']);
     }
     if (self::isFilter('search')) {
         $sSearch = pg_escape_string($this->filter['search']);
         $sAdd = $this->mode == 'proj' && preg_match('/^[\\d]+$/', $sSearch) ? " OR l.object_id = '{$sSearch}'" : '';
         $sAdd2 = '';
         if ($this->mode == 'proj' || $this->mode == 'offer') {
             $sAdd2 = " OR au.\"login\" ILIKE '%{$sSearch}%' OR au.uname ILIKE '%{$sSearch}%' OR au.usurname ILIKE '%{$sSearch}%'";
         }
         if ($this->mode == 'log') {
             $user = new users();
             $uid = (int) $user->GetUid($err, $sSearch);
             if ($uid) {
                 $sAdd2 = " OR l.user_id = {$uid}";
             }
         }
         $this->aSQL['where'][] = "(l.object_name ILIKE '%{$sSearch}%' OR l.admin_comment ILIKE '%{$sSearch}%' {$sAdd} {$sAdd2})";
     }
     if (self::isFilter('category')) {
         if (self::isFilter('sub_category')) {
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
             //$ids = professions::GetMirroredProfs( $this->filter['sub_category'] );
             if ($this->mode == 'proj') {
                 //$this->aSQL['where'][] = $GLOBALS['DB']->parse( 'EXISTS (SELECT 1 from project_to_spec WHERE project_id = l.object_id AND subcategory_id IN (?l))', $ids );
                 $this->aSQL['where'][] = $GLOBALS['DB']->parse('EXISTS (SELECT 1 from project_to_spec WHERE project_id = l.object_id AND subcategory_id = ?i)', $this->filter['sub_category']);
             } elseif ($this->mode == 'offer') {
                 //$this->aSQL['where'][] = $GLOBALS['DB']->parse('fo.subcategory_id IN (?l)', $ids );
                 $this->aSQL['where'][] = $GLOBALS['DB']->parse('fo.subcategory_id = ?i', $this->filter['sub_category']);
             }
         } else {
             if ($this->mode == 'proj') {
                 $this->aSQL['where'][] = $GLOBALS['DB']->parse('EXISTS (SELECT 1 from project_to_spec WHERE project_id = l.object_id AND category_id = ?i)', $this->filter['category']);
             } elseif ($this->mode == 'offer') {
                 $this->aSQL['where'][] = $GLOBALS['DB']->parse('fo.category_id = ?i', $this->filter['category']);
             }
         }
     }
     // фильтр по часам (смены работы модераторов)
     if (self::isFilter('time')) {
         $time = array();
         foreach ($this->filter['time'] as $sTime) {
             $aTime = $this->getTimePeriod($sTime, $div);
             if (!$div) {
                 $time[] = $GLOBALS['DB']->parse("date_trunc('hour', l.act_time)::time without time zone >= ?::time without time zone \n                        AND date_trunc('hour', l.act_time)::time without time zone < ?::time without time zone", $aTime['from'], $aTime['to']);
             } else {
                 $time[] = $GLOBALS['DB']->parse("(date_trunc('hour', l.act_time)::time without time zone >= ?::time without time zone \n                        AND date_trunc('hour', l.act_time)::time without time zone < ?::time without time zone\n                        OR date_trunc('hour', l.act_time)::time without time zone >= ?::time without time zone \n                        AND date_trunc('hour', l.act_time)::time without time zone < ?::time without time zone)", $aTime[0]['from'], $aTime[0]['to'], $aTime[1]['from'], $aTime[1]['to']);
             }
         }
         $this->aSQL['where'][] = '(' . implode(' OR ', $time) . ')';
     }
 }
예제 #11
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);
                }
            }
        }
    }
예제 #12
0
 /**
  * Послать сначала создателю рассылки
  * 
  * @global type $DB
  * @param integer $mailer_id   ИД рассылки
  */
 public function sendForMe($mailer_id)
 {
     $message = $this->getMailerById($mailer_id);
     // Обрабатываем вложения
     $attached = array();
     if ($message['is_attached']) {
         $attached = $this->getAttach($message['id']);
         $attached = array_map(create_function('$a', 'return $a["fid"];'), $attached);
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smtp.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     $user = new users();
     $user->GetUserByUID($message['user_id']);
     $user = get_object_vars($user);
     if ($message['type_sending'][0] == 1) {
         $PLDB = new DB('plproxy');
         $adm = new users();
         $adm_id = $adm->GetUid($e, "admin");
         $PLDB->val("SELECT messages_add(?i, ?i, ?, ?b, ?a, ?b)", $adm_id, $user['uid'], $message['message'], true, $attached, true);
     }
     if ($message['type_sending'][1] == 1) {
         $mail = new smtp();
         $mail->prepare = true;
         $mail->subject = $message['subject'];
         $mail->message = $this->getMailContent($message['message']);
         $mail->recipient[] = $this->array2send($user);
         $mail->send('text/html', $attached);
     }
     if ($message['type_sending'][0] == 0 && $message['type_sending'][1] == 0) {
         $PLDB = new DB('plproxy');
         $adm = new users();
         $adm_id = $adm->GetUid($e, "admin");
         $PLDB->val("SELECT messages_add(?i, ?i, ?, ?b, ?a, ?b)", $adm_id, $user['uid'], $message['message'], true, $attached, true);
         // ------------------------ //
         $mail = new smtp();
         $mail->prepare = true;
         $mail->subject = $message['subject'];
         $mail->message = $this->getMailContent($message['message']);
         $mail->recipient[] = $this->array2send($user);
         $mail->send('text/html', $attached);
     }
 }
예제 #13
0
 /**
  * Красный прямоугольник для заблокированных проектов.
  *
  * @param string $reason      причина блокировки
  * @param date   $date        дата блокироки
  * @param string $moder_login логин модератора (оставить пустым, если показывать не нужно)
  * @param string $moder_name  uname и usurname модератора (оставить пустым, если показывать не нужно)
  *
  * @return HTML
  */
 public function BlockedProject($reason, $date, $moder_login = '', $moder_name = '')
 {
     $reason = reformat($reason, 24, 0, 0, 1, 24);
     $html = "\n            <div class='br-moderation-options'>\n                <a href='http://feedback.fl.ru/' class='lnk-feedback' style='color: #fff;'>Служба поддержки</a>\n                <div class='br-mo-status'><strong>Проект заблокирован.</strong> Причина: {$reason}</div>";
     if ($moder_login) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
         $users = new users();
         $admUid = $users->GetUid($error, $moder_login);
         $link = '/siteadmin/admin_log/?cmd=filter&to_d=' . dateFormat('d', $date) . '&to_m=' . dateFormat('m', $date) . '&to_y=' . dateFormat('Y', $date) . '&adm=' . $admUid . '&act=9';
         $html .= '<div class="b-layout__txt b-layout__txt_padtop_5 b-layout__txt_float_right">
                         <img class="b-layout__pic b-layout__pic_valign_middle" src="/images/comm.gif" alt="" width="15" height="14"> 
                         <a class="b-layout__link b-layout__link_fontsize_11" href="' . $link . '">Комментарии по проекту</a>
                     </div>';
     }
     $html .= "<p class='br-mo-info'>" . ($moder_login ? "Заблокировал: <a href='/users/{$moder_login}' style='color: #FF6B3D'>{$moder_name} [{$moder_login}]</a><br />" : '') . 'Дата блокировки: ' . dateFormat('d.m.Y H:i', $date) . '</p>
         </div>
     ';
     return $html;
 }
예제 #14
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);
            }
        }
    }
예제 #15
0
 /**
  * Отправка ЛС по заказу ТУ
  * 
  * @param string $login
  * @param string $message
  */
 public function sendOrderStatus($login, $message)
 {
     messages::Add(users::GetUid($err, 'admin'), $login, $message, '', 0, TRUE);
 }
예제 #16
0
         admin_log::addLog(admin_log::OBJ_CODE_USER, admin_log::ACT_ID_USR_CH_RATING, $user->uid, $user->uid, $sObjName, $sObjLink, 0, '', 0, $sReason);
         //-----------------------------------
         header("Location: /siteadmin/rating/?result=success");
         exit;
     }
     $error = "ќшибка.";
     break;
 case "setpwd":
     $login = __paramInit('string', NULL, 'login');
     $pwd = stripslashes($_POST['pwd']);
     //__paramInit('string', NULL, 'pwd');
     require_once ABS_PATH . "/classes/users.php";
     require_once ABS_PATH . "/classes/codes.php";
     $codes = new codes();
     $user = new users();
     $uid = $user->GetUid($error, $login);
     $user->passwd = $pwd;
     $err = $user->Update($uid, $res);
     $codes->DelByUT($uid, 1);
     // ѕишем в лог смены паролей
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/restorepass_log.php";
     restorepass_log::SaveToLog($uid, getRemoteIP(), 4, get_uid(false));
     header("Location: /siteadmin/rating/?result=success");
     break;
 case "addserv":
     $login = __paramInit('string', NULL, 'login');
     $days = __paramInit('string', NULL, 'days');
     $type = __paramInit('int', NULL, 'type');
     $where = __paramInit('int', NULL, 'where');
     $fid = users::GetUid($err, $login);
     if ($fid && $login) {
예제 #17
0
파일: blogs.php 프로젝트: amage/fl-ru-damp
 /**
  * Создает новую тему
  *
  * @param integer $fid			  ID Пользователя
  * @param integer $group		  раздел для темы
  * @param integer $base			  "база" для темы
  * @param string  $name			  название
  * @param string  $msg			  текст
  * @param string  $attach		  массив файлов типа CFile
  * @param string  $ip			  ip, с которого запостили
  * @param integer $mod			  имеет ли юзер права на пост тем в этот раздел (0 - да, 1 - нет)
  * @param integer $small		  1 - присоединенный файл является маленькой картинкой, 2 - большой картинкой (есть превью), 0 - другое
  * @param array   $tags			  массив тегов @deprecated
  * @param string  $yt_link		  ссылка на видео в YouTube
  * @param integer $close_comments запрет комментирования
  * @param integer $is_private	  приватность записи @see self::is_private
  * @return string				  Сообщение об ошибке
  */
 function NewThread($fid, $group, $base, $name, $msg, $attach, $ip, $mod, $small = 0, $tags = "", $yt_link = "", $close_comments = 'f', $is_private = 'f', $ontop = 'f', $poll_question = '', $poll_answers = '', $poll_multiple = false)
 {
     global $DB;
     if ($group == 7) {
         $max_image_size = array('width' => 400, 'height' => 600, 'less' => 0);
     } else {
         $max_image_size = array('width' => 470, 'height' => 1000, 'less' => 0);
     }
     $base = 0;
     // всегда 0, поле устарело.
     $alert = self::UploadFiles($attach, $max_image_size);
     if (!$alert) {
         if ($base == 0) {
             $sql = "SELECT read_only FROM blogs_groups WHERE id = ?i";
             $read_only = $DB->val($sql, $group);
         } else {
             $read_only = 0;
         }
         if ($read_only && $mod == 1) {
             return "Вы не можете писать в этот блог";
         }
         $sql = array('id_gr' => $group, 'base' => $base, 'close_comments' => $close_comments, 'is_private' => $is_private, 'fromuser_id' => $fid);
         if ($close_comments == 't') {
             $users = new users();
             if ($fid == $users->GetUid($uerr, 'admin')) {
                 $sql['id_gr_public'] = $group;
             }
         }
         $year = date("Y");
         $trtmp = $DB->insert('blogs_themes', $sql, "id_gr||'-'||thread_id");
         list($id_gr, $trid) = explode('-', $trtmp);
         //$sModVal = is_pro() ? 'NULL' : '0';
         $sModVal = '0';
         $msg_id = $DB->val("\n                INSERT INTO blogs_msgs_{$year} \n                    (fromuser_id, reply_to, from_ip, post_time, thread_id, msgtext, title, yt_link, ontop, moderator_status)\n                VALUES\n                    (?, NULL, ?, NOW(), ?, ?, ?, ?, ?, {$sModVal})\n                RETURNING\n                    id\n            ", $fid, $ip, $trid, $msg, $name, $yt_link, $ontop);
         /*if ( $msg_id ) {
               require_once( $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php' );
               $DB->insert( 'moderation', array('rec_id' => $msg_id, 'rec_type' => user_content::MODER_BLOGS) );
           }*/
         if ($attach) {
             foreach ($attach as $att) {
                 $att->updateFileParams(array('src_id' => $msg_id, 'small' => $att->small), false);
             }
         }
     }
     // опрос
     if ($poll_question !== '' && is_array($poll_answers) && !empty($poll_answers)) {
         $DB->insert('blogs_poll', array('thread_id' => $trid, 'question' => $poll_question, 'multiple' => (bool) $poll_multiple));
         $data = array();
         foreach ($poll_answers as $answer) {
             $data[] = array('thread_id' => $trid, 'answer' => $answer);
         }
         $DB->insert('blogs_poll_answers', $data);
     }
     return array($alert, $error_flag, $error, $msg_id, $trid, $id_gr);
 }
예제 #18
0
function ChFolder($folder_id, $cur_folder, $login)
{
    session_start();
    $objResponse = new xajaxResponse();
    $user = new users();
    $user->GetUser($login);
    if (!$user->is_banned) {
        $folder_id = intval($folder_id);
        $login = addslashes($login);
        $cur_folder = intval($cur_folder);
        $uid = get_uid(false);
        if ($folder_id && $login && $folder_id > 0) {
            $fld = new mess_ustf();
            $fld->from_id = $uid;
            $fld->folder = $folder_id;
            $passive = $fld->Change($login);
            if ($cur_folder == -3) {
                $to_id = users::GetUid($error, $login);
                $restored_error = messages::RestoreFromUsers($uid, array($to_id));
                if ($restored_error) {
                    $objResponse->alert($restored_error);
                } else {
                    $objResponse->assign("ur" . $login, "style.display", "none");
                }
            }
        }
        if ($folder_id < 0) {
            if ($folder_id == -1) {
                $fld = new teams();
                $fld->user_id = $uid;
                $passive = !$fld->teamsInverseFavorites($login);
                if ($cur_folder == -3) {
                    $to_id = users::GetUid($error, $login);
                    $restored_error = messages::RestoreFromUsers($uid, array($to_id));
                    if ($restored_error) {
                        $objResponse->alert($restored_error);
                    } else {
                        $objResponse->assign("ur" . $login, "style.display", "none");
                    }
                }
            }
            if ($folder_id == -2) {
                $fld = new ignor();
                $fld->user_id = $uid;
                require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/memBuff.php";
                $passive = !$fld->Change($login);
                $objResponse->assign("ur" . $login, "style.display", "none");
                $objResponse->script("Notification();");
                $memBuff = new memBuff();
                $memBuff->delete("msgsCnt" . $uid);
                if ($cur_folder == -3) {
                    $to_id = users::GetUid($error, $login);
                    $restored_error = messages::RestoreFromUsers($uid, array($to_id));
                    if ($restored_error) {
                        $objResponse->alert($restored_error);
                    } else {
                        $objResponse->assign("ur" . $login, "style.display", "none");
                    }
                }
            }
            if ($folder_id == -3) {
                $passive = !messages::DeleteFromUsers($login);
            }
        }
        if ($passive) {
            $objResponse->assign("folder" . $folder_id . "u" . $login, "className", "active");
            $objResponse->assign("vfolder" . $folder_id . "u" . $login, "className", "active");
            $inc = 1;
        } else {
            if ($cur_folder == $folder_id) {
                $objResponse->assign("ur" . $login, "style.display", "none");
            } else {
                $objResponse->assign("folder" . $folder_id . "u" . $login, "className", "");
                $objResponse->assign("vfolder" . $folder_id . "u" . $login, "className", "passive");
            }
            $inc = -1;
        }
        $objResponse->script("document.getElementById('fldcount" . $folder_id . "').innerHTML = " . $inc . "+Math.round(document.getElementById('fldcount" . $folder_id . "').innerHTML);");
    }
    return $objResponse;
}
예제 #19
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;
 }
예제 #20
0
         header("Location: /commune/?id={$id}&site=Admin");
         exit;
     }
     $r = commune::AddAdmin($id, $user_login, $e);
     if (!$r) {
         $alert['user_login'] = "******";
     } else {
         if ($r < 0) {
             if (strtolower($user_login) == strtolower($_SESSION['login'])) {
                 $alert['user_login'] = '******';
             } else {
                 $alert['user_login'] = '******';
             }
         } else {
             $sm = new smail();
             if ($user_id = users::GetUid($e, $user_login)) {
                 $sm->CommuneMemberAction($user_id, $action, $comm);
             }
             header("Location: /commune/?id={$id}&site=Admin");
             exit;
         }
     }
     break;
 case 'do.Remove.admin':
     $commune_output = 'admin.php';
     $member_id = __paramInit('int', 'm', NULL);
     $alert = NULL;
     if (!$member_id) {
         header("Location: /commune/?id={$id}&site=Admin");
         exit;
     }
예제 #21
0
<?php

$rpath = '../';
$header = '../header.php';
$footer = '../footer.html';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects_offers.php';
session_start();
$uid = get_uid();
$pid = intvalPgSql((int) trim($_GET['pid']));
$wid = intvalPgSql((int) trim($_GET['wid']));
$name = trim($_GET['user']);
$user_obj = new users();
$user_obj->GetUser($name);
$uid = $user_obj->GetUid($error, $name);
$proj = array();
$proj = (array) $user_obj;
// Проект.
$obj_project = new projects();
$project = $obj_project->GetPrjCust($pid);
if (!$project || !$user_obj->uid) {
    $fpath = '../';
    include '../404.php';
    exit;
} else {
    // Предложения по данному проекту.
    $obj_offer = new projects_offers();
    $offer = $obj_offer->GetPrjOffer($pid, $user_obj->uid);
    $width = $height = 0;
    if (!$offer) {
예제 #22
0
function GetNote($login)
{
    session_start();
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
    $oUser = new users();
    $nTargetId = $oUser->GetUid($sError, $login);
    $objResponse = new xajaxResponse();
    $nuid = get_uid(false);
    $note = notes::GetNoteInt($nuid, $nTargetId, $err);
    $text = htmlspecialchars_decode($note['n_text']);
    $text = str_replace("&#039;", "'", $text);
    $s = "\n        \$('note_rating').set('value', '{$note['rating']}');\n        f = document.getElement('div.uprj-note.form-templ');\n        f.getElements('input,textarea').set('disabled', false);\n    ";
    $objResponse->script($s);
    $objResponse->assign('f_n_text', 'value', $text);
    return $objResponse;
}
예제 #23
0
 /**
  * Обработчик событий страницы /about/team/ (Команда)
  *
  */
 function teamAction()
 {
     $DB = new DB('master');
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/team.php";
     $action = $_POST['action'];
     switch ($action) {
         case 'updatecategory':
             if (!get_uid(false)) {
                 header("Location: /fbd.php");
                 exit;
             }
             if (!hasPermissions('about')) {
                 header("Location: /about/team");
                 exit;
             }
             $id = front::$_req['ecf_id'];
             $name = stripslashes(front::$_req['ecf_name']);
             $position = front::$_req['ecf_number'];
             $error = 0;
             if (empty($name)) {
                 $error = 1;
                 $error_msgs[1] = 'Поле "Название" заполнено некорректно';
             }
             if (!is_numeric($position)) {
                 $error = 1;
                 $error_msgs[2] = 'Поле "Порядок" заполнено некорректно';
             } else {
                 $position = (int) $position;
                 if ($position <= 0) {
                     $error = 1;
                     $error_msgs[2] = 'Поле "Порядок" заполнено некорректно';
                 }
             }
             $name = change_q($name);
             if ($error) {
                 front::og("tpl")->error_msgs_ecf = $error_msgs;
                 front::og("tpl")->ecf_name = $name;
                 front::og("tpl")->ecf_position = $position;
                 front::og("tpl")->ecf_id = $id;
             } else {
                 team::EditGroup($id, $name, $position);
                 header('Location: /about/team/');
                 exit;
             }
             break;
         case 'addpeople':
             if (!get_uid(false)) {
                 header("Location: /fbd.php");
                 exit;
             }
             if (!hasPermissions('about')) {
                 header("Location: /about/team");
                 exit;
             }
             $p_name = stripslashes(front::$_req['pt_name']);
             $p_login = stripslashes(front::$_req['pt_login']);
             $p_occupation = stripslashes(front::$_req['pt_occupation']);
             $p_position = stripslashes(front::$_req['pt_position']);
             $p_group = stripslashes(front::$_req['pt_group']);
             $p_info = stripslashes(front::$_req['pt_info']);
             $p_foto = $_FILES['pt_photo'];
             $error = 0;
             if (empty($p_name)) {
                 $error = 1;
                 $error_msgs[1] = 'Поле "Имя, фамилия" заполнено некорректно';
             }
             if (empty($p_occupation)) {
                 $error = 1;
                 $error_msgs[2] = 'Поле "Должность" заполнено некорректно';
             }
             if (!is_numeric($p_position) && $p_position != '') {
                 $error = 1;
                 $error_msgs[3] = 'Поле "Порядок" заполнено некорректно';
             } else {
                 $p_position = (int) $p_position;
             }
             if (!empty($p_login)) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
                 $u = new users();
                 if (!$u->GetUid($ee, $p_login)) {
                     $error = 1;
                     $error_msgs[4] = 'Поле "Логин" заполнено некорректно';
                 }
             }
             $p_name = change_q($p_name);
             $p_login = change_q($p_login);
             $p_occupation = change_q($p_occupation);
             $p_info = change_q($p_info);
             $p_name = addslashes($p_name);
             $p_occupation = addslashes($p_occupation);
             $p_info = addslashes($p_info);
             $p_foto = '';
             if (!empty($_FILES['pt_photo']['tmp_name'])) {
                 list($i_width, $i_height, $i_type) = @getimagesize($_FILES['pt_photo']['tmp_name']);
                 if (in_array($i_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) && $i_width == 150 && $i_height == 200) {
                     $p_userpic = new CFile($_FILES['pt_photo']);
                     if ($p_userpic->name) {
                         $e = team::UpdateFoto($p_userpic);
                         if ($e['error'] == '1') {
                             $error = 1;
                             $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки';
                             $p_foto = $e['foto'];
                         } else {
                             $p_foto = $e['foto'];
                             $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки';
                         }
                     }
                 } else {
                     $error = 1;
                     $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки';
                 }
             }
             if ($error) {
                 if ($p_foto != '') {
                     $p_userpic->Delete(0, 'team/' . $p_foto);
                 }
                 front::og("tpl")->error_msgs_apf = $error_msgs;
                 front::og("tpl")->p_name = $p_name;
                 front::og("tpl")->p_login = $p_login;
                 front::og("tpl")->p_occupation = $p_occupation;
                 front::og("tpl")->p_group = $p_group;
                 front::og("tpl")->p_position = $p_position;
                 front::og("tpl")->p_info = $p_info;
             } else {
                 if ($p_position <= 0) {
                     $max_position = front::og("db")->select("SELECT MAX(position) as position FROM team_people WHERE groupid = ?;", $p_group)->fetchOne();
                     $p_position = $max_position['position'] + 1;
                 }
                 team::AddUser($p_name, $p_login, $p_occupation, $p_foto, $p_group, $p_position, $p_info);
                 header('Location: /about/team/');
                 exit;
             }
             break;
         case 'updatepeople':
             if (!get_uid(false)) {
                 header("Location: /fbd.php");
                 exit;
             }
             if (!hasPermissions('about')) {
                 header("Location: /about/team");
                 exit;
             }
             $p_id = stripslashes(front::$_req['pt_id']);
             $p_name = stripslashes(front::$_req['pt_name']);
             $p_login = stripslashes(front::$_req['pt_login']);
             $p_occupation = stripslashes(front::$_req['pt_occupation']);
             $p_position = stripslashes(front::$_req['pt_position']);
             $p_group = stripslashes(front::$_req['pt_group']);
             $p_info = stripslashes(front::$_req['pt_info']);
             $p_foto = $_FILES['pt_photo'];
             $error = 0;
             if (empty($p_name)) {
                 $error = 1;
                 $error_msgs[1] = 'Поле "Имя, фамилия" заполнено некорректно';
             }
             if (empty($p_occupation)) {
                 $error = 1;
                 $error_msgs[2] = 'Поле "Должность" заполнено некорректно';
             }
             if (!is_numeric($p_position)) {
                 $error = 1;
                 $error_msgs[3] = 'Поле "Порядок" заполнено некорректно';
             } else {
                 $p_position = (int) $p_position;
                 if ($p_position <= 0) {
                     $error = 1;
                     $error_msgs[3] = 'Поле "Порядок" заполнено некорректно';
                 }
             }
             if (!empty($p_login)) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
                 $u = new users();
                 if (!$u->GetUid($ee, $p_login)) {
                     $error = 1;
                     $error_msgs[4] = 'Поле "Логин" заполнено некорректно';
                 }
             }
             $p_name = change_q($p_name);
             $p_login = change_q($p_login);
             $p_occupation = change_q($p_occupation);
             $p_info = change_q($p_info);
             $p_name = addslashes($p_name);
             $p_occupation = addslashes($p_occupation);
             $p_info = addslashes($p_info);
             $p_foto = '';
             if (!empty($_FILES['pt_photo']['tmp_name'])) {
                 list($i_width, $i_height, $i_type) = @getimagesize($_FILES['pt_photo']['tmp_name']);
                 if (in_array($i_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) && $i_width == 150 && $i_height == 200) {
                     $p_userpic = new CFile($_FILES['pt_photo']);
                     if ($p_userpic->name) {
                         $e = team::UpdateFoto($p_userpic);
                         if ($e['error'] == '1') {
                             $error = 1;
                             $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки';
                             $p_foto = $e['foto'];
                         } else {
                             $p_foto = $e['foto'];
                             $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки';
                         }
                     }
                 } else {
                     $error = 1;
                     $error_msgs[5] = 'Файл не удовлетворяет условиям загрузки';
                 }
             }
             if ($error) {
                 if ($p_foto != '') {
                     $p_userpic->Delete(0, 'team/' . $p_foto);
                 }
                 front::og("tpl")->error_msgs_apf = $error_msgs;
                 front::og("tpl")->p_name = $p_name;
                 front::og("tpl")->p_login = $p_login;
                 front::og("tpl")->p_occupation = $p_occupation;
                 front::og("tpl")->p_group = $p_group;
                 front::og("tpl")->p_position = $p_position;
                 front::og("tpl")->p_info = $p_info;
                 front::og("tpl")->p_id = $p_id;
                 front::og("tpl")->p_action = 'updatepeople';
             } else {
                 team::EditUser($p_id, $p_name, $p_login, $p_occupation, $p_foto, $p_group, $p_position, $p_info);
                 header('Location: /about/team/');
                 exit;
             }
             break;
         case 'insertcategory':
             if (!get_uid(false)) {
                 header("Location: /fbd.php");
                 exit;
             }
             if (!hasPermissions('about')) {
                 header("Location: /about/team");
                 exit;
             }
             $name = stripslashes(front::$_req['acf_name']);
             $position = front::$_req['acf_number'];
             $error = 0;
             if (empty($name)) {
                 $error = 1;
                 $error_msgs[1] = 'Поле "Название" заполнено некорректно';
             }
             if (!is_numeric($position)) {
                 $error = 1;
                 $error_msgs[2] = 'Поле "Порядок" заполнено некорректно';
             } else {
                 $position = (int) $position;
                 if ($position <= 0) {
                     $error = 1;
                     $error_msgs[2] = 'Поле "Порядок" заполнено некорректно';
                 }
             }
             $name = change_q($name);
             if ($error) {
                 front::og("tpl")->error_msgs_acf = $error_msgs;
                 front::og("tpl")->acf_name = $name;
                 front::og("tpl")->acf_position = $position;
                 front::og("tpl")->acf_id = $id;
             } else {
                 team::CreateGroup($name, $position);
                 header('Location: /about/team/');
                 exit;
             }
             break;
         case 'deletecategory':
             if (hasPermissions('about')) {
                 team::DeleteGroup(front::$_req['dcf_id']);
             }
             header('Location: /about/team/');
             exit;
             break;
         case 'deleteteampeople':
             if (hasPermissions('about')) {
                 team::DeleteUser(front::$_req['dtf_id']);
             }
             header('Location: /about/team/');
             exit;
             break;
     }
     // Берем команду для вывода
     front::og("tpl")->groups = team::GetAllGroups();
     foreach (front::og("tpl")->groups as $group) {
         $sql = "SELECT team_people.*, team_groups.id as groups_id,team_groups.title as groups_title, team_groups.position as groups_position FROM team_people LEFT JOIN team_groups ON team_groups.id = team_people.groupid WHERE team_people.groupid=?i ORDER BY team_groups.position, team_people.position, team_people.id ASC";
         $team = $DB->rows($sql, $group['id']);
         front::og("tpl")->team_people[$group['id']] = array();
         if ($team) {
             foreach ($team as $t) {
                 array_push(front::og("tpl")->team_people[$group['id']], $t);
             }
         }
     }
     front::og("tpl")->text = static_pages::get("about_team");
     front::og("tpl")->script = array('team.js');
     front::og("tpl")->display("about/about_team.tpl");
 }
예제 #24
0
<?php

require_once "../classes/config.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/firstpage.php";
$mail = new smail();
// 1
$f_user_admin = users::GetUid($err, "admin");
$user['uname'] = "вася";
$user['usurname'] = "Пупкин";
$user['login'] = "******";
$user['email'] = "*****@*****.**";
$prof['name'] = "nnnn";
$prof['id'] = 10;
$prof['cost'] = 15;
$days = 2;
$mail->subject = "Недостаточно средств для автоматического продления на Free-lance.ru";
$mail->recipient = "{$user['uname']} {$user['usurname']} [{$user['login']}] <{$user['email']}>";
$html = "";
$prof_name = $prof['name'];
if ($prof['id'] == 0) {
    $prof_name = "Все фрилансеры";
}
$html .= "-&nbsp;<a href=\"{$GLOBALS['host']}/firstpage/?prof={$prof['id']}\">{$prof_name}</a> ({$prof['cost']} FM)<br/>";
$dev = 111;
$date_dest = strtotime('+' . $days . ' days');
$date = date('d ' . monthtostr(date('m', $date_dest)) . ' Y года', $date_dest);
$body = "До активации функции автопродления " . ending($days, "остался", "осталось", "осталось") . " " . number2string($days, 1) . " " . ending($days, "день", "дня", "дней") . ". Через {$days} " . ending($days, "день", "дня", "дней") . ", {$date}, должно быть автоматически продлено размещение в следующих разделах сайта Free-lance.ru:<br/>\n{$html}\nВсего с вашего счета должно быть списано {$val['sum_cost']} FM.<br/>\nСейчас на вашем Личном счету {$val['sum']} FM. Для срабатывания автоматического продления недостаточно средств.<br/><br/>\nНапоминаем вам, что автоматическое продление происходит в случае, когда на вашем личном счету достаточно средств для оплаты продления всех указанных разделов.<br/> \nПожалуйста, пополните счет или измените настройки автоматического продления.<br/>\n<br/>\nСчет можно пополнить на следующей странице: <a href=\"{$GLOBALS['host']}/bill/\">{$GLOBALS['host']}/bill/</a><br/>\nФункцию автопродления можно настроить или отключить здесь: <a href=\"{$GLOBALS['host']}/firstpage/\">{$GLOBALS['host']}/firstpage/</a>";
$mail->message = $mail->GetHtml($user['uname'], $body, 'simple');
echo $mail->message;
예제 #25
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);
     }
 }
예제 #26
0
<?php

require_once '../classes/config.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/firstpage.php';
$mail = new smail();
// 1
$f_user_admin = users::GetUid($err, 'admin');
$user['uname'] = 'вася';
$user['usurname'] = 'Пупкин';
$user['login'] = '******';
$user['email'] = '*****@*****.**';
$prof['name'] = 'nnnn';
$prof['id'] = 10;
$prof['cost'] = 15;
$days = 2;
$mail->subject = 'Недостаточно средств для автоматического продления на Free-lance.ru';
$mail->recipient = "{$user['uname']} {$user['usurname']} [{$user['login']}] <{$user['email']}>";
$html = '';
$prof_name = $prof['name'];
if ($prof['id'] == 0) {
    $prof_name = 'Все фрилансеры';
}
$html .= "-&nbsp;<a href=\"{$GLOBALS['host']}/firstpage/?prof={$prof['id']}\">{$prof_name}</a> ({$prof['cost']} FM)<br/>";
$dev = 111;
$date_dest = strtotime('+' . $days . ' days');
$date = date('d ' . monthtostr(date('m', $date_dest)) . ' Y года', $date_dest);
$body = 'До активации функции автопродления ' . ending($days, 'остался', 'осталось', 'осталось') . ' ' . number2string($days, 1) . ' ' . ending($days, 'день', 'дня', 'дней') . ". Через {$days} " . ending($days, 'день', 'дня', 'дней') . ", {$date}, должно быть автоматически продлено размещение в следующих разделах сайта Free-lance.ru:<br/>\n{$html}\nВсего с вашего счета должно быть списано {$val['sum_cost']} FM.<br/>\nСейчас на вашем Личном счету {$val['sum']} FM. Для срабатывания автоматического продления недостаточно средств.<br/><br/>\nНапоминаем вам, что автоматическое продление происходит в случае, когда на вашем личном счету достаточно средств для оплаты продления всех указанных разделов.<br/> \nПожалуйста, пополните счет или измените настройки автоматического продления.<br/>\n<br/>\nСчет можно пополнить на следующей странице: <a href=\"{$GLOBALS['host']}/bill/\">{$GLOBALS['host']}/bill/</a><br/>\nФункцию автопродления можно настроить или отключить здесь: <a href=\"{$GLOBALS['host']}/firstpage/\">{$GLOBALS['host']}/firstpage/</a>";
$mail->message = $mail->GetHtml($user['uname'], $body, 'simple');
echo $mail->message;