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; }
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; }
/** * Обновить интервью * * @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; }
/** * Редактировать документ. * * @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; }
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; }
/** * Конструктор. Инициализирует переменные класса по массиву $_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; }
</tr> </thead> <tbody> <?php foreach ($data as $row) { ?> <tr id="query<?php echo $row['id']; ?> "> <td class="c-st" width="25px"> • </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'];
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']) {
/** * Создает урл-строку * * @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 ''; }
/** * Редактировать комментарий * * @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); }
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; }
/** * Обновление заметки о пользователе на главной странице сообществ. * * @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; }
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; }
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; }
/** * Вывод страницы /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; } }
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(' '), nl2br($msg)), array('show-body-only' => true, 'wrap' => '0'), 'raw'); $msg = str_replace("\n", '', $msg); $msg = preg_replace("/\\h/", ' ', $msg); }
function EditNote($login, $action, $text, $rating = 0) { session_start(); $objResponse = new xajaxResponse(); $nuid = get_uid(false); //$text = str_replace('&', '&', $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('&', '&', $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; }
/** * Функция вырезает определенные куски текста и заменяет их на уникальный код * который в последствии необходимо вернуть обратно через вызов функцию 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()); }
/** * @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]')); } }
$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('/&/', '&', (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('/&/', '&', (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 варианта ответа в голосовании';
</tr> </thead> <tbody> <?php foreach ($data as $row) { ?> <tr id="query<?php echo $row['id']; ?> "> <td class="c-st"> • </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>
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; }
/** * Прикрепляет файлы * * @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); } }
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"> </td> </tr> </table><br /> <?php
/** * Редактирование комментария. * * @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; }
/** * Отправка сообщения. * * @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); }
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}] = ' <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(' ', ' ', 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(' ', ' ', 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; }
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 }
/** * Сохраняет/редактирует направление * * @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; }