Пример #1
0
function openProfession($sId = '', $aParams = array())
{
    $objResponse =& new xajaxResponse();
    if ((int) $sId != $_SESSION['uid']) {
        return $objResponse;
    }
    $prof_id = (int) $aParams['sProfId'];
    $category = current(portfolio::getPortfolioCategory($prof_id));
    $kwords = new kwords();
    $user_keys = $kwords->getUserKeys(get_uid(), $prof_id);
    ob_start();
    include_once $_SERVER['DOCUMENT_ROOT'] . '/user/tpl.profession-edit.php';
    $sHtml = ob_get_contents();
    ob_end_clean();
    $objResponse->assign('popup_loader', 'innerHTML', $sHtml);
    $objResponse->script("portfolio.initPopup('profession_edit_popup');");
    $objResponse->script("ComboboxManager.initCombobox( \$('profession_edit_popup').getElements('.b-combo__input') );");
    return $objResponse;
}
Пример #2
0
 /**
  * Сохраняет данные для статистики посещений страницы пользователя по ключевым словам.
  *
  * @param int $user_id UID хозяина страницы
  * @param int $guest_id UID гостя или ноль, если гость неавторизован
  * @param string $guest_ip IP адрес гостя
  * @param bool $is_emp был ли гость работодателем
  * @param string $words строка ключевых слов, разделенных запятыми (если несколько)
  */
 function wordsStatLog($user_id, $guest_id, $guest_ip, $is_emp, $words)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php';
     if ($keywords = kwords::getKeys(stripslashes(urldecode($words)))) {
         foreach ($keywords as $k => $v) {
             $aWords[] = $v['id'];
         }
     } else {
         return false;
     }
     global $DB;
     $sQuery = "SELECT wid FROM portf_word WHERE uid=? AND wid IN (?l)";
     $aRows = $DB->rows($sQuery, $user_id, $aWords);
     if ($DB->error) {
         return false;
     }
     if ($aRows) {
         $aData = array();
         foreach ($aRows as $aOne) {
             $aData[] = array('user_id' => $user_id, 'word_id' => $aOne['wid'], 'guest_id' => $guest_id, 'guest_ip' => $guest_ip, 'is_emp' => $is_emp);
         }
         if (!$DB->insert('stat_word_log', $aData)) {
             return false;
         }
     }
     return true;
 }
