예제 #1
0
 public function filter($value)
 {
     $value = change_q_x($value, TRUE, FALSE);
     $value = strtolower(strtr($value, 'ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ', 'ёйцукенгшщзхъфывапролджэячсмитьбю'));
     $value = preg_replace('/(^|[.!?]\\s+)([a-zа-я])/ie', "'\$1'.strtoupper(strtr ( '\$2', 'ёйцукенгшщзхъфывапролджэячсмитьбю', 'ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ' ))", $value);
     $value = str_replace("\r\n", "\n", $value);
     return $value;
 }
예제 #2
0
 public function filter($value)
 {
     $value = change_q_x($value, TRUE, FALSE);
     $value = strtolower(strtr($value, '¨�����������������������‗��������', '¸יצףךוםדרשחץתפ�גאןנמכהז‎�קסלטע�ב‏'));
     $value = preg_replace('/(^|[.!?]\\s+)([a-zא-�])/ie', "'\$1'.strtoupper(strtr ( '\$2', '¸יצףךוםדרשחץתפ�גאןנמכהז‎�קסלטע�ב‏', '¨�����������������������‗��������' ))", $value);
     $value = str_replace("\r\n", "\n", $value);
     return $value;
 }
예제 #3
0
 /**
  * Обновить интервью
  *
  * @param integer  $uid       Ид интервью
  * @param array    $questions Вопросы
  * @return integer всегда возвращает 0
  */
 function Update($id, $questions)
 {
     $data = array();
     foreach ($questions as $ikey => $value) {
         if ($value != '') {
             $data["q" . ($ikey + 1)] = change_q_x($value, false, false);
         }
     }
     if ($id && $qstn) {
         global $DB;
         $DB->update('interview', $data, 'id=?', $id);
     }
     return 0;
 }
예제 #4
0
 /**
  * Редактировать документ.
  * 
  * @param array $doc     новые данные по документу.
  * @param array $old_doc старые данные по документу.
  *
  * @return bool успешно?
  */
 public function editDoc($doc, $old_doc)
 {
     $sql_data = $doc;
     $sql_data['name'] = pg_escape_string(change_q_x($sql_data['name']));
     $act_time = self::$docs_ss[$sql_data['status']][1];
     $file_set = $doc['file_id'] ? ", file_id = {$doc['file_id']}" : '';
     $sql_data['stage_id'] = $sql_data['stage_id'] ? (int) $sql_data['stage_id'] : 'NULL';
     $sql = "\n          UPDATE sbr_docs\n             SET name = '{$sql_data['name']}',\n                 status = {$sql_data['status']},\n                 access_role = {$sql_data['access_role']},\n                 stage_id = {$sql_data['stage_id']},\n                 {$act_time} = COALESCE({$act_time}, now()),\n                 type = {$sql_data['type']}\n                 {$file_set}\n           WHERE id = {$sql_data['id']}\n        ";
     $ok = $this->_eventQuery($sql);
     if ($ok && $file_set) {
         $cfile = new CFile();
         $cfile->Delete(0, $old_doc['file_path'], $old_doc['file_name']);
     }
     return $ok;
 }
예제 #5
0
function SaveStatus($text, $statusType, $login = NULL)
{
    session_start();
    $freelancer = new freelancer();
    $text = addslashes(substr(stripslashes(trim($text)), 0, 200));
    close_tags($text, 's');
    $freelancer->status_text = antispam(htmlspecialchars(htmlspecialchars_decode(change_q_x(trim($text), true, false), ENT_QUOTES), ENT_QUOTES));
    $freelancer->status_type = intval($statusType);
    if ($freelancer->statusToStr($statusType)) {
        $stdStatus = "";
        $objResponse = new xajaxResponse();
        $uid = hasPermissions('users') && $login != $_SESSION['login'] ? $freelancer->GetUid($err, $login) : get_uid(false);
        $pro = hasPermissions('users') && $login != $_SESSION['login'] ? is_pro(true, $uid) : is_pro();
        $error = $freelancer->Update($uid, $res);
        if (!$freelancer->status_text) {
            $freelancer->status_text = $stdStatus;
        }
        $freelancer->status_text = stripslashes($freelancer->status_text);
        switch ($freelancer->status_type) {
            case 1:
                $status_cls = 'b-status b-status_busy';
                break;
            case 2:
                $status_cls = 'b-status b-status_abs';
                break;
            case -1:
                $status_cls = 'b-status b-status_no';
                break;
            default:
                $status_cls = 'b-status b-status_free';
        }
        if (!$noassign) {
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
            $stop_words = new stop_words(hasPermissions('users'));
            $sStatusText = $pro ? $freelancer->status_text : $stop_words->replace($freelancer->status_text);
            //$GLOBALS['xajax']->setCharEncoding("windows-1251");
            $jsobj = json_encode(array('data' => iconv('CP1251', 'UTF8', $freelancer->status_text)));
            $objResponse->assign("statusText", "innerHTML", $freelancer->status_text == $stdStatus ? "" : reformat($sStatusText, 40, 0, 1, 25));
            $objResponse->assign("statusTitle", "innerHTML", $freelancer->statusToStr($statusType));
            //            $objResponse->assign("statusTitle", "style.display", $statusType > -1 ? '' : 'none');
            $objResponse->script("statusType = {$statusType};\n\t\t\t                      statusTxt = document.getElementById('statusText').innerHTML;\n\t\t\t                      statusTxtSrc = {$jsobj};");
        }
        $objResponse->script("\$('bstatus').erase('class');\n             \$('bstatus').addClass('{$status_cls}');");
    }
    return $objResponse;
}
예제 #6
0
 /**
  * Конструктор. Инициализирует переменные класса по массиву $_FILES, пути до файла или id файла.
  * Путь до файла относительно корня, без первого слеша. Например: users/te/temp/upload/new.jpg
  *
  * @param mixed $file_arr	- элемент массива $_FILES, путь до файла или id файла из таблицы file
  */
 function __construct($file_arr = 0, $table = NULL)
 {
     if ($table) {
         $this->table = $table;
     }
     $this->_wdp = webdav_proxy::getInst($GLOBALS['WDCS']);
     if (is_array($file_arr)) {
         $this->tmp_name = $file_arr['tmp_name'];
         $this->size = $file_arr['size'];
         $this->name = change_q_x($file_arr['name'], true);
         $this->original_name = change_q_x($file_arr['name'], true);
         if ($file_arr['error'] != UPLOAD_ERR_OK) {
             switch ($file_arr['error']) {
                 case UPLOAD_ERR_FORM_SIZE:
                 case UPLOAD_ERR_INI_SIZE:
                     //$this->error[] = "Слишком большой файл ({$file_arr['error']})";
                     $this->error[] = "Слишком большой файл. ";
                     break;
                 case UPLOAD_ERR_NO_FILE:
                     $this->error[] = "Выберите файл для загрузки";
                     break;
                 default:
                     //$this->error[] = "Невозможно загрузить файл ({$file_arr['error']})";
                     $this->error[] = "Невозможно загрузить файл";
             }
         }
     } elseif ($file_arr) {
         if (strcmp($file_arr, intval($file_arr)) == 0) {
             $this->GetInfoById($file_arr);
         } else {
             $this->GetInfo($file_arr);
         }
     }
     $this->unlinkOff = false;
 }
예제 #7
0
                </tr>
            </thead>
            <tbody>
            <?php 
