Example #1
0
 /**
  * Сохраняет жалобу на спам в личных сообщениях
  * 
  * @param  string $sSpamerId UID спамера
  * @param  string $sUserId UID пожаловавшегося пользователя
  * @param  string $aParams массив параметров жалобы на спам
  * @return bool true - успех, false - провал
  */
 function addSpamComplaint($sSpamerId = '', $sUserId = '', $aParams = array())
 {
     $DB = new DB('plproxy');
     // plproxy
     $bRet = false;
     $sMsgMd5 = md5($aParams['msg']);
     if ($sSpamerId && $sUserId && $aParams) {
         $DB->val("SELECT messages_spam_add(?i, ?i, ?i, ?, ?)", $sSpamerId, $sUserId, $aParams['id'], $sMsgMd5, change_q($aParams['txt']));
         if (!$DB->error) {
             $bRet = true;
             $oMemBuf = new memBuff();
             $oMemBuf->delete('messages_spam_count');
         }
     }
     return $bRet;
 }
Example #2
0
function processForm($aFormValues)
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/smail.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/blogs.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
    global $session;
    session_start();
    get_uid(false);
    $objResponse = new xajaxResponse();
    //$pname = change_q($_POST['name'], true);
    $msg = change_q($aFormValues['calltext'], false, 0);
    //$mail = trim($_POST['mail']);
    //$attach = $_FILES['attach'];
    $login = $_SESSION['login'] ? $_SESSION['login'] : '******';
    $tn = 0;
    $f_name = '';
    $uid = get_uid(false);
    $usr = new users($uid);
    $pname = $_SESSION['name'] . ' ' . $_SESSION['surname'];
    $mail = $usr->GetField($uid, $error, 'email');
    if (!$msg) {
        $alert['msg'] = 'Поле заполнено некорректно';
        $error_flag = 1;
    }
    if (!$error_flag) {
        $error .= blogs::NewThread($uid, 3, 0, $name, $msg, $f_name, getRemoteIP(), 1, $tn);
    }
    if (!$error && !$error_flag) {
        $sm = new smail();
        $error .= $sm->NewFeedbackPost($pname, $msg, $mail, $_SESSION['login'], 4);
        $msg = $name = $mail = '';
        $info_msg = '<br><center><table class="view_info" border="0" cellpadding="2" cellspacing="0"><tbody><tr class="n_qpr"><td height="20"><img src="/images/ico_ok.gif" alt="" border="0" height="18" width="19"></td><td nowrap>Ваше сообщение отправлено</td></tr></tbody></table>';
        $objResponse->assign('calltext', 'value', '');
        $objResponse->assign('cbok', 'innerHTML', $info_msg);
        //$objResponse->assign("submitButton","disabled",false);
        $objResponse->assign('submitButton', 'value', 'Отправить');
    }
    return $objResponse;
}
/**
 * Привязать телефон к аккаунту.
 */
function SafetyPhoneNow()
{
    session_start();
    return;
    // #0019588
    $aRes = array('success' => false);
    if (trim($_POST['phone']) == '') {
        $aRes['error'] = iconv('CP1251', 'UTF-8', 'Вы должны ввести номер телефона');
    } else {
        $users = new users();
        $sPhone = change_q(stripslashes($_POST['phone']), true);
        $aPhone = $users->CheckSafetyPhone($sPhone);
        if ($aPhone['error_flag'] == 1) {
            $aRes['error'] = iconv('CP1251', 'UTF-8', $aPhone['alert'][2]);
        } elseif (isset($_SESSION['uid'])) {
            $sPhoneOnly = $_POST['phone_only'] == 't' ? 't' : 'f';
            if ($users->updateSafetyPhone($_SESSION['uid'], $sPhone, $sPhoneOnly)) {
                $aRes['success'] = true;
            }
        }
    }
    echo json_encode($aRes);
}
Example #4
0
/**
 * Покупка услуги верификации по банковской карте через ЯКассу
 * в случае успешной покупки делается запрос на возврат 10 рублей.
 * 
 * @return \xajaxResponse
 */