Пример #3
0
 foreach ($prjs as $ikey => $prj) {
     if (!$prj['id']) {
         continue;
     }
     $prof_id = $prj['prof_id'];
     if ($prj['is_blocked'] == 't' && $user->uid != get_uid(false) && !hasPermissions('users')) {
         continue;
     }
     if ($prj['prof_id'] == professions::BEST_PROF_ID || $prj['prof_id'] == professions::CLIENTS_PROF_ID) {
         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;
Пример #4
0
     $frl = new freelancer();
     if ($error_serv == '') {
         $error_db = $frl->UpdateServ($uid, $exp, $text, $tab_name_id, $cost_hour, $cost_month, $cost_type_hour, $cost_type_month, $in_office, $cat_show, $prefer_sbr);
     }
     if ($error_serv != '' || $error_db) {
         $error_serv = 'Данные не сохранены<br /><br />' . $error_serv;
     }
     if (!$error_serv) {
         $info_serv = "Изменения внесены";
         header_location_exit("/users/{$login}");
     }
     break;
 case "prof_change":
     // Ключевые слова !!! старые удаляются, новые добавляются не зависимо от результата обновления профессии UpdateProfDesc
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/kwords.php";
     $kwords = new kwords();
     if (count($_POST['prof_keys']) > 0) {
         foreach ($_POST['prof_keys'] as $prof_id => $keys) {
             $aOldIds = array_keys($kwords->getUserKeys($uid, $prof_id));
             $ids = array();
             $kwords->delUserKeys($uid, $prof_id);
             if (trim($keys)) {
                 $ukey = explode(",", $keys);
                 if (count($ukey) > 0) {
                     $ids = $kwords->add($ukey, true);
                     $kwords->addUserKeys($uid, $ids, $prof_id);
                 }
             }
             $kwords->moderUserKeys($uid, $prof_id, $aOldIds, $ids, $uid, $keys);
         }
     }
Пример #5
0
 /**
  * Создает xml файл webprof
  * 
  * @return text $filename полный путь к файлу куда webdav должен сохранить получившийся xml
  */
 public function webprofGenerateRss($filename)
 {
     global $DB, $GLOBALS;
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/kwords.php";
     function getProfessionName($id, $professions)
     {
         foreach ($professions as $profession) {
             if ($profession['id'] == $id) {
                 return "{$profession['groupname']} / {$profession['profname']}";
             }
         }
     }
     $spec = array(9, 37, 27, 86, 8, 164, 10);
     $users = self::getListForWebprof($spec);
     $professions = professions::GetAllProfessions();
     $xml = '';
     $host = str_replace(HTTP_PREFIX, '', $GLOBALS['host']);
     $HTTP_PREFIX = "https://";
     $XMLData = '';
     $xml .= '<?xml version="1.0" encoding="utf-8"?>' . "\n";
     $xml .= '<!DOCTYPE source>' . "\n";
     $xml .= '<source creation-time="' . date('Y-m-d H:i:s') . ' GMT+3" host="' . $host . '">' . "\n";
     $xml .= '   <users>' . "\n";
     if (is_array($users) && count($users)) {
         $XMLData = '';
         foreach ($users as $user) {
             $frl_name = trim("{$user['uname']} {$user['usurname']}");
             $frl_name = iconv('CP1251', 'UTF-8', htmlspecialchars($frl_name, ENT_QUOTES));
             $frl_spec_main = iconv('CP1251', 'UTF-8', htmlspecialchars(getProfessionName($user['spec'], $professions), ENT_QUOTES));
             switch ($user['status_type']) {
                 case '0':
                     $frl_status = 'free';
                     break;
                 case '1':
                     $frl_status = 'busy';
                     break;
                 case '2':
                     $frl_status = 'absent';
                     break;
                 default:
                     $frl_status = 'no status';
                     break;
             }
             $frl_spec_ext = '';
             $spec_ext_ids = professions::GetProfsAddSpec($user['uid']);
             if ($spec_ext_ids) {
                 foreach ($spec_ext_ids as $spec_id) {
                     $frl_spec_ext .= "<spec>" . iconv('CP1251', 'UTF-8', htmlspecialchars(getProfessionName($spec_id, $professions), ENT_QUOTES)) . "</spec>";
                 }
             }
             $frl_tags = '';
             $tags = kwords::getUserKeys($user['uid'], $user['spec']);
             $bIsModer = kwords::isModerUserKeys($user['uid'], $user['spec']);
             if ($tags && !$bIsModer) {
                 foreach ($tags as $tag) {
                     $frl_tags .= "<tag>" . iconv('CP1251', 'UTF-8', htmlspecialchars($tag, ENT_QUOTES)) . "</tag>";
                 }
             }
             $frl_cost_hour = '';
             $frl_cost_month = '';
             if ($user['cost_hour'] != 0) {
                 $frl_cost_hour = (double) $user['cost_hour'];
                 switch ($user['cost_type_hour']) {
                     case '1':
                         $frl_cost_hour .= " Euro";
                         break;
                     case '2':
                         $frl_cost_hour .= " Руб";
                         break;
                     case '3':
                         $frl_cost_hour .= " FM";
                         break;
                     default:
                         $frl_cost_hour .= " USD";
                         break;
                 }
                 $frl_cost_hour = iconv('CP1251', 'UTF-8', $frl_cost_hour);
             }
             if ($user['cost_month'] != 0) {
                 $frl_cost_month = (double) $user['cost_month'];
                 switch ($user['cost_type_month']) {
                     case '1':
                         $frl_cost_month .= " Euro";
                         break;
                     case '2':
                         $frl_cost_month .= " Руб";
                         break;
                     case '3':
                         $frl_cost_month .= " FM";
                         break;
                     default:
                         $frl_cost_month .= " USD";
                         break;
                 }
                 $frl_cost_month = iconv('CP1251', 'UTF-8', $frl_cost_month);
             }
             $XMLData .= "<user>";
             $XMLData .= "<name>{$frl_name}</name>";
             $XMLData .= "<spec_main>{$frl_spec_main}</spec_main>";
             $XMLData .= "<spec_ext>{$frl_spec_ext}</spec_ext>";
             $XMLData .= "<status>{$frl_status}</status>";
             $XMLData .= "<rating>{$user['rating']}</rating>";
             $XMLData .= "<cost_from_hour>{$frl_cost_hour}</cost_from_hour>";
             $XMLData .= "<cost_from_month>{$frl_cost_month}</cost_from_month>";
             $XMLData .= "<url>" . $HTTP_PREFIX . "{$host}/users/{$user['login']}</url>";
             $XMLData .= "<tags>{$frl_tags}</tags>";
             $XMLData .= "</user>\n";
         }
     }
     $xml .= $XMLData . "\n";
     $xml .= '   </users>' . "\n";
     $xml .= '</source>' . "\n";
     $file = new CFile();
     return $file->putContent($filename, $xml);
 }
Пример #6
0
    $_SESSION['search_elms'][$key] = $elm->isActive() ? $elm->total : $_SESSION['search_elms'][$key];
    $_SESSION['search_limit'][$key] = $elm->isActive() ? $elm->getProperty('limit') : $_SESSION['search_limit'][$key];
}
$element = $elements[$type];
if (isset($_SESSION['search_elms'][$type]) && isset($_POST['search_string']) && !isset($_GET['only_tab'])) {
    if ($_SESSION['search_elms'][$type] == 0) {
        foreach ($_SESSION['search_elms'] as $name => $count) {
            if ($count > 0) {
                header("Location: /search/?type={$name}&{$query_string_menu}&only_tab=1");
                exit;
            }
        }
    }
}
if ($search_string) {
    $search_input_hint = kwords::getRandomSearchHint($type);
} else {
    $search_input_hint = kwords::getRandomSearchHint($type);
}
$page_title = "Поиск - фриланс, удаленная работа на FL.ru";
$is_use_new_mootools = true;
$content = "content.php";
$css_file = array('search.css', 'nav.css', '/css/block/b-menu/_tabs/b-menu_tabs.css', '/css/block/b-search/b-search.css', '/css/block/b-input-hint/b-input-hint.css');
$js_file[] = 'search.js';
if ($type && $type != 'users') {
    $js_file[] = '/kword_search_js.php?type=' . $type;
}
$content_bgcolor = '#ffffff';
$header = "../header.php";
$footer = "../footer.html";
include "../template2.php";
Пример #7
0
    <? if ($is_pro) {?>	<td align="right">
      	<form action="." method="post" name="frmdiz" id="frmdiz">
        <div>
        <input type="hidden" name="action" id="action" value="diz_ch" />
        <input type="checkbox" class="checkbox" id="design" name="stddiz" value="0" onClick="submit_diz(this.value);" <? if (!$user->design) print "checked='checked'"?> /> Стандартный дизайн портфолио
        </div>
        </form>
      </td><? } ?>
    	<td width="19">&nbsp;</td>
    </tr>
    </table>
    */
    ?>

<?php 
    $kwords = new kwords();
    ?>




<?php 
    $lastprof = -1;
    $j = 0;
    $k = -1;
    if ($prjs) {
        foreach ($prjs as $ikey => $prj) {
            if ((int) $prj['prof_id'] == 0 || !$is_pro && ($prj['prof_id'] == professions::BEST_PROF_ID || $prj['prof_id'] == professions::CLIENTS_PROF_ID)) {
                continue;
            }
            $old_error_reporting = error_reporting();
Пример #8
0
<?php

define('IS_PHP_JS', true);
/**
 * Выводит JS-скрипт с массивом ключевых слов (класса kwords), для обработки полей с автоподстановкой (выпадающим
 * блоком-подсказкой с ключевыми словами, например, тут: /freelancers/filter.php).
 * Скрипт кэшируется в мемкэше и на стороне клиента.
 * Подключается через 
 * <script type="text/javascript" src="/kword_js.php"></script>.
 */
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/memBuff.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php';
$kwords = new kwords();
$mem = new memBuff();
if (!($kdata = $mem->get(kwords::MEM_KEY_NAME))) {
    $js = $kwords->getJSValue($kwords->load());
    $etag = md5($js);
    $kdata = array('js' => $js, 'etag' => $etag);
    $mem->set(kwords::MEM_KEY_NAME, $kdata, kwords::MEM_TIME);
}
//header('Content-Type: text/javascript; charset=windows-1251');
//header("Cache-Control: public, must-revalidate, max-age=0");
//header("Etag: {$kdata['etag']}");
//if($_SERVER['HTTP_IF_NONE_MATCH']==$kdata['etag']) {
//    header("HTTP/1.1 304 Not Modified");
//	exit;
//}
print $kdata['js'];
Пример #9
0
 /**
  * Возвращает количество подходящих соискателей по фильтру, переданному с http://hh.ru/employer/resumesSearch.do
  * а также линк на результаты.
  *
  * @param array $filter
  *   <hh:getFrlCount>
  *     <v-p> <!-- фильтр, массив -->
  *       <v k="kword">тест,программирование, буш, Java Script</v> <!-- ключевые слова, через запятую -->
  *       <v k="regions">1001,456</v> <!-- ид. ХХ-регионов. Если выбран родитель, то подразумевается, что должны быть включены все дети -->
  *       <v k="fields">1,2,3</v> <!-- ид. ХХ-профобластей. Если указана, то необходимо включить все специализации, относящиеся к этой области -->
  *       <v k="specs">1,2,3</v> <!-- ид. отдельный ХХ-специализаций -->
  *       <v k="cost">          <!-- месячная зарплата -->
  *         <v k="from">12</v>       <!-- от -->
  *         <v k="to">999</v>        <!-- до -->
  *         <v k="currency">USD</v>  <!-- валюта -->
  *       </v>
  *       <v k="wo_cost">1</v> <!-- включать ли в поиск людей, не указавших ЗП -->
  *       <v k="age">          <!-- возраст -->
  *         <v k="from">12</v>  <!-- от -->
  *         <v k="to">999</v>   <!-- до -->
  *       </v>
  *       <v k="wo_age">1</v>  <!-- включать ли в поиск людей, не указавших возраст -->
  *     </v-p>
  *   </hh:getFrlCount>
  *
  * @return array 
  */
 protected function x____getFrlCount($args)
 {
     list($filter) = $args;
     require_once ABS_PATH . '/classes/freelancer.php';
     require_once ABS_PATH . '/classes/memBuff.php';
     if (!is_array($filter)) {
         $filter = array();
     }
     $hh = new hh();
     $memBuff = new memBuff();
     $memkey = md5($hh->packFilter($filter));
     if ($mret = $memBuff->get($memkey)) {
         return $mret;
     }
     if ($filter['kword']) {
         require_once ABS_PATH . '/classes/kwords.php';
         $kwords = new kwords();
         $filter['orig_kwords'] = $filter['kword'];
         $filter['kword'] = $kwords->getKeys($filter['kword']);
     }
     if ($filter['regions']) {
         list($filter['country'], $filter['city']) = $hh->getCCByHHRegions($filter['regions']);
         unset($filter['regions']);
     }
     $pp1 = $pp2 = array();
     if ($filter['fields']) {
         if ($ppx = $hh->getProfessionsByHHFields($filter['fields'])) {
             $pp1 = $ppx;
         }
         unset($filter['fields']);
     }
     if ($filter['specs']) {
         if ($ppx = $hh->getProfessionsByHHSpecs($filter['specs'])) {
             $pp2 = $ppx;
         }
         unset($filter['specs']);
     }
     if ($pp1 || $pp2) {
         $filter['prof'][1] = $pp1 + $pp2;
     }
     if ($filter['cost']) {
         $filter['cost']['type_date'] = 1;
         $filter['cost']['cost_from'] = $filter['cost']['from'];
         $filter['cost']['cost_to'] = $filter['cost']['to'];
         if (($filter['cost']['cost_type'] = hh::$hh_currency2ex[strtoupper($filter['cost']['currency'])]) < 0) {
             $hhc = $hh->getHHCurrency($filter['cost']['currency']);
             $filter['cost']['cost_type'] = freelancer::RUR;
             $filter['cost']['cost_from'] /= $hhc['rate'];
             $filter['cost']['cost_to'] /= $hhc['rate'];
         }
         $filter['cost'] = array($filter['cost']);
     }
     if (isset($filter['wo_cost'])) {
         $filter['wo_cost'] = $this->ex2pg($filter['wo_cost'], EXTERNAL_DT_BOOL);
     }
     if ($filter['age']) {
         $filter['age'][0] = (int) $filter['age']['from'];
         $filter['age'][1] = (int) $filter['age']['to'];
     }
     if (isset($filter['wo_age'])) {
         $filter['wo_age'] = $this->ex2pg($filter['wo_age'], EXTERNAL_DT_BOOL);
     }
     if ($count = freelancer::getFrlCount($filter)) {
         $link = $hh->saveFilter($filter);
     }
     $ret = array('count' => $count, 'link' => $GLOBALS['host'] . '/freelancers/?hhf=' . $link);
     $memBuff->set($memkey, $ret, 1800);
     return $ret;
 }
Пример #10
0
 /**
  * Уточнения к разделам в портфолио. Утверждение/удаление записи
  * 
  * @param  string $stream_id идентификатор потока
  * @param  int $user_id идентификатор модератора
  * @param  int $from_id идентификатор пользователя
  * @param  int $rec_id идентификатор записи
  * @param  int $rec_type тип записи 
  * @param  int $action действие: 1 - утверждено, 2 - удалено
  * @param  string $is_sent было ли отправлено уведомление
  * @param  string $reason причина удаления
  */
 function resolvePortfChoice($stream_id = '', $user_id = 0, $from_id = 0, $rec_id = 0, $rec_type = 0, $action = 1, $is_sent = '', $reason = '')
 {
     $bRet = false;
     $aChange = $GLOBALS['DB']->row('SELECT c.prof_id, c.ucolumn, c.old_val, u.login, u.uname, u.usurname 
         FROM portf_choise_change c 
         INNER JOIN moderation m ON m.rec_id = c.id 
         INNER JOIN users u ON u.uid = c.user_id 
         WHERE c.id = ?i AND m.rec_type = ?i AND m.stream_id = ?', $rec_id, self::MODER_PORTF_CHOISE, $stream_id);
     if ($aChange) {
         $bRet = true;
         if ($action == 2) {
             // возвращаем старые значения
             if ($aChange['ucolumn'] == 'text') {
                 if (!$aChange['old_val']) {
                     $aChange['old_val'] = null;
                 }
                 $GLOBALS['DB']->query("UPDATE portf_choise SET portf_text = ? WHERE user_id = ?i AND prof_id = ?i", $aChange['old_val'], $from_id, $aChange['prof_id']);
             } else {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php';
                 $kwords = new kwords();
                 $kwords->delUserKeys($from_id, $aChange['prof_id']);
                 if ($aChange['old_val']) {
                     $aKwords = explode(',', $aChange['old_val']);
                     $kwords->addUserKeys($from_id, $aKwords, $aChange['prof_id']);
                 }
             }
         }
         $GLOBALS['DB']->query('DELETE FROM portf_choise_change WHERE id = ?i', $rec_id);
         $GLOBALS['DB']->query('DELETE FROM moderation WHERE rec_id = ?i AND rec_type = ?i', $rec_id, self::MODER_PORTF_CHOISE);
     }
     return $bRet;
 }
Пример #11
0
 public function loadProfessionUserKeyword($uid, $prof_id)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/kwords.php";
     $html_keyword_js = '<a href="/freelancers/?word=$1" class="inherit">$2</a>';
     $html_keyword = preg_replace('/\\$\\d/', '%s', $html_keyword_js);
     $stop_words = new stop_words(hasPermissions('users'));
     $wkeys = kwords::getUserKeys($uid, $prof_id);
     $modkey = kwords::isModerUserKeys($uid, $prof_id);
     $kword_count = 0;
     $c = 0;
     if ($wkeys) {
         $links_keyword = array();
         $links_keyword_hide = array();
         $kword_count = count($wkeys);
         foreach ($wkeys as $key) {
             $sKey = stripslashes($modkey ? $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));
             }
         }
         $wkeys['links_keyword'] = $links_keyword;
         $wkeys['links_keyword_hide'] = $links_keyword_hide;
         $wkeys['count'] = $kword_count;
     }
     return $wkeys;
 }
Пример #12
0
        ?>
                          <input type="hidden" name="encode" value="utf8" />
                      <?php 
    }
    ?>
                      <div class="b-search">
                          <table class="b-search__table" cellspacing="0" cellpadding="0" border="0">
                              <tbody>
                                  <tr class="b-search__tr">
                                      <td class="b-search__input">
                                              <div id="body_search_across" class="b-input b-input_height_23 b-input_border_none">
                                                  <input id="search_across" class="b-input__text" type="text" name="search_string" placeholder="Поиск<?php 
    echo is_emp() ? " исполнителя" : (get_uid(false) ? " проекта" : " исполнителя");
    ?>