foreach ($data as $row) {
    ?>
                    <tr id="query<?php 
    echo $row['id'];
    ?>
">
                        <td class="c-st" width="25px">
                            &bull;
                        </td>
                        <td>
                            <?php 
    echo change_q_x($row['query'], TRUE, FALSE);
    ?>
                        </td>
                        <td>
                            <?php 
    echo $row['cnt'];
    ?>
                        </td>
                        <td>
                            <?php 
    echo $row['match_cnt'];
    ?>
                        </td>
                        <td>
                            <strong><?php 
    echo $row['weight'];
예제 #8
0
파일: add.php 프로젝트: kapai69/fl-ru-damp
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php';
session_start();
if (!($uid = get_uid())) {
    header('Location: /fbd.php');
    exit;
}
$masssending = new masssending();
$countries = country::GetCountries(true);
$prof_groups = professions::GetAllGroupsLite(true);
$professions = professions::GetProfList();
$exrates = project_exrates::GetAll();
if (!empty($_POST)) {
    $frm = $_POST;
    //$params['msg'] = stripslashes($frm['msg']);
    $params['msg'] = "Здравствуйте!\n\nПриглашаю ознакомиться с проектом '" . change_q_x(stripslashes($frm['title']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false) . "' " . str_replace('www.n.fl.ru', 'n.fl.ru', $host) . $frm['link'] . " \n\n\n" . LenghtFormatEx(change_q_x(stripslashes($frm['msg']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false), 300);
    $params['max_users'] = intval($_POST['max_users']);
    $params['max_cost'] = intval($_POST['max_cost']);
    $params['is_pro'] = stripslashes($frm['pro']);
    $params['favorites'] = stripslashes($frm['favorites']);
    $params['free'] = stripslashes($frm['free']);
    $params['sbr'] = stripslashes($frm['bs']);
    $params['portfolio'] = stripslashes($frm['withworks']);
    $params['inoffice'] = stripslashes($frm['office']);
    $params['opi_is_verify'] = stripslashes($frm['ver']);
    $tmp = array();
    if ($frm['mass_location_columns'][0] != '0' || $frm['mass_location_columns'][1] != '0') {
        $tmp[] = intval($frm['mass_location_columns'][0]) . ':' . intval($frm['mass_location_columns'][1]);
        $params['locations'] = $tmp;
    }
    if ($frm['f_cats']) {
예제 #9
0
/**
 * Создает урл-строку
 *
 * @param array $params Массив с параметрами
 * @param boolean $reset По умолчанию FALSE - к указанным параметрам добавляются текущие параметры из $_GET,
 *                       если TRUE - массив $_GET не учитывается
 * @return string урл
 */
function url($get, $params = array(), $reset = false, $prefix = '')
{
    $keystr = "";
    $keyarr = array();
    $tmp = $_GET;
    //если массив (старая версия)
    if (is_array($get)) {
        if (count($get)) {
            $keystr = implode(",", array_keys($get));
        }
    } elseif (!is_array($get) && $get) {
        $keystr = $get;
    } else {
        if (count($_GET)) {
            $keystr = implode(",", array_keys($_GET));
        }
    }
    if ($keystr) {
        $keyarr = explode(",", change_q_x($keystr, 1, 1));
    }
    //    if($keystr) $keyarr = explode(",", $keystr);
    foreach ($tmp as $k => $v) {
        if (!in_array($k, $keyarr) || is_array($v)) {
            unset($tmp[$k]);
            continue;
        }
        $tmp[$k] = change_q_x(stripslashes($v), true, 1);
    }
    if ($reset) {
        $tmp = array();
    }
    if (count($params)) {
        foreach ($params as $k => $v) {
            if (!$v) {
                unset($tmp[$k]);
                continue;
            }
            $tmp[$k] = change_q_x($v, true, 1);
        }
    }
    if (count($tmp)) {
        return $prefix . http_build_query($tmp);
    }
    return '';
}
예제 #10
0
 /**
  * Редактировать комментарий
  *
  * @param integer $id ИД редактируемого комментария
  * @return array  [коды ошибок, описание ошибок] (по умолчанию оба занчения null)
  */
 function editComment($id)
 {
     $DB = new DB('master');
     $blog = $_POST['blogID'];
     $user = get_uid();
     $IDEdit = $id;
     //intval($this->uri[3]);
     $alert = array();
     $deleted_attach = $_POST['editattach'];
     if ($deleted_attach) {
         foreach ($deleted_attach as $key => $val) {
             if ($val == 1) {
                 front::og("db")->delete("DELETE FROM corporative_blog_attach WHERE id = ?n", $key);
             }
         }
     }
     if (strlen($_POST['msg']) > blogs::MAX_DESC_CHARS) {
         $error_flag = 1;
         $alert[2] = "Максимальный размер сообщения " . blogs::MAX_DESC_CHARS . " символов!";
         $msg =& $_POST['msg'];
     } else {
         $msg = $_POST['msg'];
         $msg = preg_replace("/<ul.*>/Ui", "<ul>", $msg);
         $msg = preg_replace("/<li.*>/Ui", "<li>", $msg);
         $msg = change_q_x_a(antispam($msg), false, false);
     }
     $msg_name = substr(change_q_x(antispam($_POST['title']), true), 0, 96);
     $yt_link = substr(change_q_x(antispam(str_replace('watch?v=', 'v/', $_POST['yt_link'])), true), 0, 128);
     if ($yt_link != '') {
         if (strpos($yt_link, 'http://ru.youtube.com/v/') !== 0 && strpos($yt_link, 'http://youtube.com/v/') !== 0 && strpos($yt_link, 'http://www.youtube.com/v/') !== 0) {
             $error_flag = 1;
             $alert[4] = "Неверная ссылка.";
         }
     }
     if (is_empty_html($msg)) {
         $msg = '';
     }
     // загрузка файлов
     $attach = $_FILES['attach'];
     if (is_array($attach) && sizeof($attach) <= 10) {
         if (is_array($attach) && !empty($attach['name'])) {
             foreach ($attach['name'] as $key => $v) {
                 if (!$attach['name'][$key]) {
                     continue;
                 }
                 $files[] = new CFile(array('name' => $attach['name'][$key], 'type' => $attach['type'][$key], 'tmp_name' => $attach['tmp_name'][$key], 'error' => $attach['error'][$key], 'size' => $attach['size'][$key]));
             }
         }
         if ($group == 7) {
             $max_image_size = array('width' => 400, 'height' => 600, 'less' => 0);
         } else {
             $max_image_size = array('width' => 470, 'height' => 1000, 'less' => 0);
         }
         list($files, $alert_, $error_flag___) = self::uploadFile($files, $max_image_size);
         $error_flag = max($error_flag___, $error_flag);
         if (is_array($alert_)) {
             $alert = array_merge($alert, $alert_);
         }
     } else {
         if (is_array($attach) && !empty($attach['name'])) {
             $error_flag = 1;
             $alert[2] = "Файлов не должно быть больше 10";
         }
     }
     if (!$msg && !count($files)) {
         $error_flag = 1;
         $alert[2] = "Поле заполнено некорректно";
     }
     if (($msg || $files['f_name'][0]) && get_uid() && !$error_flag) {
         $upd = array("title" => $msg_name, "yt_link" => $yt_link, "msg" => $msg, "id_modified" => get_uid(), "id_deleted" => 0, "date_change" => date("Y-m-d H:i:s"));
         front::og("db")->update("UPDATE corporative_blog SET ?s WHERE (id = ?n)", $upd, $IDEdit);
         if (is_array($files)) {
             $asql = '';
             for ($i = 0; $i < count($files['f_name']); $i++) {
                 if ($files['f_name'][$i]) {
                     $asql .= ", ({$IDEdit}, '{$files['f_name'][$i]}', '{$files['tn'][$i]}')";
                 }
             }
             if ($asql) {
                 $asql = substr($asql, 2);
             }
         }
         if ($asql) {
             $DB->query("INSERT INTO corporative_blog_attach(msg_id, \"name\", small) VALUES {$asql}");
         }
         $tags = $_POST['tags'];
         if ($tags) {
             $tags_arr = $tags;
             //explode(",", $tags);
             array_unique($tags_arr);
             $this->tagsDelete($IDEdit);
             $tg = tags::Add($tags_arr);
             $this->tagsAdd($IDEdit, $tg);
         }
     }
     front::og("tpl")->ederror_flag = $error_flag;
     front::og("tpl")->edalert = $alert;
     front::og("tpl")->edpost = array("blog" => $blog, "user" => $user, "parent" => $parent, "msg" => $msg, "title" => $msg_name, "yt_link" => $yt_link);
     return array($error_flag, $error);
 }
예제 #11
0
function quickMASGetYandexKassaLink($frm, $payment, $promo_code)
{
    $objResponse = new xajaxResponse();
    if (is_emp()) {
        global $DB, $host;
        $masssending = new masssending();
        //@todo: не используюутся?
        //$countries = country::GetCountries(TRUE);
        //$prof_groups = professions::GetAllGroupsLite(TRUE);
        //$professions = professions::GetProfList();
        //$exrates = project_exrates::GetAll();
        $uid = get_uid(false);
        //$params['msg'] = stripslashes($frm['msg']);
        $params['msg'] = "Здравствуйте!\n\nПриглашаю ознакомиться с проектом '" . change_q_x(stripslashes($frm['title']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false) . "' " . str_replace('www.n.fl.ru', 'n.fl.ru', $host) . $frm['link'] . " \n\n\n" . LenghtFormatEx(change_q_x(stripslashes($frm['msg']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false), 300);
        $params['max_users'] = intval($frm['max_users']);
        $params['max_cost'] = intval($frm['max_cost']);
        $params['is_pro'] = stripslashes($frm['pro']);
        $params['favorites'] = stripslashes($frm['favorites']);
        $params['free'] = stripslashes($frm['free']);
        $params['sbr'] = stripslashes($frm['bs']);
        $params['portfolio'] = stripslashes($frm['withworks']);
        $params['inoffice'] = stripslashes($frm['office']);
        $params['opi_is_verify'] = stripslashes($frm['ver']);
        $tmp = array();
        if ($frm['mass_location_columns'][0] != '0' || $frm['mass_location_columns'][1] != '0') {
            $tmp[] = intval($frm['mass_location_columns'][0]) . ':' . intval($frm['mass_location_columns'][1]);
            $params['locations'] = $tmp;
        }
        if ($frm['f_cats']) {
            $frm['f_cats'] = preg_replace('/,$/', '', $frm['f_cats']);
            $acats = explode(',', $frm['f_cats']);
            $cats_data = array();
            foreach ($acats as $v) {
                $v = preg_replace('/^mass_cat_span_/', '', $v);
                $c = explode('_', $v);
                if ($c[1] == 0) {
                    $sql = 'SELECT prof_group FROM professions WHERE id=?i';
                    $p = $DB->val($sql, $c[0]);
                    $cats_data[] = $p . ':' . $c[0];
                } else {
                    $cats_data[] = $c[0] . ':0';
                }
            }
        }
        $params['professions'] = $cats_data;
        if ($calc = $masssending->Add($uid, $params)) {
            $masssending->ClearTempFiles(session_id());
            //Допустимо использование промокодов
            $masssending->billing->setPromoCodes('SERVICE_MASSSENDING', $promo_code);
            $billReserveId = $masssending->Accept($calc['massid'], false);
            if ($billReserveId) {
                $_SESSION['quickmas_is_begin'] = 1;
                $_SESSION['quickmas_count_u'] = $calc['count'];
                $_SESSION['referer'] = $_SERVER['HTTP_REFERER'];
                $sum = $masssending->billing->getRealPayedSum();
                $yandex_kassa = new yandex_kassa();
                $html_form = $yandex_kassa->render($sum, $masssending->billing->account->id, $payment, $billReserveId);
                $html_form = preg_replace('/^[^\\/]+\\/\\*!?/', '', $html_form);
                $html_form = preg_replace('/\\*\\/[^\\/]+$/', '', $html_form);
                $objResponse->script('$("quick_mas_div_wait").set("html", \'' . $html_form . '\');');
                $objResponse->script("\$('quick_mas_div_wait').getElements('form')[0].submit();");
            }
        }
    }
    return $objResponse;
}
예제 #12
0
/**
 * Обновление заметки о пользователе на главной странице сообществ.
 *  
 * @param integer $user_id    -  uid пользователя
 * @param integer $commune_id -  id сообщества
 * @param string  $note       -  заметка
 *
 * @return xajaxResponse
 */
function UpdateNoteMP($user_id, $commune_id, $note)
{
    $objResponse = new xajaxResponse();
    if (get_uid(false) != $user_id) {
        return $objResponse;
    }
    $note = change_q_x(stripcslashes($note), FALSE, TRUE, '', false, false);
    if (strlen_real($note) > commune::MEMBER_NOTE_MAX_LENGTH) {
        $objResponse->alert('Максимальное количество символов ' . commune::MEMBER_NOTE_MAX_LENGTH);
        $objResponse->script('$("ne2' . $user_id . '").getElement("textarea").disabled=false;');
        return $objResponse;
    }
    if (commune::UpdateNoteMP($user_id, $commune_id, $note)) {
        if (preg_match) {
            $objResponse->assign("ne1{$user_id}", 'innerHTML', reformat(stripslashes($note), 20, 0, 0, 1, 15));
            $objResponse->script('
                memberNoteForm(' . $user_id . ');
                $("ne2' . $user_id . '").getElement("textarea").disabled=false;
            ');
        }
    }
    return $objResponse;
}
예제 #13
0
     exit;
 }
 if (is_empty_html($msg)) {
     $msg = '';
 }
 if ($_POST['close_comments']) {
     $close_comments = 't';
 } else {
     $close_comments = 'f';
 }
 if ($_POST['is_private']) {
     $is_private = 't';
 } else {
     $is_private = 'f';
 }
 $msg_name = substr_entity(change_q_x(antispam($_POST['name']), true, false), 0, 96, true);
 $attach = $_FILES['attach'];
 $attach_delete = is_array($_POST['delattach']) ? $_POST['delattach'] : array();
 $attach_have = $_POST['have_attach'];
 $olduser = intval($_POST['olduser']);
 $us = new users();
 $logins = $us->GetName($olduser, $error);
 $olduserlogin = $logins['login'];
 if (!$olduserlogin) {
     break;
 }
 if (!$t) {
     $base = 0;
 } else {
     $base = 1;
 }
예제 #14
0
function EditFavBlog($thread_id, $gr_num = 0, $priority = 0, $title = "", $action = "edit")
{
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/blogs.php";
    global $session;
    session_start();
    $uid = $_SESSION['uid'];
    $objResponse = new xajaxResponse();
    $thread_id = intval($thread_id);
    $GLOBALS['xajax']->setCharEncoding("windows-1251");
    $action = trim($action);
    switch ($action) {
        case "update":
            $blogs = new blogs();
            $title = change_q_x($title, true, false);
            $updatefav = $blogs->UpdateFav($thread_id, $uid, $priority, $title);
            return AddFavBlog(0, 0, 0, '', $gr_num);
            break;
        case "edit":
            $blogs = new blogs();
            $editfav = $blogs->GetFavoriteByThreadID($uid, $thread_id);
            $outHTML = '<span class="opt-edit">
    			<select name="sel_favs_priority" id="sel_favs_priority" onChange="FavPriority(' . $thread_id . ', this.value)">
                    <option value="0"' . ($editfav['priority'] == 0 ? ' selected' : '') . '>' . blogs::$priority_name[0] . '</option>
                    <option value="1"' . ($editfav['priority'] == 1 ? ' selected' : '') . '>' . blogs::$priority_name[1] . '</option>
                    <option value="2"' . ($editfav['priority'] == 2 ? ' selected' : '') . '>' . blogs::$priority_name[2] . '</option>
                    <option value="3"' . ($editfav['priority'] == 3 ? ' selected' : '') . '>' . blogs::$priority_name[3] . '</option>
    			</select>
    			<button onClick="if(document.getElementById(\'favtext' . $thread_id . '\').value.length>250){alert(\'Слишком длинное название закладки!\');return false;}else{xajax_EditFavBlog(' . $thread_id . ', ' . $gr_num . ', document.getElementById(\'favpriority' . $thread_id . '\').value, document.getElementById(\'favtext' . $thread_id . '\').value, \'update\');}">Ок</button>
    			<a href="javascript:void(0);" onClick="xajax_EditFavBlog(' . $thread_id . ', ' . $gr_num . ', ' . $editfav['priority'] . ', document.getElementById(\'currtitle\').value, \'update\');" class="lnk-dot-666">Отмена</a>
    		</span>
    		<input type="text" id="favtext' . $thread_id . '" value="' . $editfav['title'] . '" class="i-txt">';
            $outHTML .= "<input id='favpriority" . $thread_id . "' type='hidden' value='" . $editfav['priority'] . "'>";
            $outHTML .= "<input id='currtitle' type='hidden' value='" . $editfav['title'] . "'>";
            $objResponse->script("\$('fav{$thread_id}').addClass('li-edit');");
            $objResponse->assign("fav" . $thread_id, "innerHTML", $outHTML);
            break;
    }
    return $objResponse;
}
예제 #15
0
 /**
  * Вывод страницы /gift/ "Подарок".
  */
 public function giftAction()
 {
     include $_SERVER['DOCUMENT_ROOT'] . '/404.php';
     exit;
     /*
      * @deprecated Все что ниже пока не используется
      */
     front::og('tpl')->page = 'gift';
     self::isBlockMoney();
     /**
      * Подключаем AJAX для страницы.
      */
     require_once $_SERVER['DOCUMENT_ROOT'] . '/xajax/bill.common.php';
     front::og('tpl')->script = '/scripts/bill2.js';
     front::og('tpl')->xajax = $xajax;
     front::og('tpl')->mnth = 1;
     // Месяцев оплаты по умолчанию
     $val = $this->uri[0];
     switch ($val) {
         case 'pro':
             // Вывод подстраницы "Аккаунт «PRO»"
             /*
              * Обработка события "Подарить"
              */
             if ($_POST['act']) {
                 $mnth = intval(trim($_POST['mnth']));
                 // месяцев
                 $login = trim(strip_tags($_POST['login']));
                 // логин пользователя
                 $msg = change_q_x(__paramInit('string', null, 'msg', null, 300));
                 $usertype = trim(strip_tags($_POST['usertype']));
                 /**
                  * Подключаем класс для оплаты подарка.
                  */
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
                 $prof = new payed();
                 $tr_id = $_REQUEST['transaction_id'];
                 if (!$tr_id) {
                     $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.');
                 }
                 front::og('tpl')->tr_id = $tr_id;
                 front::og('tpl')->login = $login;
                 front::og('tpl')->msg = $msg;
                 front::og('tpl')->mnth = $mnth;
                 /*
                  * Если нет ошибок выводим
                  */
                 if ($mnth > 0 && $login) {
                     // Класс для работы с пользователем
                     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
                     $user = new users();
                     $gid = $user->GetUid($error, $login);
                     $user->GetUser($login);
                     if (!$gid) {
                         $alert['login'] = '******';
                     }
                     if ($gid == get_uid()) {
                         $alert['login'] = '******';
                     }
                     if (defined('SPEC_USER') && get_uid() == SPEC_USER) {
                         $alert['login'] = '******';
                     }
                     if (!$alert) {
                         $role = $user->GetRole($login, $error);
                         /*
                          * Высчитываем тариф для обработки. Тариф зависит от количества месяцев (Действуют специальные скидки)
                          */
                         if (substr($role, 0, 1) != '0') {
                             $tarif = 16;
                         } else {
                             $tarif = 52;
                             if ($mnth == 3) {
                                 $tarif = 66;
                             }
                             if ($mnth == 6) {
                                 $tarif = 67;
                             }
                             if ($mnth == 12) {
                                 $tarif = 68;
                             }
                         }
                         $ok = $prof->GiftOrderedTarif($bill_id, $gift_id, $gid, get_uid(), $tr_id, $mnth, $msg, $tarif);
                         // Оплата подарка
                         if ($ok) {
                             // Посылаем уведомление о подарке и переносим на страницу успешной оплаты
                             $sm = new smail();
                             $sm->NewGift($_SESSION['login'], $login, $msg, $gift_id);
                             $_SESSION['success_aid'] = $bill_id;
                             header("Location: /{$this->name_page}/success/");
                             exit;
                         }
                         unset($msg);
                     }
                 } else {
                     $alert['login'] = '******';
                 }
                 front::og('tpl')->error = $alert;
             }
             front::og('tpl')->display('bill/bill_gift_pro.tpl');
             break;
         case 'main':
             // Вывод подстраницы "Платное размещение в разделе"
             front::og('tpl')->type = 1;
             // Типа размещения = неделя
             /*
              * Обработка события "Подарить" - при нажатии кнопки подарить
              */
             if ($_POST['act']) {
                 $type = intval(trim($_POST['type']));
                 // Сколько недель
                 $login = trim(strip_tags($_POST['login']));
                 $msg = change_q_x(__paramInit('string', null, 'msg', null, 300));
                 /**
                  * Класс для обработки оплаты и взаимодействия механизма вывода.
                  */
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/firstpage.php';
                 $prof = new firstpage();
                 $tr_id = $_REQUEST['transaction_id'];
                 if (!$tr_id) {
                     $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.');
                 }
                 front::og('tpl')->tr_id = $tr_id;
                 front::og('tpl')->login = $login;
                 front::og('tpl')->msg = $msg;
                 front::og('tpl')->type = $type;
                 if (!$type) {
                     $alert['type'] = 'Не выбрано количество недель.';
                 } else {
                     $d_time = "{$type} неделя";
                     $intv = "{$type} weeks";
                     if ($login) {
                         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
                         $user = new users();
                         $gid = $user->GetUid($error, $login);
                         $user->GetUser($login);
                         if (!$gid) {
                             $alert['login'] = '******';
                         }
                         if (is_emp($user->role)) {
                             $alert['login'] = '******';
                         }
                         if ($gid == get_uid()) {
                             $alert['login'] = '******';
                         }
                         if (defined('SPEC_USER') && get_uid() == SPEC_USER) {
                             $alert['login'] = '******';
                         }
                         if (!$alert) {
                             $order_id = $prof->Gift($bill_id, $gift_id, $gid, get_uid(), $tr_id, $intv, 17, $msg, $type);
                             if (!$order_id) {
                                 header('Location: /bill/fail/');
                                 // Если оплата не прошла
                                 exit;
                             } else {
                                 // Уведомление на почту
                                 $sm = new smail();
                                 $sm->NewGift($_SESSION['login'], $login, $msg, $gift_id);
                                 $_SESSION['success_aid'] = $bill_id;
                                 header("Location: /{$this->name_page}/success/");
                                 // Если все прошло успешно переносим на страницу - Успешно
                                 exit;
                             }
                         }
                     } else {
                         $alert['login'] = '******';
                     }
                 }
                 front::og('tpl')->error = $alert;
             }
             front::og('tpl')->display('bill/bill_gift_main.tpl');
             break;
         case 'fronttop':
             // Обработка подстраницы "Платные места наверху главной страницы"
             // Событие нажатия кнопки "Подарить"
             if ($_POST['act']) {
                 $login = trim(strip_tags($_POST['login']));
                 // Логин
                 $msg = change_q_x(__paramInit('string', null, 'msg', null, 300));
                 $tr_id = $_REQUEST['transaction_id'];
                 if (!$tr_id) {
                     $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.');
                 }
                 front::og('tpl')->tr_id = $tr_id;
                 front::og('tpl')->login = $login;
                 front::og('tpl')->msg = $msg;
                 if ($login) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
                     $user = new users();
                     $gid = $user->GetUid($error, $login);
                     $user->GetUser($login);
                     if (is_emp($user->role)) {
                         $alert['login'] = '******';
                     }
                     if ($gid == get_uid()) {
                         $alert['login'] = '******';
                     }
                     if (defined('SPEC_USER') && get_uid() == SPEC_USER) {
                         $alert['login'] = '******';
                     }
                     if (!$gid) {
                         $alert['login'] = '******';
                     }
                     if (!$alert) {
                         /**
                          * Класс для работы с оплатой подарка.
                          */
                         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pay_place.php';
                         $place = new pay_place();
                         $tarif = 69;
                         $profs = $place->gift($bill_id, $gift_id, $tr_id, $gid, get_uid(), $msg, $tarif);
                         // Оплачиваем подарок
                         if ($profs) {
                             $_SESSION['success_aid'] = $bill_id;
                             header("Location: /{$this->name_page}/success/");
                             // Все прошло успешно
                             exit;
                         }
                     }
                 } else {
                     $alert['login'] = '******';
                 }
                 front::og('tpl')->error = @$alert;
                 // Переменная ошибок
             }
             front::og('tpl')->display('bill/bill_gift_fronttop.tpl');
             break;
         case 'cattop':
             // Обработка подстраницы "Платные места наверху каталога"
             // Событие нажатия кнопки "Подарить"
             if ($_POST['act']) {
                 $login = trim(strip_tags($_POST['login']));
                 // Логин
                 $msg = change_q_x(__paramInit('string', null, 'msg', null, 300));
                 $tr_id = $_REQUEST['transaction_id'];
                 if (!$tr_id) {
                     $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.');
                 }
                 front::og('tpl')->tr_id = $tr_id;
                 front::og('tpl')->login = $login;
                 front::og('tpl')->msg = $msg;
                 if ($login) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
                     $user = new users();
                     $gid = $user->GetUid($error, $login);
                     $user->GetUser($login);
                     if (!$gid) {
                         $alert['login'] = '******';
                     }
                     if (is_emp($user->role)) {
                         $alert['login'] = '******';
                     }
                     if ($gid == get_uid()) {
                         $alert['login'] = '******';
                     }
                     if (defined('SPEC_USER') && get_uid() == SPEC_USER) {
                         $alert['login'] = '******';
                     }
                     if (!$alert) {
                         /**
                          * Класс для работы с оплатой подарка.
                          */
                         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pay_place.php';
                         $place = new pay_place(1);
                         $tarif = 83;
                         $profs = $place->gift($bill_id, $gift_id, $tr_id, $gid, get_uid(), $msg, $tarif);
                         // Оплачиваем подарок
                         if ($profs) {
                             $_SESSION['success_aid'] = $bill_id;
                             header("Location: /{$this->name_page}/success/");
                             // Все прошло успешно
                             exit;
                         }
                     }
                 } else {
                     $alert['login'] = '******';
                 }
                 front::og('tpl')->error = @$alert;
                 // Переменная ошибок
             }
             front::og('tpl')->display('bill/bill_gift_cattop.tpl');
             break;
         case 'catalog':
             // Обработка подстраницы "Платные места в каталоге в подарок"
             // Событие нажатия кнопки "Подарить"
             front::og('tpl')->filter_categories = professions::GetAllGroupsLite(true);
             front::og('tpl')->filter_subcategories = professions::GetAllProfessions(1);
             $x = new op_codes();
             $x->GetRow(84);
             $top_p = $x->sum;
             $x->GetRow(85);
             $inside_p = $x->sum;
             front::og('tpl')->price_top = $top_p;
             front::og('tpl')->price_inside = $inside_p;
             if ($_POST['act']) {
                 $login = trim(strip_tags($_POST['login']));
                 // Логин
                 $msg = change_q_x(__paramInit('string', null, 'msg', null, 300));
                 $pf_category = __paramInit('int', null, 'pf_category', 0);
                 $pf_subcategory = __paramInit('int', null, 'pf_subcategory', 0);
                 //echo '<pre>'; print_r($_POST); exit('</pre>');
                 $tr_id = $_REQUEST['transaction_id'];
                 if (!$tr_id) {
                     $this->account->view_error('Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.');
                 }
                 front::og('tpl')->tr_id = $tr_id;
                 front::og('tpl')->login = $login;
                 front::og('tpl')->msg = $msg;
                 front::og('tpl')->pf_category = $pf_category;
                 front::og('tpl')->pf_subcategory = $pf_subcategory;
                 if ($login) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
                     $user = new users();
                     $gid = $user->GetUid($error, $login);
                     $user->GetUser($login);
                     if (!$gid) {
                         $alert['login'] = '******';
                     }
                     if (is_emp($user->role)) {
                         $alert['login'] = '******';
                     }
                     if ($gid == get_uid()) {
                         $alert['login'] = '******';
                     }
                     if (defined('SPEC_USER') && get_uid() == SPEC_USER) {
                         $alert['login'] = '******';
                     }
                     $weeks = (int) $_POST['weeks'];
                     if (!$weeks) {
                         $alert['week'] = 'Данное поле является обязательным';
                     }
                     if (!$alert) {
                         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/firstpage.php';
                         $prof = new firstpage();
                         $pf_category = (int) $_POST['pf_category'];
                         $pf_subcategory = (int) $_POST['pf_subcategory'];
                         $page = !$pf_subcategory ? 0 : $pf_subcategory;
                         $place_info = array($page => $weeks);
                         $op_code = $page ? 85 : 84;
                         //                                                                               require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/account.php");
                         //                                                                                $account = new account();
                         //                                                                                $account ->/ view_error("Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.");
                         $account = new account();
                         if ($prof->GiftOrderedCat($bill_id, $gift_id, $gid, get_uid(), $tr_id, $page, (int) $weeks, $op_code, $msg)) {
                             $_SESSION['success_aid'] = $bill_id;
                             header("Location: /{$this->name_page}/success/");
                             // Все прошло успешно
                             exit;
                         }
                     }
                 } else {
                     $alert['login'] = '******';
                 }
                 front::og('tpl')->error = @$alert;
                 // Переменная ошибок
             }
             front::og('tpl')->display('bill/bill_gift_catalog.tpl');
             break;
         default:
             /*
              * По умолчанию выводим главную страницу раздела "Подарки"
              */
             front::og('tpl')->display('bill/bill_gift.tpl');
             break;
     }
 }
예제 #16
0
         header('Location: ./' . url($GET, $q, true, '?'));
         //            echo "<script>document.location.href = '{$_SERVER['HTTP_REFERER']}#c_$new';</script>";
         exit;
     }
     break;
 case 'edit-comment':
     if (!$uid) {
         header('Location: /fbd.php');
         die;
     }
     $result = array();
     $result['success'] = false;
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/articles_comments.php';
     $mod = hasPermissions('articles');
     $comments = new articles_comments();
     $msg = change_q_x($_POST['cmsgtext'], false, true, 'b|i|p|ul|ol|li|s|h[1-6]{1}', false, false);
     $reply = __paramInit('int', null, 'reply_to', null);
     $comment = $comments->getComment($reply);
     if (!$mod && $comment['from_id'] != $uid) {
         header('Location: /fbd.php');
         die;
     }
     if (!$msg || is_empty_html($msg)) {
         $alert[1] = 'Поле не должно быть пустым';
     } else {
         $msg = preg_replace("/(li|ol|ul)>[\n]+/iU", '$1>', $msg);
         $tidy = new tidy();
         $msg = $tidy->repairString(str_replace(array(' '), array('&nbsp;'), nl2br($msg)), array('show-body-only' => true, 'wrap' => '0'), 'raw');
         $msg = str_replace("\n", '', $msg);
         $msg = preg_replace("/\\h/", ' ', $msg);
     }
예제 #17
0
function EditNote($login, $action, $text, $rating = 0)
{
    session_start();
    $objResponse = new xajaxResponse();
    $nuid = get_uid(false);
    //$text = str_replace('&', '&amp;', $text);
    //$text = stripslashes($text);
    $text = strip_only(trim($text), '<script>');
    $text = change_q_x($text, FALSE, TRUE, "", false, false);
    // !! кол-во символов также указано в /scripts/note.js
    if (strlen($text) > 200) {
        $text = substr($text, 0, 200);
    }
    switch ($action) {
        case "add":
            if ($text) {
                $error = notes::Add($nuid, $login, $text, 0, "?");
            }
            break;
        case "update":
            if ($text) {
                $error = notes::Update($nuid, $login, $text, $rating, "?");
            } else {
                $error = notes::DeleteNote($nuid, $login, "?");
                $action = 'delete';
            }
            break;
    }
    if ($error) {
        return false;
    }
    $text_src = input_ref_scr(stripslashes($text));
    $text_src = str_replace('&', '&amp;', $text_src);
    $text = reformat($text, 54, 0, 0, 1, 54);
    //$text = addslashes($text);
    switch ($action) {
        case 'add':
        case 'update':
            if (is_empty_html($text)) {
                $s = "\n                    document.getElement('div.form-templ').setStyle('display', 'none');\n                    document.getElement('div.form-templ input').set('disabled', false);\n                    cancelNote();\n                ";
                break;
            }
            $s = "\n                n = \$('note_{$login}');\n                n.getElement('.uprj-note-cnt>p').set('html', '{$text}');\n                n.setStyle('display', 'block');\n\n                document.getElement('div.form-templ').setStyle('display', 'none');\n                document.getElement('div.form-templ input').set('disabled', false);\n\n                if(\$('team_{$login}')) \$('team_{$login}').getElement('.uprj-st3').setStyle('display', 'none');\n                cancelNote();\n            ";
            break;
        case 'delete':
            $s = "\n                n = \$('note_{$login}');\n                n.getElement('.uprj-note-cnt>p').set('html', '');\n                n.setStyle('display', 'none');\n\n                if(\$('team_{$login}')) \$('team_{$login}').getElement('.uprj-st3').setStyle('display', 'inline-block');\n                document.getElement('div.uprj-note.form-templ').store('action', false);\n                cancelNote();\n            ";
            break;
    }
    $objResponse->script($s);
    return $objResponse;
}
예제 #18
0
/**
 * Функция вырезает определенные куски текста и заменяет их на уникальный код
 * который в последствии необходимо вернуть обратно через вызов функцию str_unreplace_mask();
 * ! ВАЖНО не забыть вызывать после замены функцию str_unreplace_mask
 *
 * @param string $mask Маска поиска и замены
 * @param string $out Текст где происходит замена
 * @return array[string, array] Возвращает массив в котором первый элемент это наш полученный после замены текст, второй массив с замененными частями из текста
 */
function str_replace_mask($mask, $out)
{
    if (preg_match_all($mask, $out, $match)) {
        foreach ($match[1] as $k => $val) {
            $ucode = substr(md5($val), 0, 7);
            if (isset($match[2]) && isset($match[4])) {
                $ph = md5(time()) . "_code";
                $content = change_q_x($match[3][$k], false, true, 'strike|cut|b|strong|em|br|u|i|p(|\\s' . $ph . '_.*?)|ul|ol|li|s|h[1-6]{1}', false, false);
                $ret[$ucode] = $match[2][$k] . $content . $match[4][$k];
            } else {
                $ret[$ucode] = $val;
            }
        }
        $f = create_function('$matches', 'return substr(md5($matches[1]), 0, 7);');
        $out = preg_replace_callback($mask, $f, $out);
        return array($out, $ret);
    }
    return array($out, array());
}
예제 #19
0
 /**
  * @see sbr_emp::_preSql()
  */
 public function _preSqlCallback(&$value, $field)
 {
     if (is_string($value)) {
         $value = pg_escape_string(change_q_x($value, $field != 'descr', false, 'b|br|i|p|cut|s|h[1-6]'));
     }
 }
예제 #20
0
 $answers = array();
 $answers_exists = array();
 $multiple = (bool) $_POST['multiple'];
 if (is_array($_POST['answers']) && !empty($_POST['answers'])) {
     $i = 0;
     foreach ($_POST['answers'] as $pa) {
         if (trim((string) $pa) !== '') {
             $answers[] = substr_entity(change_q_x(antispam(preg_replace('/&/', '&amp;', (string) trim($pa))), false, false, ''), 0, blogs::MAX_POLL_ANSWER_CHARS * 2, true);
             $i++;
         }
     }
 }
 if (is_array($_POST['answers_exists']) && !empty($_POST['answers_exists'])) {
     foreach ($_POST['answers_exists'] as $key => $pa) {
         if (trim((string) $pa) !== '') {
             $answers_exists[$key] = substr_entity(change_q_x(antispam(preg_replace('/&/', '&amp;', (string) trim($pa))), false, false, ''), 0, blogs::MAX_POLL_ANSWER_CHARS * 2, true);
             $i++;
         }
     }
 }
 if ($i > 0 && $question === '') {
     $error_flag = 1;
     $alert[5] = 'Введите текст вопроса';
 } else {
     if ($i > blogs::MAX_POLL_ANSWERS) {
         $error_flag = 1;
         $alert[5] = 'Вы можете указать максимум ' . blogs::MAX_POLL_ANSWERS . ' отетов';
     } else {
         if ($i < 2 && $question !== '') {
             $error_flag = 1;
             $alert[5] = 'Нужно указать минимум 2 варианта ответа в голосовании';
예제 #21
0
                </tr>
            </thead>
            <tbody>
                <?php 
foreach ($data as $row) {
    ?>
                    <tr id="query<?php 
    echo $row['id'];
    ?>
">
                        <td class="c-st">
                            &bull;
                        </td>
                        <td>
                            <?php 
    echo change_q_x($row['word'], TRUE, FALSE);
    ?>
                        </td>
                        <td><?php 
    echo $row['rule_name'];
    ?>
</td>

                        <td class="c-prd <?php 
    echo $order == 'act' ? 'c-id' : '';
    ?>
">
                            <a href="./?tab=filters&action=delete_filter&id=<?php 
    echo $row['id'];
    ?>
" onclick="return confirm('Точно удалить?')">Удалить</a>
예제 #22
0
function GetRating($type, $login = null, $width = null)
{
    session_start();
    $objResponse = new xajaxResponse();
    $login = change_q_x($login, TRUE);
    $user = new users();
    $user->GetUser($login);
    $uid = $user->uid;
    if (!$uid) {
        $uid = get_uid(false);
    }
    if (!$uid) {
        $objResponse->script('this.document.location.reload();');
        return $objResponse;
    }
    $user->GetUserByUID($uid);
    $rating = new rating();
    switch ($type) {
        case 'year':
            $TIME = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
            $pro_periods_date = date('Y-01-01', $TIME);
            $res = $rating->getRatingByYear($uid, date('Y', $TIME));
            $periods = rating::getMonthParts(date('Y-01-01'));
            $data = array();
            if ($res) {
                foreach ($periods as $m => $mm) {
                    if ($m < date('m')) {
                        foreach ($mm as $d) {
                            if ($d > time() || $d < strtotime($user->reg_date)) {
                                continue;
                            }
                            $data[$m][date('Y-m-d', $d)] = null;
                            if ($d >= strtotime($user->reg_date)) {
                                $data[$m][date('Y-m-d', $d)] = 0;
                            }
                        }
                    }
                }
            }
            $start_r = null;
            if ($res) {
                if (date('Y', strtotime($res[0]['_date'])) == date('Y') - 1) {
                    $start_r = $res[0]['rating'];
                    if (isset($res[1]) && strtotime($res[1]['_date']) != $periods[0][0]) {
                        $res[0]['_date'] = date('Y-m-d', $periods[0][0]);
                    } else {
                        $res = array_slice($res, 1);
                    }
                }
            } else {
                $res = array();
            }
            $verify_factor = 0;
            $verify_date = rating::GetVerifyDate($uid);
            foreach ($res as $row) {
                $t = strtotime($row['_date']);
                $m = (int) date('m', $t);
                $verify_factor = 0;
                if ($row['is_verify'] == 't') {
                    if ($verify_date) {
                        if (strtotime($verify_date) < $t) {
                            $verify_factor = 0.2;
                        }
                    } else {
                        $verify_factor = 0.2;
                    }
                }
                $data[$m - 1][date('Y-m-d', $t)] = array('rating' => floatval($row['rating']), 'verify' => floatval($row['rating'] * $verify_factor), 'pro' => 0);
            }
            $lastval = null;
            foreach ($data as $i => $mon) {
                foreach ($mon as $d => $prt) {
                    $vl = !$prt ? $lastval : $prt;
                    $data[$i][$d] = $vl;
                    //                    if($prt !== null)
                    $lastval = $vl;
                }
            }
            $pro_periods = promotion::GetUserProPeriods($uid, $pro_periods_date, TRUE);
            if ($pro_periods) {
                $pro = array();
                foreach ($pro_periods as $p => $period) {
                    if (date('Y', strtotime($period['from_time'])) > date('Y', $TIME) && date('Y', strtotime($period['to_time']) > date('Y', $TIME))) {
                        continue;
                    }
                    $d1 = (int) date('z', strtotime($period['from_time']));
                    $d2 = (int) date('z', strtotime($period['to_time']));
                    if (date('Y', strtotime($period['from_time'])) < date('Y', $TIME)) {
                        $d1 = 0;
                    }
                    if (date('Y', strtotime($period['to_time'])) > date('Y', $TIME)) {
                        $d2 = (int) date('z', mktime(0, 0, 0, 12, 31, date('Y')));
                    }
                    $_factor = 0.2;
                    if ($period['is_profi'] == 1) {
                        $_factor = 0.4;
                    }
                    foreach ($data as $mon => $val) {
                        foreach ($val as $per => $r) {
                            $day = (int) date('z', strtotime($per));
                            if ($d1 < $day && $d2 >= $day) {
                                $data[$mon][$per]['pro'] = floatval($data[$mon][$per]['rating'] * $_factor);
                            }
                        }
                    }
                    $pro[$p] = $d1 != $d2 ? array($d1, $d2) : array($d1);
                }
                $config['pro'] = $pro;
            }
            $new_data = array();
            if ($data) {
                foreach ($data as $mon => $val) {
                    foreach ($val as $per => $r) {
                        $new_data[$mon][$per] = $r['rating'] + $r['verify'] + $r['pro'];
                    }
                }
            }
            $config['data'] = $new_data;
            $config['cur'] = intval(date('m', $TIME));
            $config['days'] = date('z', mktime(0, 0, 0, 12, 31, date('Y'))) + 1;
            $config['regdate'] = $user->reg_date;
            break;
        case 'prev':
        default:
            $config = array();
            $data = array();
            $config['hilight'] = array();
            if ($type == 'prev') {
                $TIME = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));
                $res = $rating->getRatingByMonth($uid, date('Y-m-d', $TIME));
                if (!$res) {
                    $res = array();
                }
                $graphstart = strtotime($user->reg_date);
                if (count($res) && date('Ym', strtotime($res[0]['_date'])) == date('Ym', $TIME)) {
                    $graphstart = strtotime($res[0]['_date']);
                } else {
                    if (!count($res)) {
                        $graphstart = time();
                    }
                }
                $rating_data = array();
                $verify_date = null;
                $verify_factor = 0;
                $n = 0;
                foreach ($res as $d) {
                    if (date('Y-m', strtotime($d['_date'])) != date('Y-m', $TIME)) {
                        continue;
                    }
                    //$rating_data[intval(date('d', strtotime($d['_date'])))] = $d['rating'];
                    $verify_factor = 0;
                    if ($verify_date === null) {
                        $verify_date = rating::GetVerifyDate($d['user_id']);
                    }
                    if ($d['is_verify'] == 't') {
                        if ($verify_date) {
                            if (strtotime($verify_date) < strtotime($d['_date'])) {
                                $verify_factor = 0.2;
                            }
                        } else {
                            $verify_factor = 0.2;
                        }
                    }
                    if ($n == 0) {
                        $res[0]['verify_factor'] = $verify_factor;
                    }
                    $rating_data[intval(date('d', strtotime($d['_date'])))] = array('rating' => floatval($d['rating']), 'verify' => floatval($d['rating'] * $verify_factor), 'pro' => 0);
                    ++$n;
                }
                $last = null;
                for ($i = 0; $i < date('t', $TIME); ++$i) {
                    if (strtotime(date('Y-m-' . ($i + 1), $TIME)) < $graphstart) {
                        $last = null;
                    } else {
                        $last = $last !== null ? $last : 0;
                        if ($i == 0 && !isset($rating_data[$i + 1])) {
                            $last = array('rating' => floatval($res[0]['rating']), 'verify' => floatval($res[0]['rating'] * $res[0]['verify_factor']), 'pro' => 0);
                        }
                    }
                    if (isset($rating_data[$i + 1])) {
                        $last = $rating_data[$i + 1];
                    }
                    $data[$i] = $last;
                }
            } else {
                $TIME = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
                $res = $rating->getRatingByMonth($uid, date('Y-m-d', $TIME));
                if (!$res) {
                    $res = array();
                }
                $graphstart = strtotime($user->reg_date);
                if (count($res) && date('Ym', strtotime($res[0]['_date'])) == date('Ym', $TIME)) {
                    $graphstart = strtotime($res[0]['_date']);
                }
                $rating_data = array();
                $verify_date = null;
                $verify_factor = 0;
                $n = 0;
                foreach ($res as $d) {
                    if (date('Y-m', strtotime($d['_date'])) != date('Y-m', $TIME)) {
                        continue;
                    }
                    $verify_factor = 0;
                    if ($verify_date === null) {
                        $verify_date = rating::GetVerifyDate($d['user_id']);
                    }
                    if ($d['is_verify'] == 't') {
                        if ($verify_date) {
                            if (strtotime($verify_date) < strtotime($d['_date'])) {
                                $verify_factor = 0.2;
                            }
                        } else {
                            $verify_factor = 0.2;
                        }
                    }
                    if ($n == 0) {
                        $res[0]['verify_factor'] = $verify_factor;
                    }
                    $rating_data[intval(date('d', strtotime($d['_date'])))] = array('rating' => floatval($d['rating']), 'verify' => floatval($d['rating'] * $verify_factor), 'pro' => 0);
                    ++$n;
                }
                $config['cur'] = intval(date('d', $TIME));
                $last = 0;
                for ($i = 0; $i < date('d', $TIME); ++$i) {
                    if (strtotime(date('Y-m-' . ($i + 1), $TIME)) < $graphstart) {
                        $last = null;
                    } else {
                        $last = $last !== null ? $last : 0;
                        if ($i == 0 && !isset($rating_data[$i + 1])) {
                            $last = array('rating' => floatval($res[0]['rating']), 'verify' => floatval($res[0]['rating'] * $res[0]['verify_factor']), 'pro' => 0);
                        }
                    }
                    if (isset($rating_data[$i + 1])) {
                        $last = $rating_data[$i + 1];
                    }
                    $data[$i] = $last;
                }
            }
            $pro_periods_date = date('Y-01-01', $TIME);
            for ($i = 1; $i <= date('t', $TIME); ++$i) {
                $t = mktime(0, 0, 0, date('m', $TIME), $i, date('Y', $TIME));
                if (date('w', $t) == 0 || date('w', $t) == 6) {
                    $config['hilight'][] = $i;
                }
            }
            $pro_periods = promotion::GetUserProPeriods($uid, $pro_periods_date, TRUE);
            if ($pro_periods) {
                $pro = array();
                $tmp = array();
                foreach ($pro_periods as $p => $period) {
                    if (date('Ym', strtotime($period['from_time'])) > date('Ym', $TIME)) {
                        continue;
                    }
                    if (date('Ym', strtotime($period['to_time'])) < date('Ym', $TIME)) {
                        continue;
                    }
                    $d1 = (int) date('d', strtotime($period['from_time']));
                    $d2 = (int) date('d', strtotime($period['to_time']));
                    if (date('Ym', strtotime($period['from_time'])) < date('Ym', $TIME)) {
                        $d1 = 1;
                    }
                    if (date('Ym', strtotime($period['to_time'])) > date('Ym', $TIME)) {
                        $d2 = (int) date('t', $TIME);
                    }
                    $_factor = 0.2;
                    //PRO ONLY
                    if ($period['is_profi'] == 1) {
                        $_factor = 0.4;
                        //PROFI
                    }
                    foreach ($data as $day => $val) {
                        if (isset($tmp[$day]) || $val === null) {
                            continue;
                        }
                        if ($d1 <= $day + 1 && $d2 >= $day + 1) {
                            $data[$day]['pro'] = floatval($data[$day]['rating'] * $_factor);
                            //rating::PRO_FACTOR;
                            $tmp[$day] = 1;
                        }
                    }
                    $pro[$p] = $d1 != $d2 ? array($d1, $d2) : array($d1);
                }
                $config['pro'] = $pro;
            }
            if (strtotime($user->reg_date) > strtotime($pro_periods_date)) {
                $config['regdate'] = date('Y-m-d', strtotime($user->reg_date));
            }
            $new_data = array();
            if ($data) {
                foreach ($data as $day => $value) {
                    $new_data[$day] = $value['rating'] + $value['verify'] + $value['pro'];
                }
            }
            // сегодняшний рейтинг берем из $user - тут он актуальный и не зависит от кэша
            if ($type === 'month') {
                array_pop($new_data);
                $new_data[] = floatval($user->rating);
            }
            $config['data'] = $new_data;
            $config['days'] = date('t', $TIME);
            $config['startdate'] = date('Y-m-01', $TIME);
    }
    if ($width) {
        $config['w'] = (int) $width;
    }
    $config = json_encode($config);
    $objResponse->script("loadGraph('{$type}', {$config});");
    return $objResponse;
}
예제 #23
0
 /**
  * Прикрепляет файлы
  * 
  * @param  array $files массив файлов
  * @param  string $dir папка назначения
  * @param  bool $formatted true - файлы являются экземплярами CFile, иначе false
  * @return mixed сообщение об ошибке или 0
  */
 function addAttach($files, $dir, $formatted = false)
 {
     global $DB;
     if (!$files) {
         return 0;
     }
     $attach = NULL;
     if (!$formatted) {
         foreach ($files['name'] as $idx => $value) {
             foreach ($files as $key => $a) {
                 $att[$key] = $files[$key][$idx];
             }
             if ($att['size']) {
                 $attach[] = new CFile($att);
             }
         }
     } else {
         $attach = $files;
     }
     if (!$attach) {
         return 0;
     }
     $i = 0;
     $sql = '';
     foreach ($attach as $file) {
         if (!$file->size) {
             continue;
         }
         if (++$i > self::MAX_FILE_COUNT) {
             continue;
         }
         $ext = $file->getext();
         $file->orig_name = change_q_x($file->name);
         if (!in_array($ext, $GLOBALS['graf_array']) || $ext == 'swf') {
             return "Неверный формат файла: {$file->orig_name}";
         }
         $file->max_size = self::MAX_FILE_SIZE;
         if (!$file->MoveUploadedFile($dir) || !isNulArray($file->error)) {
             return $file->StrError();
         }
         $sql .= "INSERT INTO account_attach (account_id, file_id, name, orig_name) VALUES ({$this->id}, {$file->id}, '{$file->name}', '{$file->orig_name}');";
     }
     if ($sql && !$DB->query($sql)) {
         return 'Ошибка';
     }
     return 0;
 }
/**
 * Сохранение Платные места
 * 
 * @param object $objResponse xajaxResponse
 * @param string $rec_id идентификатор записи
 * @param string $rec_type тип записи
 * @param array $aForm массив данных
 * @param string $sDrawFunc имя функции для выполнения после сохранения
 */
function _admEditCarouselSaveForm(&$objResponse, $rec_id = '', $rec_type = '', $aForm = array(), $sDrawFunc = '')
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pay_place.php';
    if ($sDrawFunc == 'adm_first_page') {
        if (!pay_place::checkModeration($rec_id)) {
            $objResponse->alert('Пользователь удалил или изменил данные.');
            $objResponse->script('adm_edit_content.cancel();');
            $objResponse->script("\$('my_div_content_{$rec_id}').destroy();");
            return false;
        }
    }
    $alert = array();
    $sHeader = change_q_x($aForm['header'], true);
    $sText = change_q_x($aForm['txt'], true);
    $sNewImg = change_q_x($aForm['new_val'], true);
    $sDelImg = change_q_x($aForm['del_prev'], true);
    if (!$sHeader) {
        $alert[1] = 'Заполните заголовок объявления';
    } elseif (strlen($sHeader) > pay_place::MAX_HEADER_SIZE) {
        $alert[1] = 'Превышен максимальный размер заголовка';
    }
    if (!$sText) {
        $alert[2] = 'Заполните текст объявления';
    } elseif (strlen($sText) > pay_place::MAX_TEXT_SIZE) {
        $alert[2] = 'Превышен максимальный размер текста';
    }
    if (!$alert) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
        $content_id = user_content::MODER_CAROUSEL;
        $sReason = _parseReason($aForm['user_id'], $aForm['adm_edit_text']);
        $aData = array('ad_header' => $sHeader, 'ad_text' => $sText);
        if ($sNewImg || $sDelImg) {
            $aData['ad_img_file_name'] = $sNewImg;
        }
        pay_place::updatePaidPlace($rec_id, $aData, $sDelImg);
        messages::carouselModifiedNotification($aForm['login'], $aForm['uname'], $aForm['usurname'], $sReason);
        if ($sDrawFunc == 'adm_first_page') {
            pay_place::setModeration($rec_id, 0, $_SESSION['uid']);
            $objResponse->script('adm_edit_content.cancel();');
            $objResponse->script("\$('my_div_content_{$content_id}_{$rec_id}').destroy();");
        }
    } else {
        _setErrors($objResponse, $alert, array(1 => 'header', 2 => 'txt'), $sDrawFunc);
    }
}
예제 #25
0
                continue;
            }
            $links_keyword = array();
            $links_keyword_hide = array();
            $is_count_project = true;
            $user_keys = kwords::getUserKeys($user->uid, $prof_id);
            $bIsModer = kwords::isModerUserKeys($user->uid, $prof_id);
            $c = $kword_count = 0;
            if ($user_keys) {
                $kword_count = count($user_keys);
                foreach ($user_keys as $key) {
                    $sKey = stripslashes($bIsModer ? $stop_words->replace($key, 'plain') : $key);
                    if (++$c > kwords::MAX_KWORDS_PORTFOLIO) {
                        $links_keyword_hide[] = urlencode($sKey) . ',,' . change_q_x($sKey, true, false);
                    } else {
                        $links_keyword[] = sprintf($html_keyword, urlencode($sKey), change_q_x($sKey, true, false));
                    }
                }
            }
            $curprof = $prj['prof_id'];
            if ($lastprof != $curprof) {
                $i = 1;
                $k++;
                if ($lastprof != -1) {
                    ?>
		</table>
	</td>
	<td  style="width:14px">&nbsp;</td>
</tr>
</table><br />
				<?php 
예제 #26
0
/**
 * Редактирование комментария.
 *
 * @param   integer        id комментария
 * @param   string         комментарий
 *
 * @return xajaxResponse
 */
function ChangeComment($cid, $comment)
{
    global $contest, $stop_words;
    session_start();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
    $objResponse = new xajaxResponse();
    if (!trim($comment)) {
        $objResponse->alert('Комментарий не может быть пустым');
        return $objResponse;
    }
    if (!($uid = $_SESSION['uid'])) {
        return $objResponse;
    }
    $contest = new contest(0, $uid, is_emp(), FALSE, hasPermissions('projects'));
    // если пользователь не про или не верифицирован, то есть смысл проверить, может быть конкурс только для про или только для верифицированных
    $project = contest::getProjectByCommentID($cid);
    if ((!is_pro() || !is_verify()) && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        if ($project['pro_only'] == 't' && !is_pro()) {
            $objResponse->call('comment.reset');
            $objResponse->alert('Данная функция доступна только пользователям с аккаунтом PRO.');
            return $objResponse;
        } elseif ($project['verify_only'] == 't' && !is_verify()) {
            $objResponse->call('comment.reset');
            $objResponse->alert('Данная функция доступна только верифицированным пользователям.');
            return $objResponse;
        }
    }
    if (!($offer = $contest->GetOffer($oid))) {
        return $objResponse;
    }
    $contest->pid = $offer['project_id'];
    $comment = change_q_x(antispam(substr(rtrim(ltrim($comment, "\r\n")), 0, 5000)), false, true, 'b|br|i|p|ul|li|cut|h[1-6]{1}', false, false);
    if ($error = $contest->ChangeComment($cid, $comment)) {
        $objResponse->alert($error);
    } else {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
        $stop_words = new stop_words(hasPermissions('projects'));
        $html = reformat(stripslashes($stop_words->replace($comment)), 30, 0, 0, 1);
        $original = reformat(stripslashes($comment), 30, 0, 0, 1);
        $objResponse->call('comment.changed', $html, $original, dateFormat('[изменен: d.m.Y | H:i]', $comments[$i]['modified']));
    }
    return $objResponse;
}
예제 #27
0
 /**
  * Отправка сообщения.
  * 
  * @param type $attr
  */
 public function _ceSend($attr)
 {
     $user = new users();
     $messages = new messages();
     $stopWords = new stop_words(false);
     $user->getUserByUID(intval($attr->uid));
     if (empty($user->login) || $user->login == 'admin') {
         self::error(3, false);
         return;
     }
     if ($user->is_banned) {
         self::error(4, false);
         return;
     }
     $text = iconv('UTF-8', 'CP1251', $attr->text);
     $text = antispam(change_q_x($text, false, true, null, false, false));
     $messages->Add($this->_uid, $user->login, addslashes($text), array(), 0, false, null, $id);
     if (!is_pro() && !is_pro(true, $attr->uid)) {
         if (!hasPermissions('streamnomod') && !hasPermissions('streamnomod', $attr->uid)) {
             $stopWords = new stop_words(false);
             $text = $stopWords->replace($text);
         }
     }
     $text = reformat($text, 14, 0, 0, 1);
     $time = date('Y-m-d H:i:s');
     $data = array('func' => 'income', 'attr' => array('id' => $id, 'uid' => $this->_uid, 'cuid' => $user->uid, 'text' => iconv('CP1251', 'UTF-8', $text), 'files' => array(), 'date' => $time));
     $this->_addEvent($data);
     return array('id' => $id, 'uid' => $user->uid, 'text' => iconv('CP1251', 'UTF-8', $text), 'date' => $time);
 }
예제 #28
0
function AddDialogueMessage($form)
{
    global $session;
    session_start();
    $objResponse = new xajaxResponse();
    $offerIsBlocked = projects_offers::isOfferBlocked(false, get_uid(), $form['prj_id']);
    if ($offerIsBlocked) {
        $objResponse->alert('Ваше предложение заблокировано, вы не можете отправить это сообщение');
        return $objResponse;
    }
    $prj = new projects();
    $project = $prj->GetPrjCust(intval($form['prj_id']));
    $is_pro = is_pro();
    if ($project['pro_only'] == 't' && !$is_pro && !is_emp() && !hasPermissions('projects')) {
        if ($project['kind'] == 7) {
            if (contest::IsContestOfferExists($project['id'], get_uid(false))) {
                $is_pro = true;
            }
        } else {
            if (projects_offers::IsPrjOfferExists($project['id'], get_uid(false))) {
                $is_pro = true;
            }
        }
    }
    if ($project['pro_only'] == 't' && !$is_pro && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        $objResponse->alert('Данная функция доступна только пользователям с аккаунтом PRO.');
        $objResponse->script("\$('savebtn').set('disabled', false);");
        return $objResponse;
    } elseif ($project['verify_only'] == 't' && !($_SESSION['is_verify'] == 't') && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        $objResponse->alert('Данная функция доступна только верифицированным пользователям.');
        $objResponse->script("\$('savebtn').set('disabled', false);");
        return $objResponse;
    }
    if (!trim($form['po_text'])) {
        $objResponse->alert('Невозможно отправить пустое сообщение.');
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        return $objResponse;
    }
    if (!is_emp() && $form['from'] == 'emp') {
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        $objResponse->alert('Невозможно отправить сообщение. Вы вышли из аккаунта работодателя.');
        return $objResponse;
    } elseif (is_emp() && $form['from'] == 'frl') {
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        $objResponse->alert('Невозможно отправить сообщение. Вы вышли из аккаунта фрилансера.');
        return $objResponse;
    }
    //Не позволяем производить действия с заблокированным проектом
    if (projects::CheckBlocked(intval($form['prj_id']))) {
        $objResponse->script("document.location.href='/projects/index.php?pid=" . intval($form['prj_id']) . "'");
    } elseif (intval($_SESSION['uid'])) {
        $po_id = intval($form['po_id']);
        //$po_text = substr(change_q_x($form['po_text'], false), 0, 1000);
        $po_text = antispam(trim($form['po_text']));
        $po_text = preg_replace("/(\r\n|\r|\n){3,100}/i", "\r\n\r\n", $po_text);
        $po_commentid = intval($form['po_commentid']);
        $user_id = get_uid(false);
        $user = new users();
        $user_name = $user->GetName($user_id, $error);
        $pod = new projects_offers_dialogue();
        $project_dialogue = $pod->GetDialogueForOffer($po_id);
        $project = $pod->GetProjectFromDialogue($po_id);
        if (count($project_dialogue)) {
            for ($i = count($project_dialogue) - 1; $i >= 0; --$i) {
                if ($project_dialogue[$i]['user_id'] != $user_id) {
                    $to_user_name = $project_dialogue[$i]['login'];
                    break;
                }
            }
        }
        if (is_emp()) {
            $emp_read = true;
            $frl_read = false;
        } else {
            $emp_read = false;
            $frl_read = true;
        }
        if (!$po_commentid) {
            $error = $pod->AddDialogueMessage($po_id, $user_id, $po_text, $frl_read, $emp_read);
            $last_comment = $pod->GetLastDialogueMessage($user_id, $po_id);
            $objResponse->script("last_commentid={$last_comment};");
            $objResponse->script("edit_block[{$po_id}] = '&nbsp;&nbsp;<span><a href=\"javascript:void(null)\" onClick=\"answer({$po_id}, {$last_comment});markRead(\\'{$po_id}\\');\" class=\"internal\">Редактировать</a></span>';");
            //		$objResponse->script("alert(last_commentid);");
            //		$objResponse->script("alert(edit_block);");
        } else {
            $error = $pod->SaveDialogueMessage($user_id, $po_text, $po_commentid, $po_id, false);
            if ($error == 1) {
                $objResponse->alert('Вы не можете редактировать комментарий, так как на него уже ответили.');
                return $objResponse;
            }
        }
        $po_text = rtrim(ltrim($po_text, "\r\n"));
        $po_text = substr(change_q_x($po_text, false, true, '', false, false), 0, 1000);
        $po_text = stripslashes($po_text);
        if ($error == '') {
            $sPostText = $po_text;
            if ($project['kind'] != 4) {
                $sId = $po_commentid ? $po_commentid : $last_comment;
                $aComment = $pod->getDialogueMessageById($sId);
                if ($aComment['moderator_status'] === '0') {
                    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
                    $stop_words = new stop_words(hasPermissions('projects'));
                    $sPostText = $stop_words->replace($sPostText);
                }
            }
            if (!$po_commentid) {
                $objResponse->append('po_dialogue_talk_' . $po_id, 'innerHTML', '<div style="margin-bottom:8px;font-size:100%;"><span class="' . (is_emp() ? 'emp' : 'frl') . 'name11"><a href="/users/' . get_login($user_id) . '/" class="' . (is_emp() ? 'emp' : 'frl') . 'name11" title="' . $user_name['uname'] . ' ' . $user_name['usurname'] . '">' . $user_name['uname'] . ' ' . $user_name['usurname'] . '</a> [<a href="/users/' . $user_name['login'] . '/" class="' . (is_emp() ? 'emp' : 'frl') . 'name11" title="' . $user_name['login'] . '">' . $user_name['login'] . '</a>]</span> <span id="po_date_' . $last_comment . '">[' . strftime('%d.%m.%Y | %H:%M', time()) . ']</span><br /><div id="po_comment_' . $last_comment . '">' . reformat($sPostText, 50, 0, 0, 1) . '</div><div id="po_comment_original_' . $last_comment . '" style="display:none;">' . str_replace(' ', '&nbsp;', reformat($po_text, 1000, 0, 1)) . '</div></div>');
                //			$objResponse->call('resetfld', $po_id);
                $objResponse->script('dialogue_count[' . $po_id . '] = ' . (count($project_dialogue) + 1));
            } else {
                $objResponse->assign('po_comment_' . $po_commentid, 'innerHTML', reformat($sPostText, 50, 0, 0, 1));
                $objResponse->assign('po_comment_original_' . $po_commentid, 'innerHTML', str_replace(' ', '&nbsp;', reformat($po_text, 1000, 0, 1)));
                $objResponse->assign('po_date_' . $po_commentid, 'innerHTML', dateFormat('[d.m.Y | H:i]', date('Y-m-d H:i:s')));
            }
            $objResponse->call('answer', $po_id);
            if ($to_user_name && $project['id'] && $project['name'] && !$po_commentid) {
                /*require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php");
                		$smail = new smail();
                		if ($project['user_id'] == $user_id) {
                               $error = $smail->NewPrjMessageOnOfferFrl($user_name['login'], $project['id'], $project['name'], $to_user_name, $po_text);
                		} else {
                               $error = $smail->NewPrjMessageOnOfferEmp($user_name['login'], $project['id'], $project['name'], $to_user_name, $po_text);
                		}*/
            }
        } else {
            $objResponse->alert('Ошибка сохранения.');
        }
    } else {
        $objResponse->alert('Ошибка сохранения. Авторизируйтесь на сайте.');
    }
    return $objResponse;
}
예제 #29
0
        echo $_SERVER['HTTP_HOST'];
        ?>
" /><?php 
    }
    ?>
        <?php 
}
?>
        <meta charset="windows-1251" />
        <meta content="initial-scale=1, width=device-width, user-scalable=no" name="viewport" />
        <meta name="description" lang="ru" content="<?php 
echo change_q_x($page_descr);
?>
" />
        <meta name="keywords" lang="ru" content="<?php 
echo change_q_x($page_keyw);
?>
" />
        <?php 
if ($main_page) {
    ?>
<meta name="cmsmagazine" content="85293268c28a6790c0611c744d47631b" /><?php 
}
?>
        <?php 
if ($main_page) {
    ?>
          <meta name='yandex-verification' content='408722b52391250b' />
          <meta name="google-site-verification" content="gO1LczHLkd33btoSSOdJeq4VRVYb2g--uwpAsLQD8Ms" />
		<?php 
}
예제 #30
0
/**
 * Сохраняет/редактирует направление
 *
 * @param array $info - данные
 * @return object xajaxResponse
 */
function saveDirectForm($info)
{
    global $GLOBALS;
    session_start();
    if (!hasPermissions('seo')) {
        return false;
    }
    $objResponse = new xajaxResponse();
    $seo = new seo($_SESSION['subdomain']);
    if (trim($info['name_section']) == "") {
        $objResponse->script("alert('Введите название направления');");
        $objResponse->script("\$('name_section').focus();");
        return $objResponse;
    }
    if (preg_match('/[^A-Za-z0-9_\\-]/', $info['name_section_link']) || trim($info['name_section_link']) == "") {
        $objResponse->script("alert('Название ссылки должно содержать только латинские буквы, цифры, нижнее подчеркивание или тире');");
        $objResponse->script("\$('name_section_link').focus();");
        return $objResponse;
    }
    if ($seo->checkLink('direct', $info['name_section_link'], $info['id'])) {
        $objResponse->script("alert('Направление с такой ссылкой уже есть');");
        $objResponse->script("\$('name_section_link').focus();");
        return $objResponse;
    }
    $saved_disable_link_processing = $GLOBALS['disable_link_processing'];
    $GLOBALS['disable_link_processing'] = TRUE;
    $data = array("dir_name" => (string) change_q_x($info['name_section'], true), "name_section_link" => (string) change_q_x($info['name_section_link'], true), "meta_description" => (string) change_q_x($info['meta_description'], true), "meta_keywords" => (string) change_q_x($info['meta_keywords'], true), "page_content" => (string) __paramValue('ckeditor', $info['content']));
    $GLOBALS['disable_link_processing'] = $saved_disable_link_processing;
    if (!$info['id']) {
        $data['date_create'] = 'NOW()';
    } else {
        $data['date_modified'] = 'NOW()';
    }
    $newid = $seo->saveDirection($data, $info['id']);
    if (!$info['id'] && $newid) {
        $url = array();
        $url['direction'] = $newid;
        if ($info['name_section_link']) {
            $url['direction'] = $info['name_section_link'];
        }
        if ($_SESSION['subdomain']) {
            $url['subdomain'] = $_SESSION['subdomain'];
        }
        $url['msgok'] = 3;
        $url = "/catalog/admin/?" . http_build_query($url);
        $objResponse->redirect($url);
    } elseif ($info['id'] && $newid) {
        $url['direction'] = $info['name_section_link'];
        if ($_SESSION['subdomain']) {
            $url['subdomain'] = $_SESSION['subdomain'];
        }
        $url['msgok'] = 4;
        $url = "/catalog/admin/?" . http_build_query($url);
        $objResponse->redirect($url);
    } else {
        $objResponse->alert('Ошибка');
    }
    return $objResponse;
}