function quickYandexKassaAC($fname, $lname)
{
    $objResponse = new xajaxResponse();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/billing.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/yandex_kassa.php';
    $uid = get_uid(false);
    $bill = new billing($uid);
    //@todo: нужна проверка текущей верификации
    $option = array('uname' => change_q(substr(trim($fname), 0, 21)), 'usurname' => change_q(substr(trim($lname), 0, 21)));
    $billReserveId = $bill->addServiceAndCheckout(Verification::YKASSA_AC_OP_CODE, $option);
    $sum = $bill->getOrderPayedSum();
    $yandex_kassa = new yandex_kassa();
    $html_form = $yandex_kassa->render($sum, $bill->account->id, yandex_kassa::PAYMENT_AC, $billReserveId);
    $objResponse->script("\n        if (window.verification_popup) {\n            window.verification_popup.openWindowYandexKassaAC('{$html_form}');\n        }\n    ");
    $_SESSION['quickver_is_begin'] = 1;
    return $objResponse;
}
Example #5
0
 require_once ABS_PATH . "/classes/attachedfiles.php";
 require_once ABS_PATH . "/classes/CFile.php";
 $userObj = new users();
 $userID = get_uid();
 $aFiles = new attachedfiles($_POST['attachedfiles_session']);
 $userpics = $aFiles->getFiles(array(1));
 if (is_array($userpics) && !empty($userpics)) {
     $userpic = array_pop($userpics);
     $aFiles->setStatusTo3($userpic['id']);
     $foto = new CFile($userpic['id']);
     $to = $foto->path . 'sm_' . $foto->name;
     $foto->resizeImage($to, 50, 50, 'auto', true);
     $userObj->photo = $userpic['name'];
 }
 $name = change_q(substr(trim($_POST['name']), 0, 21), true);
 $surname = change_q(substr(trim($_POST['surname']), 0, 21), true);
 if ($name && !preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $name)) {
     $error_flag = 1;
     $alert[1] = "Поле заполнено некорректно";
 }
 if ($surname && !preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $surname)) {
     $error_flag = 1;
     $alert[2] = "Поле заполнено некорректно";
 }
 if (!$error_flag) {
     if ($name) {
         $userObj->uname = $name;
     }
     if ($surname) {
         $userObj->usurname = $surname;
     }
Example #6
0
if (!$uid) {
    return;
}
if (is_array($_POST['attachedfiles_session'])) {
    reset($_POST['attachedfiles_session']);
    $_POST['attachedfiles_session'] = current($_POST['attachedfiles_session']);
}
if (!$_POST['attachedfiles_session']) {
    $generate_session = attachedfiles::createSessionID();
    $_POST['attachedfiles_session'] = $generate_session;
}
$action = $_POST['attachedfiles_action'];
$type = $_POST['attachedfiles_type'];
$sess = $_POST['attachedfiles_session'];
$formid = change_q($_POST['attachedfiles_formid'], true);
$del_id = change_q(__paramInit('string', null, 'attachedfiles_delete'));
$attachedfiles = new attachedfiles($sess);
switch ($action) {
    case 'add':
        if (is_array($_FILES['attachedfiles_file']) && !$_FILES['attachedfiles_file']['error']) {
            $login = $_SESSION['login'];
            $dir = $login . "/attach";
            $cFile = new CFile($_FILES['attachedfiles_file']);
            $cFile->table = 'file';
            switch ($type) {
                case 'contacts':
                    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/messages.php";
                    $max_files = messages::MAX_FILES;
                    $max_files_size = messages::MAX_FILE_SIZE;
                    break;
                case 'blog':
Example #7
0
 /**
  * Валидация данных.
  * 
  * @return string сообщение об ошибке
  */
 public function CheckInput()
 {
     $this->address = substr(change_q($this->address), 0, 128);
     $this->fio = substr(change_q($this->fio), 0, 64);
     $this->bank_code = $this->bank_code ? $this->bank_code : self::BC_SB;
     $this->sum = (double) $this->sum;
     setlocale(LC_ALL, 'en_US.UTF-8');
     $this->fm_sum = $bp->sum / EXCH_TR;
     //	  if(isset($this->id))
     //      	  $this->id = (int)$this->id;
     if (!$this->fio) {
         $alert['fio'] = 'Поле заполненно некорректно.';
     }
     if (!$this->address) {
         $alert['address'] = 'Поле заполненно некорректно.';
     }
     if (!$this->sum || $this->sum < 0.01) {
         $alert['sum'] = 'Поле заполненно некорректно.';
     }
     return $alert;
 }
Example #8
0
exit;
// пользуемся /siteadmin/admin/
if (!is_admin_sm()) {
    exit;
}
$action = trim($_GET['action']);
if (!$action) {
    $action = trim($_POST['action']);
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/spam.php';
$sm = new spam();
switch ($action) {
    case 'post_msg':
        $msg = change_q($_POST['msg']);
        $name = change_q($_POST['name']);
        $role = $_POST['role'];
        switch ($role) {
            case 'npro':
                $irole = 0;
                break;
            case 'pro':
                $irole = 1;
                break;
            case 'emp':
                $irole = 2;
                break;
        }
        $error = $sm->Update($msg, $name, $irole);
        if (!$error) {
            unset($msg);
Example #9
0
 /**
  * Изменение номера телефона востановления паролья через SMS.
  *
  * @param    integer $uid    ID пользователя
  * @param    string  $phone  номер телефона
  *
  * @return   string  сообщение об ошибке
  */
 public function ChangeSafetyPhone($uid, $phone, $only_phone)
 {
     global $DB;
     $res = '';
     $t_phone = change_q(stripslashes($phone), true);
     $c_phone = self::CheckSafetyPhone($t_phone);
     $phone = $c_phone['phone'];
     $res = $c_phone['alert'][2];
     if (!$res) {
         $only_phone = $only_phone == 't' ? 't' : 'f';
         $sql = 'UPDATE users SET safety_phone=?, safety_only_phone=? WHERE uid=?i';
         $DB->query($sql, $phone, $only_phone, $uid);
     }
     return $res;
 }
Example #10
0
/**
 * Обновляет адреса пользователя в сером списке IP
 * 
 * @param  int $nUserId UID пользователя
 * @param  string $sUserLogin Логин пользователя
 * @param  int $nAdminId UID админа
 * @param  string $sIp список IP адресов
 * @return object xajaxResponse
 */
function setPrimaryIp($nUserId = 0, $sUserLogin = '', $nAdminId = 0, $sIp = '')
{
    session_start();
    $objResponse = new xajaxResponse();
    $objResponse->script('gray_ip.clearEditAll();');
    $sIp = change_q(trim(stripslashes($sIp)), true);
    $aIp = users::CheckSafetyIP($sIp);
    if (!$aIp['error_flag']) {
        $bRes = gray_ip::updatePrimaryIp($nUserId, $sUserLogin, $nAdminId, $aIp['ip_addresses'], $bDel);
        if ($bRes) {
            $objResponse->alert('IP адреса успешно сохранены' . ($bDel ? "\nСтраница будет перезагружена" : ''));
            if ($bDel) {
                $objResponse->script('window.location.reload(true)');
            }
        } else {
            $objResponse->alert('Ошибка сохранения IP адресов');
        }
    } else {
        $objResponse->alert($aIp['alert'][1]);
    }
    return $objResponse;
}
Example #11
0
 /**
  * Проверяем введенные данные записываем их в класс и приводим их к нормальной форме
  *
  * @return string Сообщение об ошибке
  */
 function CheckInput($sbr = false)
 {
     $this->org_name = $this->org_name ? change_q(substr($this->org_name, 0, 128)) : '';
     $this->phone = $this->phone ? substr(change_q($this->phone), 0, 24) : '';
     $this->fax = $this->fax ? substr(change_q($this->fax), 0, 24) : '';
     $this->email = $this->email ? substr(change_q($this->email), 0, 64) : '';
     $this->country = $this->country ? substr(change_q($this->country), 0, 64) : '';
     $this->country_id = intval($this->country_id);
     $this->city = $this->city ? substr(change_q($this->city), 0, 64) : '';
     $this->city_id = intval($this->city_id);
     $this->index = $this->index ? substr(change_q($this->index), 0, 7) : '';
     $this->address = $this->address ? substr(change_q($this->address), 0, 128) : '';
     $this->address_grz = $this->address_grz ? substr(change_q($this->address_grz), 0, 128) : '';
     $this->inn = $this->inn ? substr(change_q($this->inn), 0, 32) : '';
     $this->kpp = $this->kpp ? substr(change_q($this->kpp), 0, 32) : '';
     $this->okpo = $this->okpo ? substr(change_q($this->okpo), 0, 10) : '';
     $this->full_name = $this->full_name ? change_q(substr($this->full_name, 0, 128)) : '';
     $this->fio = $this->fio ? substr(change_q($this->fio), 0, 64) : '';
     $this->address_jry = $this->address_jry ? substr(change_q($this->address_jry), 0, 128) : '';
     $this->bank_name = $this->bank_name ? substr(change_q($this->bank_name), 0, 64) : '';
     $this->bank_city = $this->bank_city ? substr(change_q($this->bank_city), 0, 32) : '';
     $this->bank_ks = $this->bank_ks ? substr(change_q($this->bank_ks), 0, 64) : '';
     $this->bank_rs = $this->bank_rs ? substr(change_q($this->bank_rs), 0, 64) : '';
     $country_id = country::getCountryId($this->country);
     $aRequired = array("org_name", "phone", "email", "country_id", "city_id", "index", "address", "inn", "full_name", "address_jry");
     // убираем не обязательные поля в зависимости от ситуации
     if ($this->country_id != 1) {
         unset($aRequired[7]);
         // inn
     }
     if ($sbr) {
         unset($aRequired[0]);
         // org_name
     }
     $error = $this->check_required($aRequired);
     if (isset($error['country'])) {
         $error['country'] = 'Пожалуйста, выберите страну';
     }
     if (isset($error['city'])) {
         $error['city'] = 'Пожалуйста, выберите город';
     }
     if (!is_email($this->email)) {
         $error['email'] = "Поле заполнено некорректно";
     }
     if ($this->kpp && !preg_match("/^\\d{9}\$/", $this->kpp)) {
         $error['kpp'] = "Поле заполнено некорректно";
     }
     if ($country_id == 1) {
         if (!preg_match("/^\\d{10,12}\$/", $this->inn) || strlen($this->inn) == 11) {
             $error['inn'] = "Поле заполнено некорректно";
         }
     }
     if (!preg_match("/^([0-9]+)\$/", $this->index)) {
         $error['index'] = "Поле заполнено некорректно";
     }
     if ($this->okpo && !preg_match('/^(?:\\d{8}|\\d{10})$/', $this->okpo)) {
         $error['okpo'] = "Поле заполнено некорректно";
     }
     if (!preg_match("/^[A-Za-z\\d\\-\\(\\)+\\s]+\$/", $this->phone)) {
         $error['phone'] = "Поле заполнено некорректно";
     }
     return $error;
 }
Example #12
0
         $reg = new registration();
         $reg->checkUserAccess(get_uid(), true);
         $selected = $_POST['id'];
         require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/teams.php";
         $error .= teams::teamsDelFavoritesExcept(get_uid(), $selected);
     }
     if (!$error && !$error_flag) {
         //$info = "Изменения внесены";
         header_location_exit('/users/' . $_SESSION['login'] . '/setup/info/?msg=1');
     }
     break;
 case "main_change":
     $name = change_q(substr(trim($_POST['name']), 0, 21), true);
     $surname = change_q(substr(trim($_POST['surname']), 0, 21), true);
     $email = change_q(substr(trim($_POST['email']), 0, 64), true);
     $pname = change_q(substr(trim(stripslashes($_POST['pname'])), 0, 100), true);
     $oldpwd = trim($_POST['oldpwd']);
     $question_button_hide = intval($_POST['consultant_show']);
     $promo_block_hide = intval($_POST['promo_show']);
     $direct_links = intval($_POST['direct_links']);
     setlocale(LC_ALL, 'ru_RU.CP1251');
     if (!preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $name)) {
         $error_flag = 1;
         $alert[1] = "Поле заполнено некорректно";
     }
     if (!preg_match("/^[-a-zA-Zа-яёА-ЯЁ]+\$/", $surname)) {
         $error_flag = 1;
         $alert[2] = "Поле заполнено некорректно";
     }
     if (!is_email($email)) {
         $error_flag = 1;
Example #13
0
function RnFolder($form_values)
{
    session_start();
    $fuid = get_uid(false);
    $objResponse = new xajaxResponse();
    $bError = false;
    $fld = new mess_folders();
    $msgs = new messages();
    $contacts = $msgs->GetContacts($fuid);
    $users_folders = $msgs->GetUsersInFolders($fuid);
    if (!isset($form_values['id'])) {
        $objResponse->alert("Не выбрана папка.");
        $bError = true;
    } else {
        $folder_id = intval($form_values['id']);
        $cur_folder = intval($form_values['cur_folder']);
        $cont = intval($form_values['cont']);
        $logins = addslashes($form_values['logins']);
        $arr_logins = split('~', $logins);
        if ($folder_id <= 0) {
            $objResponse->alert("Не выбрана папка.");
        } else {
            if (!isset($form_values['new_name'])) {
                $objResponse->alert("Не указано новое имя папки.");
            } else {
                //        $folder_name = addslashes($form_values['new_name']);
                $folder_name = substr(change_q($form_values['new_name'], false, 64), 0, 64);
                $request_folder_name = substr(change_q(stripslashes($form_values['new_name']), false, 64), 0, 64);
                $srch = array("<", ">");
                $folder_name = trim(str_replace($srch, "", $folder_name));
                if (empty($folder_name) || $folder_name == '') {
                    $objResponse->alert("Не указано новое имя папки.");
                    $objResponse->assign("savebtn", "disabled", false);
                } else {
                    $fld->fname = $folder_name;
                    $fld->id = $folder_id;
                    $fld->from_id = get_uid(false);
                    if (!($ermsg = $fld->Rename($folder_id))) {
                        $GLOBALS['xajax']->setCharEncoding("windows-1251");
                        $objResponse->script("old_name='" . $folder_name . "';");
                        if ($cur_folder == $folder_id) {
                            $folder_html = "<img class=\"li\" src=\"/images/ico_dir.gif\" />" . reformat($request_folder_name, 15, 0, 1);
                            $folder_header = 'Сообщения / ' . reformat($folder_name, 15, 0, 1);
                            $objResponse->assign("cht", "innerHTML", $folder_header);
                        } else {
                            $folder_html = "<a href=\"/contacts/?folder=" . $folder_id . "\"><span style=\"float:left;\"><img class=\"li\" src=\"/images/ico_dir.gif\" /></a></span><a href=\"/contacts/?folder=" . $folder_id . "\" class=\"blue\">" . reformat($request_folder_name, 15, 0, 1) . "</a>";
                        }
                        foreach ($arr_logins as $login) {
                            $objResponse->assign("folder" . $folder_id . "u" . $login, "innerHTML", reformat($folder_name, 25, 0, 1));
                            $objResponse->assign("vfolder" . $folder_id . "u" . $login, "innerHTML", reformat($folder_name, 25, 0, 1));
                        }
                        $folder_html .= " (<span id=\"fldcount" . $folder_id . "\">" . $cont . "</span>)";
                        $folder_html .= "<div style=\"margin-top: 17px; text-align:right\"><a href=\"/contacts/?action=delfolder&id=" . $folder_id . "\" onClick=\"return warning(9)\" title=\"Удалится только папка. Контакты переместятся в&nbsp;папку &laquo;Все&raquo;.\">Удалить</a> | <a href='javascript:rename(\"" . $folder_id . "\",\"" . $cur_folder . "\",\"" . str_replace("\\", "\\\\", htmlspecialchars($request_folder_name)) . "\",\"" . $cont . "\",\"" . $logins . "\");'>Переименовать</a></div>";
                        $objResponse->assign("li_folder" . $folder_id, "innerHTML", $folder_html);
                    } else {
                        $objResponse->alert($ermsg);
                        $objResponse->assign("savebtn", "disabled", false);
                    }
                }
            }
        }
    }
    return $objResponse;
}
Example #14
0
 /**
  * Обновляем описание специализации в разделе портфолио пользователя (Время и стоимость работы)
  *
  * @deprecated 
  * 
  * @param integer $fid        ИД Пользователя
  * @param array   $prof_ids   ИД Профессий 
  * @param array   $prises     Стоимость, Цены работ
  * @param array   $times      Время затраченное для работ  
  * @return string сообщение об ошибке если есть
  */
 function UpdateSpecDesc($fid, $prof_ids, $prises, $times)
 {
     global $DB;
     $i = 0;
     if ($prof_ids) {
         foreach ($prof_ids as $id) {
             $id = (int) trim($id);
             $prise = substr(change_q($prises[$i], true, 13), 0, 64);
             $time = substr(change_q($times[$i], true, 13), 0, 128);
             if ($prise == '') {
                 $prise = "NULL";
             } else {
                 $prise = "'" . $prise . "'";
             }
             if ($time == '') {
                 $time = "NULL";
             } else {
                 $time = "'" . $time . "'";
             }
             $sql .= "UPDATE spec_choise SET prise={$prise}, m_time={$time} WHERE (user_id='{$fid}' AND prof_id='{$id}'); ";
             $i++;
         }
         $DB->query($sql);
         $error = $DB->error;
     }
     return $error;
 }
Example #15
0
/**
 * Изменение блокировки предложения фрилансера.
 * 
 * @param int    $offer_id  ID предложения фрилансера
 * @param int    $act_id    ID нового действия (admin_actions)
 * @param int    $src_id    ID исходного действия (в данном случае равен $obj_id или 0 - просто индикатор)
 * @param string $reason    причина
 * @param int    $reason_id ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 13)
 *
 * @return object xajaxResponse
 */
function updateOfferBlock($offer_id, $act_id, $src_id, $reason = '', $reason_id = null)
{
    session_start();
    $objResponse = new xajaxResponse();
    if (hasPermissions('projects')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer_offers.php';
        $frl_offers = new freelancer_offers();
        $offer_id = intval($offer_id);
        $offer = $frl_offers->getOfferById($offer_id);
        if ($offer) {
            $objUser = new users();
            $objUser->GetUserByUID($offer['user_id']);
            $sObjName = $offer['title'];
            $sObjLink = '';
            // нет ссылки на конкретное предложение
            $reason_id = $reason_id ? $reason_id : 0;
            $reason = str_replace('%USERNAME%', $objUser->uname . ' ' . $objUser->usurname, $reason);
            $reason = change_q($reason, false, 0, true);
            if ($act_id == 14 && $src_id) {
                // разблокируем предложение
                $update = array('is_blocked' => 'f', 'reason' => '', 'reason_id' => 0, 'admin' => 0);
                $frl_offers->Update($offer_id, $update);
                // пишем лог админских действий
                admin_log::addLog(admin_log::OBJ_CODE_OFFER, 14, $offer['user_id'], $offer_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason);
                // так как появилось новое действие в логе
                $objResponse->script('window.location="/siteadmin/admin_log/?site=offer";');
            } elseif ($act_id == 13 && $src_id) {
                // редактируем текущую блокировку предложения
                admin_log::updateOfferBlock($src_id, $reason, $reason_id);
                $objResponse->script('window.location.reload(true)');
            } elseif ($act_id == 13 && !$src_id) {
                // блокируем предложение
                $update = array('is_blocked' => 't', 'reason' => $reason, 'reason_id' => $reason_id, 'admin' => $_SESSION['uid']);
                $frl_offers->Update($offer_id, $update);
                // пишем лог админских действий
                admin_log::addLog(admin_log::OBJ_CODE_OFFER, 13, $offer['user_id'], $offer_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason, $offer_id);
                // так как появилось новое действие в логе
                $objResponse->script('window.location="/siteadmin/admin_log/?site=offer";');
            }
        } else {
            $objResponse->script('adminLogOverlayClose();');
            $objResponse->alert('Несуществующее предложение');
        }
    }
    return $objResponse;
}
Example #16
0
 function evaluateAction()
 {
     $GLOBALS['mem_buff'] = new memBuff();
     $error = '';
     // откуда пришел пользователь
     if (preg_match("/\\/([A-Za-z0-9]{14,32})\\/\$/", front::$_req['pg'], $o)) {
         $from = 'feedback';
     } else {
         if (preg_match("/\\/([0-9]+)_([0-9\\.]+)\\/\$/", front::$_req['pg'], $o)) {
             $from = 'webim';
         }
     }
     front::og("tpl")->page = front::$_req['pg'];
     if ($from == 'webim') {
         // консультант
         front::og("tpl")->evtype = 'webim';
         $thread = $o[1];
         $visitor = $o[2];
         $webim = new webim();
         if ($webim->Check($thread, $visitor) && $webim->GetChat(get_uid(FALSE), $thread)) {
             front::og("tpl")->thread = $webim->thread;
             front::og("tpl")->operator = $webim->operator;
         } else {
             if (front::$_req['evaluate']) {
                 $alert = 'Указанного обращения не существует или вы уже оставили отзыв.';
                 echo "Error:" . $alert;
                 exit;
             } else {
                 front::og("tpl")->error = $error = 'Указанного обращения не существует или вы уже оставили отзыв.';
             }
         }
     } else {
         // обратная связь
         front::og("tpl")->evtype = 'feedback';
         $feedback = new feedback();
         if (!($code = $feedback->DecodeUCode($o[1])) || !$feedback->Check($code['uc'], $code['id'])) {
             front::og("tpl")->error = $error = 'Указанного обращения не существует или вы уже оставили отзыв.';
         } else {
             front::og("tpl")->code = $code;
         }
         front::og("tpl")->kind_name = $feedback->departaments[substr($code['id'], 0, 2)];
     }
     if (front::$_req['evaluate'] && !$error) {
         $e1 = intval(front::$_req['e1']);
         $e2 = intval(front::$_req['e2']);
         $e3 = intval(front::$_req['e3']);
         $wish = change_q(front::$_req['wish'], TRUE, 0, FALSE);
         $alert = '';
         if (!$alert && !in_array($e1, array(0, 1, 2, 3, 4, 5))) {
             $alert = 'Ошибка в оценке "Ожидание ответа".';
         }
         if (!$alert && !in_array($e2, array(0, 1, 2, 3, 4, 5))) {
             $alert = 'Ошибка в оценке "Доступное содержание".';
         }
         if (!$alert && !in_array($e3, array(0, 1, 2, 3, 4, 5))) {
             $alert = 'Ошибка в оценке "Общее впечатление".';
         }
         if (!$alert && !$e1 && !$e2 && !$e3 && !$wish) {
             $alert = 'Пожалуйста, поставте хотя бы одну оценку или напишите пожелание.';
         }
         if (!$alert) {
             $wish = substr(iconv('UTF-8', 'CP1251', $wish), 0, feedback::MAX_WISH_CHARS - 1);
             if ($from == 'webim') {
                 $alert = $webim->Evaluate($e1, $e2, $e3, $wish);
             } else {
                 $alert = $feedback->Evaluate($code['uc'], $code['id'], $e1, $e2, $e3, $wish);
             }
         }
         echo $alert ? "Error:" . iconv('CP1251', 'UTF-8', $alert) : "Success:";
         exit;
     }
     front::og("tpl")->script = array('feedback.js');
     front::og("tpl")->display("about/about_evaluate.tpl");
 }
Example #17
0
 /**
  * Прикрепление работы к конкурсу.
  *
  * @param integer $user_id        id фрилансера
  * @param integer $prj_id         id конкурса
  * @param array   $work_pict      работа
  * @param array   $work_prev_pict превью работы
  *
  * @return string текст ошибки в случае неуспеха
  */
 public function ChangeOfferKon($user_id, $prj_id, $work_pict, $work_prev_pict)
 {
     global $DB;
     $prj_id = intval($prj_id);
     $user_id = intval($user_id);
     $attach = array();
     foreach ($work_pict as $key => $value) {
         if ($value != '') {
             $attach[$key]['pict'] = substr(change_q(trim($value), false, 25), 0, 24);
             $attach[$key]['prev'] = substr(change_q(trim($work_prev_pict[$key]), false, 30), 0, 29);
         }
     }
     $sql = 'SELECT id FROM projects_offers WHERE project_id=?i AND user_id=?i';
     $po_id = $DB->val($sql, $prj_id, $user_id);
     $error = $DB->error;
     if ($po_id && !$error) {
         $sql = $error = '';
         foreach ($attach as $value) {
             $sql .= 'INSERT INTO projects_offers_attach (offer_id, prev_pict, pict) ' . 'VALUES (?i, ?, ? );';
         }
         if ($sql != '') {
             $DB->query($sql, $po_id, $value['prev'], $value['pict']);
             $error .= $DB->error;
         }
     }
     return $error;
 }
/**
 * Парсит текст причины редактирования для отравки уведомления
 * 
 * @param  int $user_id UID пользователя
 * @param  string $adm_edit_text текст причины
 * @return string 
 */
function _parseReason($user_id = 0, $adm_edit_text = '')
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
    $objUser = new users();
    $objUser->GetUserByUID($user_id);
    $sReason = str_replace('%USERNAME%', $objUser->uname . ' ' . $objUser->usurname, $adm_edit_text);
    $sReason = change_q($sReason, FALSE, 0, TRUE);
    return $sReason;
}
Example #19
0
function searchCorporativeTag($tag, $id)
{
    global $DB;
    $tag = strtolower(change_q($tag));
    $tags = $DB->rows("SELECT name FROM tags WHERE lower(name) LIKE '{$tags}%' ORDER BY name LIMIT 10");
    if ($tags) {
        $html = "<span id='search_content' class='search-tag-list'><ul>";
        foreach ($tags as $k => $val) {
            $html .= "<li><a href='javascript:void(0)' onClick='\$j(\\\"#input_{$id}\\\").val(\\\"{$val['name']}\\\");\$j(\\\"#search_content\\\").remove();'>{$val['name']}</a></li>";
        }
        $html .= "</ul></span>";
        $objResponse = new xajaxResponse();
        /*$over = '$j("#search_content").mouseleave(function() {';
        		$over .= '$j("body").bind("click", function(){';
        		$over .= '$j("#search_content").remove()';
        		$over .= '})'; 
        		$over .= '})';
        		$over .= '$j("#search_content").mouseenter(function(){';
        		$over .= '$j("body").unbind("click");';
        		$over .= '})';
        		
        	    
        		$objResponse->script('$j("#search_content").remove(); $j("#tag_'.$id.'").append("'.$html.'")');
        		$objResponse->script($over);//'$j("#search_content").mouseout(function(){ $j("body").bind("click", function(){alert("1")}) })');*/
        return $objResponse;
    }
    $objResponse = new xajaxResponse();
    $objResponse->script("\$\$('#search_content').destroy();");
    return $objResponse;
}
Example #20
0
         }
     }
     break;
 case "delete":
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/teams.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/ignor.php";
     $selected = $_POST['selected'];
     $error = ignor::DeleteEx(get_uid(), $selected);
     $error = messages::DeleteFromUsers(get_uid(), $selected);
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/memBuff.php";
     $memBuff = new memBuff();
     $memBuff->delete("msgsCnt" . get_uid(false));
     break;
 case "addfolder":
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/mess_folders.php";
     $name = substr(change_q($_POST['name'], false, 64), 0, 64);
     $srch = array("'", "\"", "<", ">");
     $name = trim(str_replace($srch, "", $name));
     if (empty($name) || $name == '') {
         $error_flag = 1;
         $error = 'Не указано имя папки';
     } else {
         $newfolder = new mess_folders();
         $newfolder->fname = $name;
         $newfolder->from_id = get_uid();
         if ($error = $newfolder->Add($error)) {
             $error_flag = 1;
         }
     }
     if (!$error) {
         header("Location: " . $_SERVER["REQUEST_URI"]);
Example #21
0
/**
 * Блокирование/разблокирование комментария к предложению по проекту
 * 
 * @param  int    $dialogue_id   ID комментария
 * @param  string $reason        причина
 * @param  int    $reason_id     ID причины, если она выбрана из списка (таблица admin_reasons, где act_id = 27)
 * @param  string $reason_name   Краткое описание причины действия (из селекта) для лога админских действий
 * @return object xajaxResponse
 */
function BlockedDialogue($dialogue_id, $reason, $reason_id = null, $reason_name = '')
{
    session_start();
    $objResponse = new xajaxResponse();
    if (hasPermissions('users')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects_offers_dialogue.php";
        $dialogue_id = intval($dialogue_id);
        $dialogue = projects_offers_dialogue::getDialogueMessageById($dialogue_id);
        if ($dialogue) {
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
            $objUser = new users();
            $objUser->GetUserByUID($dialogue['user_id']);
            // лог админских действий
            $sObjName = $dialogue['project_name'];
            $sObjLink = getFriendlyURL('project', $dialogue['project_id']);
            $reason_id = $reason_id ? $reason_id : 0;
            $reason = str_replace('%USERNAME%', $objUser->uname . ' ' . $objUser->usurname, $reason);
            $reason = change_q($reason, FALSE, 0, TRUE);
            if ($dialogue['is_blocked'] == 't') {
                projects_offers_dialogue::UnBlocked($dialogue_id);
                // пишем лог админских действий
                admin_log::addLog(admin_log::OBJ_CODE_PROJ, admin_log::ACT_ID_PRJ_DIALOG_UNBLOCK, $dialogue['user_id'], $dialogue_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason);
                $objResponse->assign("dialogue-block-{$dialogue_id}", 'innerHTML', '&nbsp;');
                $objResponse->assign("dialogue-block-{$dialogue_id}", 'style.display', 'none');
                $objResponse->assign("dialogue-button-{$dialogue_id}", 'innerHTML', '<a class="admn" href="javascript:void(0);" onclick="banned.blockedDialogue(' . $dialogue_id . ')">Заблокировать</a>');
            } else {
                $sBlockId = projects_offers_dialogue::Blocked($dialogue_id, $reason, $reason_id, $_SESSION['uid']);
                // пишем лог админских действий
                admin_log::addLog(admin_log::OBJ_CODE_PROJ, admin_log::ACT_ID_PRJ_DIALOG_BLOCK, $dialogue['user_id'], $dialogue_id, $sObjName, $sObjLink, 0, '', $reason_id, $reason, $sBlockId);
                $reason = reformat($reason, 24, 0, 0, 1, 24);
                $html = BlockedDialogueHTML($reason, $_SESSION['login'], "{$_SESSION['name']} {$_SESSION['surname']}");
                $objResponse->assign("dialogue-block-{$dialogue_id}", 'innerHTML', $html);
                $objResponse->assign("dialogue-block-{$dialogue_id}", 'style.display', 'block');
                $objResponse->assign("dialogue-button-{$dialogue_id}", 'innerHTML', '<a class="admn" href="javascript:void(0);" onclick="banned.unblockedDialogue(' . $dialogue_id . ')">Разблокировать</a>');
            }
        } else {
            $objResponse->alert('Несуществующее предложение');
        }
    }
    return $objResponse;
}