. Например, <?php 
    echo kwords::getRandomSearchHint(get_uid(false) ? 'users' : (is_emp(get_uid(false)) ? 'projects' : 'users'));
    ?>
" autocomplete="off" />
                                              </div>
                                      </td>
                                      <td class="b-search__button">
                                          <a class="b-button b-button_rectangle_color_transparent" href="/search/" onclick="<?php 
    if (is_emp()) {
        ?>
_gaq.push(['_trackEvent', 'User', 'Employer', 'button_search']); ga('send', 'event', 'Employer', 'button_search');<?php 
    } else {
        ?>
_gaq.push(['_trackEvent', 'User', 'Freelance', 'button_search']); ga('send', 'event', 'Freelance', 'button_search');<?php 
    }
    ?>
 $('form-search').submit(); return false;">
Пример #13
0
/**
 * Парсит HTML одного уточнения к разделам в портфолио
 * 
 * @param  array $aOne массив с данными комментария
 * @param  int $status статус: 0 - не проверенно, 1 - утверждено, 2 - удалено
 * @param  string $sKind опционально. тип записи
 * @param  array $aStream данные о потоке
 * @param  int $nCnt количество записей в потоке
 * @param  int $nContentId идентификатор сущности из admin_contents (фактический из потоков, то есть со сборными)
 * @return string HTML
 */
function _parsePortfChoiceOne($aOne = array(), $status = 0, $sKind = '0', $aStream = array(), $nCnt = 0, $nContentId = 0)
{
    global $stop_words, $sTeam;
    $sReturn = '';
    $sMsgText = '';
    if ($aOne['ucolumn'] == 'text') {
        $sMsgText = $status != 1 ? $stop_words->replace(xmloutofrangechars($aOne['new_val']), 'html', true, 'suspect') : xmloutofrangechars($aOne['new_val']);
    } else {
        $user_keys = kwords::getUserKeys($aOne['user_id'], $aOne['prof_id']);
        $aTmp = array();
        if ($user_keys) {
            foreach ($user_keys as $key) {
                $aTmp[] = $status != 1 ? $stop_words->replace(change_q_x(stripslashes(xmloutofrangechars($key))), 'html', true, 'suspect') : change_q_x(stripslashes(xmloutofrangechars($key)));
            }
            $sMsgText = implode(', ', $aTmp);
        }
    }
    $sLink = $GLOBALS['host'] . '/users/' . $aOne['login'];
    $sColumn = $aOne['ucolumn'] == 'text' ? 'Уточнения к разделу' : 'Ключевые слова';
    $sMsgText = reformat($sMsgText, 54, 0, 1);
    $aOne['is_sent'] = '0';
    $aOne['context_code'] = '1';
    $aOne['context_link'] = $sLink;
    $aOne['context_title'] = $aOne['uname'] . ' ' . $aOne['usurname'] . ' [' . $aOne['login'] . ']';
    $sJSParams = "{'sProfId': {$aOne['prof_id']}, 'change_id': '{$aOne['id']}', 'content_id': {$nContentId}, 'stream_id': '{$aStream['stream_id']}', 'content_cnt': {$nCnt}, 'status': {$status}, 'is_sent': '{$aOne['is_sent']}'}";
    $sEditIcon = _parseEditIcon('admEditPortfChoice', $aOne['user_id'], $status, $sKind, $sJSParams);
    $sJSParams = "{'content_id': {$nContentId}, 'stream_id': '{$aStream['stream_id']}', 'content_cnt': {$nCnt}, 'status': {$status}, 'is_sent': '{$aOne['is_sent']}'}";
    $sPRO = $aOne['moderator_status'] == -1 ? '<div class="b-post__txt b-post__txt_fontsize_11"><span style="color: #cc4642;">У пользователя был аккаунт PRO</span></div>' : '';
    $sPro = $aOne['is_pro'] == 't' ? view_pro2($aOne['is_pro_test'] == 't' ? true : false) . '&nbsp;' : '';
    $sReturn .= '
<div class="b-post b-post_bordtop_dfe3e4 b-post_padtop_15 b-post_marg_20_10" id="my_div_content_' . $aOne['content_id'] . '_' . $aOne['id'] . '_' . $sKind . '">
    ' . _parseHidden($aOne, $sKind) . '
    ' . _parseOkIcon($status, $aOne['content_id'], $aOne['id'], $sKind, $aOne['user_id']) . '
    ' . _parsePostTime($status, $aOne['post_time']) . '
    <div class="b-username b-username_padbot_5">' . ($aOne['is_team'] == 't' ? $sTeam : $sPro) . '<a class="b-username__link b-username__link_color_fd6c30 b-username__link_fontsize_11 b-username__link_bold" href="/users/' . $aOne['login'] . '/#' . $aOne['prof_id'] . '" target="_blank">' . $aOne['uname'] . ' ' . $aOne['usurname'] . ' [' . $aOne['login'] . ']</a></div>
    ' . ($aOne['warn'] ? '<div class="b-username_padbot_5"><a onclick="parent.user_content.getUserWarns(' . $aOne['user_id'] . ');" href="javascript:void(0);" class="notice">Предупреждения:&nbsp;<span id="warn_' . $aOne['user_id'] . '_' . $aOne['content_id'] . '_' . $aOne['id'] . '">' . intval($aOne['warn']) . '</span></a></div>' : '<div class="b-username_padbot_5 user-notice">Предупреждений нет</div>') . '
    ' . $sPRO . '
    ' . _parseMass($aOne, $status, $sKind) . '
    <div class="b-post__txt b-post__txt_fontsize_15"><span class="b-post__bold">' . $sColumn . '</span>: ' . $sMsgText . '</div>
    ' . _parseDelIcons($aOne, 'user_id', $status, $sKind, $sJSParams, $sEditIcon) . '
</div>';
    return $sReturn;
}
/**
 * Отдает HTML для Редактирование Личные сообщения
 * 
 * @param  object $objResponse xajaxResponse
 * @param  string $user_id UID пользователя
 * @param  string $rec_type тип записи
 * @param  array $aParams ID профессии
 * @return string
 */
function _admEditPortfChoiceParseForm(&$objResponse, $user_id = '', $rec_type = '', $aParams = array())
{
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php';
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
    $prof_id = $aParams['sProfId'];
    $prj = professions::GetProfDesc($user_id, $prof_id);
    $keys = kwords::getUserKeys($user_id, $prof_id);
    $user = new users();
    $user->GetUserByUID($user_id);
    ob_start();
    include_once $_SERVER['DOCUMENT_ROOT'] . '/user/adm_edit_tpl/portf_choise.php';
    $sHtml = ob_get_contents();
    ob_end_clean();
    // текст
    $sOnReady = "if(document.getElementById('adm_edit_msg')) document.getElementById('adm_edit_msg').value = (\$('adm_edit_msg_source')? \$('adm_edit_msg_source').value : null);";
    $objResponse->assign('h4_adm_edit', 'innerHTML', 'Редактировать уточнения к разделу в портфолио');
    $objResponse->assign('div_adm_edit', 'innerHTML', $sHtml);
    $objResponse->script($sOnReady);
    $objResponse->script("\$('div_adm_reason').setStyle('display', 'none');");
    $objResponse->script("adm_edit_content.editMenuItems = ['', 'Основное'];");
    $objResponse->script('adm_edit_content.edit();');
    $objResponse->script('xajax_getAdmEditReasons(' . admin_log::ACT_ID_EDIT_PORTF_CHOISE . ');');
}
Пример #15
0
         $comment['msgtext'] = preg_replace('/\\n?<br\\s?\\/?>\\n?/', "\n", $comment['msgtext']);
         $comment['msgtext'] = html_entity_decode($comment['msgtext']);
         $result['success'] = true;
         $result['data'] = $comment;
         $result['attaches'] = $attaches;
     }
     echo json_encode($result);
     exit;
     break;
 default:
     $content = 'content_index.php';
     //        $page = __paramInit('int', 'p');
     //        if (!$page) $page = 1;
     if (isset($_GET['tag'])) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php';
         $tag_name = kwords::getKeyById(intval($_GET['tag']));
     }
     $articles = articles::getArticles($page, $msgs_on_page, $uid, $_GET['tag'], true, null, $ord);
     $articles_count = articles::ArticlesCount(true, null, $_GET['tag']);
     $order = intval($_COOKIE['bmOrderType']);
     switch ($order) {
         case 0:
             $order = 'time';
             break;
         case 1:
             $order = 'priority';
             break;
         case 2:
             $order = 'title';
             break;
         default:
Пример #16
0
 /**
  * Добавляем ключевые слова к статье.
  *
  * @param integer $article_id ИД Статьи
  * @param array   $tags       Ключевые слова (теги)
  *
  * @return boolean
  */
 public function addArticleTags($article_id, $tags)
 {
     global $DB;
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/kwords.php';
     $kwords = new kwords();
     $ids = $kwords->add($tags, true);
     self::clearArticleTags($article_id);
     $sql = 'INSERT INTO articles_word (article_id, word_id, pos) VALUES ';
     if ($ids) {
         foreach ($ids as $position => $word_id) {
             $data[] = "({$article_id}, {$word_id}, {$position})";
         }
     }
     if (count($data) > 0) {
         $sql .= implode(', ', $data);
         $res = $DB->squery($sql);
         $tags = implode(', ', $tags);
         $sql = 'UPDATE articles_new SET keywords = ? WHERE id = ?';
         $DB->query($sql, $tags, $article_id);
         return $res;
     }
     return false;
 }
Пример #17
0
 /**
  * Гнерирует переменную с данными всего фильтра
  *
  * @return array Фильтр
  */
 function getAllFilter()
 {
     if (!$this->filter) {
         self::getFilter();
     }
     if ($this->filter[0]['active'] == 'f') {
         return false;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/kwords.php";
     $kword = new kwords();
     $filter['orig_kwords'] = $this->filter[0]['kwords'];
     $filter['kword'] = $kword->getKeys($this->filter[0]['kwords'], $filter['is_kword']);
     $filter['sex'] = $this->filter[0]['sex'];
     $filter['country'] = $this->filter[0]['country'];
     $filter['city'] = $this->filter[0]['city'];
     $filter['age'] = array($this->filter[0]['age_from'], $this->filter[0]['age_to']);
     $filter['login'] = trim($this->filter[0]['login']);
     $filter['exp'] = array($this->filter[0]['exp_from'], $this->filter[0]['exp_to']);
     $filter['cost'] = $this->filter[1];
     $filter['prof'] = $this->filter[2];
     $filter['in_office'] = $this->filter[0]['in_office'] == 't' ? true : false;
     $filter['in_fav'] = $this->filter[0]['in_fav'] == 't' ? true : false;
     $filter['only_free'] = $this->filter[0]['only_free'] == 't' ? true : false;
     $filter['sbr_is_positive'] = $this->filter[0]['sbr_is_positive'] == 't' ? true : false;
     $filter['sbr_not_negative'] = $this->filter[0]['sbr_not_negative'] == 't' ? true : false;
     $filter['opi_is_positive'] = $this->filter[0]['opi_is_positive'] == 't' ? true : false;
     $filter['opi_not_negative'] = $this->filter[0]['opi_not_negative'] == 't' ? true : false;
     $filter['is_preview'] = $this->filter[0]['is_preview'] == 't' ? true : false;
     $filter['success_sbr'] = $this->filter[0]['success_sbr'];
     $filter['is_pro'] = $this->filter[0]['is_pro'] == 't' ? true : false;
     $filter['is_verify'] = $this->filter[0]['is_verify'] == 't' ? true : false;
     $filter['only_tu'] = $this->filter[0]['only_tu'] == 't' ? true : false;
     $filter['only_online'] = $this->filter[0]['only_online'] == 't' ? true : false;
     return $filter;
 }