Beispiel #1
0
 /**
  * Вывод главной страницы 
  * Выводит главную страницу. По умолчанию Пополнить счет.
  */
 public function indexAction()
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/wizard_billing.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/wizard.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_freelancer.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_employer.php';
     unset($_SESSION['sum']);
     front::og('tpl')->page = 'index';
     if ($this->uri[0] == 'success.php') {
         header('Location: /bill/success/');
         exit;
     }
     front::og('tpl')->no_banner = is_pro() ? true : false;
     $master = wizard_billing::getDraftAccountOperations($_SESSION['uid']);
     if (!is_emp()) {
         $pro_op_codes = step_freelancer::getOperationCodePRO();
         foreach ($master as $pay) {
             if (in_array($pay['op_code'], $pro_op_codes)) {
                 $is_pro = true;
                 $op_id = $pay['id'];
             } elseif ($pay['op_code'] == step_freelancer::OFFERS_OP_CODE) {
                 $disabled[$pay['id']] = $pay['id'];
             }
         }
         if (!$is_pro) {
             unset($disabled);
         }
         if ($disabled) {
             $str_disabled = implode(',', $disabled);
             $dis[$op_id] = $str_disabled;
         }
         front::og('tpl')->pro_op_codes = $pro_op_codes;
         front::og('tpl')->disabled = $disabled;
         front::og('tpl')->dis = $dis;
         front::og('tpl')->is_pay_pro = $is_pro;
     } else {
         foreach ($master as $pay) {
             if ($pay['op_code'] == step_employer::OP_CODE_PRO) {
                 $is_pro = true;
                 $op_id = $pay['id'];
             } elseif ($pay['op_code'] == 53 && $pay['option'] == 'color') {
                 $disabled[$pay['id']] = $pay['id'];
             }
         }
         if (!$is_pro) {
             unset($disabled);
         }
         if ($disabled) {
             $str_disabled = implode(',', $disabled);
             $dis[$op_id] = $str_disabled;
         }
         front::og('tpl')->pro_op_codes = step_employer::OP_CODE_PRO;
         front::og('tpl')->disabled = $disabled;
         front::og('tpl')->dis = $dis;
         front::og('tpl')->is_pay_pro = $is_pro;
     }
     front::og('tpl')->master = $master;
     front::og('tpl')->text = static_pages::get('bill_index');
     front::og('tpl')->display('bill/bill_index.tpl');
 }
Beispiel #2
0
 public function __construct($type = false, $tbl_name = false)
 {
     $this->is_pro = is_pro() ? '10' : '01';
     $this->is_role = get_uid(false) ? is_emp() ? '01' : '10' : '00';
     if ($tbl_name) {
         $this->tbl_name = $tbl_name;
     }
     if ($type) {
         $this->setType($type, 1);
     }
 }
/**
 * Получить станицу с выбором работ для таба.
 * 
 * @param bool $params
 *
 * @return \xajaxResponse
 */
function FPEP_getTab($params)
{
    $objResponse = new xajaxResponse();
    $uid = get_uid(false);
    if ($uid > 0 && !is_emp() && is_pro()) {
        $query = http_build_query($params);
        $params['is_ajax'] = true;
        require_once ABS_PATH . '/freelancers/widgets/FreelancersPreviewEditorPopup.php';
        $freelancersPreviewEditorPopup = new FreelancersPreviewEditorPopup($params);
        $html = $freelancersPreviewEditorPopup->render();
        $objResponse->call("window.popups_factory.getPopup('freelancersPreviewEditorPopup').showTabContent", $freelancersPreviewEditorPopup->getCurrentTab(), $html, $query);
    }
    return $objResponse;
}
Beispiel #4
0
function SaveStatus($text, $statusType, $login = NULL)
{
    session_start();
    $freelancer = new freelancer();
    $text = addslashes(substr(stripslashes(trim($text)), 0, 200));
    close_tags($text, 's');
    $freelancer->status_text = antispam(htmlspecialchars(htmlspecialchars_decode(change_q_x(trim($text), true, false), ENT_QUOTES), ENT_QUOTES));
    $freelancer->status_type = intval($statusType);
    if ($freelancer->statusToStr($statusType)) {
        $stdStatus = "";
        $objResponse = new xajaxResponse();
        $uid = hasPermissions('users') && $login != $_SESSION['login'] ? $freelancer->GetUid($err, $login) : get_uid(false);
        $pro = hasPermissions('users') && $login != $_SESSION['login'] ? is_pro(true, $uid) : is_pro();
        $error = $freelancer->Update($uid, $res);
        if (!$freelancer->status_text) {
            $freelancer->status_text = $stdStatus;
        }
        $freelancer->status_text = stripslashes($freelancer->status_text);
        switch ($freelancer->status_type) {
            case 1:
                $status_cls = 'b-status b-status_busy';
                break;
            case 2:
                $status_cls = 'b-status b-status_abs';
                break;
            case -1:
                $status_cls = 'b-status b-status_no';
                break;
            default:
                $status_cls = 'b-status b-status_free';
        }
        if (!$noassign) {
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
            $stop_words = new stop_words(hasPermissions('users'));
            $sStatusText = $pro ? $freelancer->status_text : $stop_words->replace($freelancer->status_text);
            //$GLOBALS['xajax']->setCharEncoding("windows-1251");
            $jsobj = json_encode(array('data' => iconv('CP1251', 'UTF8', $freelancer->status_text)));
            $objResponse->assign("statusText", "innerHTML", $freelancer->status_text == $stdStatus ? "" : reformat($sStatusText, 40, 0, 1, 25));
            $objResponse->assign("statusTitle", "innerHTML", $freelancer->statusToStr($statusType));
            //            $objResponse->assign("statusTitle", "style.display", $statusType > -1 ? '' : 'none');
            $objResponse->script("statusType = {$statusType};\n\t\t\t                      statusTxt = document.getElementById('statusText').innerHTML;\n\t\t\t                      statusTxtSrc = {$jsobj};");
        }
        $objResponse->script("\$('bstatus').erase('class');\n             \$('bstatus').addClass('{$status_cls}');");
    }
    return $objResponse;
}
Beispiel #5
0
 /**
  * Отправка сообщения.
  * 
  * @param type $attr
  */
 public function _ceSend($attr)
 {
     $user = new users();
     $messages = new messages();
     $stopWords = new stop_words(false);
     $user->getUserByUID(intval($attr->uid));
     if (empty($user->login) || $user->login == 'admin') {
         self::error(3, false);
         return;
     }
     if ($user->is_banned) {
         self::error(4, false);
         return;
     }
     $text = iconv('UTF-8', 'CP1251', $attr->text);
     $text = antispam(change_q_x($text, false, true, null, false, false));
     $messages->Add($this->_uid, $user->login, addslashes($text), array(), 0, false, null, $id);
     if (!is_pro() && !is_pro(true, $attr->uid)) {
         if (!hasPermissions('streamnomod') && !hasPermissions('streamnomod', $attr->uid)) {
             $stopWords = new stop_words(false);
             $text = $stopWords->replace($text);
         }
     }
     $text = reformat($text, 14, 0, 0, 1);
     $time = date('Y-m-d H:i:s');
     $data = array('func' => 'income', 'attr' => array('id' => $id, 'uid' => $this->_uid, 'cuid' => $user->uid, 'text' => iconv('CP1251', 'UTF-8', $text), 'files' => array(), 'date' => $time));
     $this->_addEvent($data);
     return array('id' => $id, 'uid' => $user->uid, 'text' => iconv('CP1251', 'UTF-8', $text), 'date' => $time);
 }
Beispiel #6
0
    ?>
/setup/specaddsetup/" id="ap11">Дополнительные специализации</a>:&nbsp;&nbsp;<?php 
    echo $specs_add_string;
    ?>
</div>
    <?php 
}
?>
  <div class="b-check b-check_padbot_20">
     <table class="b-layout__table b-layout__table_width_full">
        <tr class="b-layout__tr">
           <td class="b-layout__td b-layout__td_width_null_ipad b-layout__td_ipad"><input name="cat_show" class="b-check__input" type="checkbox" value="1" <?php 
echo !is_pro() ? 'disabled="disabled"' : '';
?>
 <?php 
echo $user->cat_show == 't' || !is_pro() ? 'checked="checked"' : '';
?>
 id="cat_showl" /></td>
           <td class="b-layout__td b-layout__td_ipad b-layout__td_width_full b-layout__td_width_full_ipad">
              <label class="b-check__label b-check__label_color_71" for="cat_showl">&#160;<strong class="b-layout__txt_bold">Разрешить размещение в каталоге</strong><span class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_color_71 b-layout__txt_lineheight_1 b-layout_block_iphone">&#160;(только для <span title="владельцев платного аккаунта" class="b-icon b-icon__pro b-icon__pro_f b-icon_valign_bas"></span>)</span></label>
           </td>
        </tr>
     </table>         
  </div>
   
   
  <table class="b-layout__table b-layout__table_width_full">
     <tr class="b-layout__tr">
        <td class="b-layout__td b-layout__td_width_240 b-layout__td_padbot_10">
           <div class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_padtop_2">Опыт работы (в годах)</div>
        </td>
Beispiel #7
0
 /**
  * Обработка и оплата операций
  * 
  * @global type $DB
  * @param type $option
  * @return boolean 
  */
 function billingOperation($option, $transaction_id)
 {
     global $DB;
     $ok = false;
     $account = new account();
     switch ($option['op_code']) {
         // Аккаунт ПРО у фрилансера
         case 48:
         case 49:
         case 50:
         case 51:
         case 76:
             // Удаляем операции по покупке ответов - публикуем ответы
             $prof = new payed();
             $ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
             if ($ok) {
                 $_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
                 $_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
                 $userdata = new users();
                 $_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
                 $this->clearBlockedOperations(step_freelancer::OFFERS_OP_CODE);
                 $step_frl = new step_freelancer();
                 $offers = $step_frl->getWizardOffers($this->uid, 'all', false);
                 if ($offers) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
                     $step_frl->log = $this->log;
                     $step_frl->user = new users();
                     $step_frl->user->GetUserByUID($this->uid);
                     $step_frl->transferOffers($offers);
                 }
                 $this->showProjectsFeedbacks();
             }
             break;
             // Аккаунт ПРО у работодателя
         // Аккаунт ПРО у работодателя
         case 15:
             $prof = new payed();
             $ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
             if ($ok) {
                 $_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
                 $_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
                 $userdata = new users();
                 $_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
             }
             // Обновляем выбор цвета для проектов тк он для ПРО бесплатный
             $colorProjects = $this->updateColorProject();
             $prj = new new_projects();
             foreach ($colorProjects as $k => $project) {
                 $delete_color[] = $project['op_id'];
                 if ($project['country'] == null) {
                     $project['country'] = 'null';
                 }
                 if ($project['city'] == null) {
                     $project['city'] = 'null';
                 }
                 $project['name'] = addslashes($project['name']);
                 $project['descr'] = addslashes($project['descr']);
                 if ($project['logo_id'] <= 0) {
                     $project['logo_id'] = 'null';
                 }
                 $project['payed_items'] = $project['payed_items'] | '010';
                 $project['is_color'] = 't';
                 $prj->editPrj($project, false);
             }
             // Удаляем данные операции
             if ($delete_color) {
                 $this->deleteDraftAccountOperation($delete_color);
             }
             break;
             // Публикация конкурса
         // Публикация конкурса
         case new_projects::OPCODE_KON:
         case new_projects::OPCODE_KON_NOPRO:
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_wizard_registration.php';
             $drafts = new drafts();
             $draft = $drafts->getDraft($option['parent_id'], $this->uid, 1);
             // Если еще не опубликован
             if (!$draft['prj_id']) {
                 $project_id = $draft['id'];
                 $error = $account->Buy($bill_id, $transaction_id, $option['op_code'], $this->uid, $option['descr'], $option['comment'], 1, 0);
                 $ok = $bill_id > 0;
                 if ($bill_id) {
                     $color = $DB->val("SELECT id FROM draft_account_operations WHERE parent_id = ? AND op_type = 'contest' AND option = 'color' AND uid = ?", $project_id, wizard::getUserIDReg());
                     $draft['billing_id'] = $bill_id;
                     $draft['folder_id'] = 'null';
                     $draft['payed'] = '0';
                     $draft['payed_items'] = '000';
                     if (is_pro() && $color > 0) {
                         $draft['is_color'] = 't';
                     } else {
                         $draft['is_color'] = 'f';
                     }
                     $draft['win_date'] = date('d-m-Y', strtotime($draft['win_date']));
                     $draft['end_date'] = date('d-m-Y', strtotime($draft['end_date']));
                     $draft['is_bold'] = 'f';
                     $draft['user_id'] = $this->uid;
                     if ($draft['country'] == null) {
                         $draft['country'] = 'null';
                     }
                     if ($draft['city'] == null) {
                         $draft['city'] = 'null';
                     }
                     $draft['name'] = addslashes($draft['name']);
                     $draft['descr'] = addslashes($draft['descr']);
                     if ($draft['logo_id'] <= 0) {
                         $draft['logo_id'] = 'null';
                     }
                     $prj = new new_projects();
                     $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($option['parent_id'], 4);
                     if ($attachedfiles_tmpdraft_files) {
                         $attachedfiles_tmpdraft_files = array_map(create_function('$a', 'return array("id" => $a);'), $attachedfiles_tmpdraft_files);
                     }
                     if ($attachedfiles_tmpdraft_files) {
                         $month = date('Ym');
                         $dir = 'projects/upload/' . $month . '/';
                         $files = step_wizard_registration::transferFiles($attachedfiles_tmpdraft_files, 'file_projects', $dir);
                     }
                     $spec = $draft["categories"];
                     $spec = explode("|", $spec);
                     $spec = array(array('category_id' => $spec[0], 'subcategory_id' => $spec[1]));
                     $prj->addPrj($draft, $files);
                     $prj->saveSpecs($draft["id"], $spec);
                     // смотрим были ли выбраны платные опции для опубликованного конкурса
                     if ($draft['id'] != $project_id && $draft['id'] > 0) {
                         if ($this->sleep[$project_id]) {
                             foreach ($this->sleep[$project_id] as $k => $opt) {
                                 $opt['parent_id'] = $draft['id'];
                                 $this->billingOperation($opt);
                             }
                         } else {
                             //Обновляем родителя на всякий случай
                             $update = array("parent_id" => $draft['id']);
                             $DB->update("draft_account_operations", $update, "parent_id = ? AND op_type = 'contest' AND uid = ?", $project_id, wizard::getUserIDReg());
                             $this->sleep_parent[$project_id] = $draft['id'];
                         }
                         $DB->update("draft_projects", array('prj_id' => $draft['id']), "id = ? AND uid = ?", $project_id, wizard::getUserIDReg());
                     }
                 }
             }
             break;
             // Платный проект/конкурс
         // Платный проект/конкурс
         case 53:
             $prj = new new_projects();
             if ($this->sleep_parent[$option['parent_id']]) {
                 $option['parent_id'] = $this->sleep_parent[$option['parent_id']];
             }
             $project = $prj->getProject($option['parent_id']);
             if (!$project['id']) {
                 $this->sleep[$option['parent_id']][$option['id']] = $option;
                 return true;
             } else {
                 unset($this->sleep[$option['parent_id']]);
             }
             if ($project['country'] == null) {
                 $project['country'] = 'null';
             }
             if ($project['city'] == null) {
                 $project['city'] = 'null';
             }
             $project['name'] = addslashes($project['name']);
             $project['descr'] = addslashes($project['descr']);
             if ($project['logo_id'] <= 0) {
                 $project['logo_id'] = 'null';
             }
             $project['folder_id'] = 'null';
             $items = array();
             switch ($option['option']) {
                 case 'top':
                     $project['top_days'] = $option['op_count'];
                     break;
                 case 'color':
                     $is_pay = $project['payed_items'] & '010';
                     if ($is_pay != '010') {
                         $project['payed_items'] = $project['payed_items'] | '010';
                         $project['is_color'] = 't';
                         $items['color'] = true;
                         if (is_pro()) {
                             $is_payed = true;
                             $prj->SavePayedInfo($items, $project['id'], null, $project['top_days']);
                             $prj->editPrj($project, false);
                         }
                     } else {
                         $is_payed = true;
                     }
                     break;
                 case 'bold':
                     $is_pay = $project['payed_items'] & '001';
                     if ($is_pay != '001') {
                         $project['payed_items'] = $project['payed_items'] | '001';
                         $project['is_bold'] = 't';
                         $items['bold'] = true;
                     } else {
                         $is_payed = true;
                     }
                     break;
                 case 'logo':
                     $is_pay = $project['payed_items'] & '100';
                     if ($is_pay != '100') {
                         $key = md5(microtime());
                         $prj = new tmp_project($key);
                         $prj->init(1);
                         $fu = new CFile($option['src_id']);
                         $ext = $fu->getext();
                         $tmp_dir = $prj->getDstAbsDir();
                         $tmp_name = $fu->secure_tmpname($tmp_dir, '.' . $ext);
                         $tmp_name = substr_replace($tmp_name, "", 0, strlen($tmp_dir));
                         $fu->table = 'file_projects';
                         $r = $fu->_remoteCopy($tmp_dir . $tmp_name);
                         $project['payed_items'] = $project['payed_items'] | '100';
                         $project['logo_id'] = $fu->id;
                         $items['logo'] = true;
                         if ($option['extra']) {
                             $project['link'] = $option['extra'];
                         }
                     } else {
                         $is_payed = true;
                     }
                     break;
             }
             if (!$is_payed) {
                 $error = $account->Buy($bill_id, $transaction_id, $option['op_code'], $this->uid, $option['descr'], $option['comment'], $option['ammount'], 0);
                 $ok = $bill_id > 0;
                 $project['billing_id'] = $bill_id;
                 $prj->SavePayedInfo($items, $project['id'], $bill_id, $project['top_days']);
                 $prj->editPrj($project, false);
             } else {
                 $ok = true;
             }
             break;
             // Платные ответы на проекты
         // Платные ответы на проекты
         case 61:
             $answers = new projects_offers_answers();
             $error = $answers->BuyByFM($this->uid, $option['op_count'], $transaction_id, 0);
             if (!$error) {
                 $ok = true;
                 $_SESSION['answers_ammount'] = $option['op_count'];
                 // Публикуем ответы
                 $step_frl = new step_freelancer();
                 $offers = $step_frl->getWizardOffers($this->uid, $option['op_count']);
                 if ($offers) {
                     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
                     $step_frl->log = $this->log;
                     $step_frl->user = new users();
                     $step_frl->user->GetUserByUID($this->uid);
                     $step_frl->transferOffers($offers);
                 }
             }
             break;
     }
     return $ok;
 }
Beispiel #8
0
 /**
  * Заполнение обязательных полей после регистрации через API мобильного приложения.
  * 
  * @param  array $aParams массив входящих данных
  * @return bool true - успех, false - провал
  */
 public function actionSaveInfoMobile($aParams = array())
 {
     $this->setFieldInfo('uname', __paramValue('string', iconv('utf-8', 'cp1251', $aParams['first_name'])));
     $this->setFieldInfo('usurname', __paramValue('string', iconv('utf-8', 'cp1251', $aParams['last_name'])));
     $this->setFieldInfo('birthday', __paramValue('string', $aParams['birthday']));
     $this->setFieldInfo('country', __paramValue('int', $aParams['country_id']));
     $this->setFieldInfo('city', __paramValue('int', $aParams['city_id']));
     $this->setFieldInfo('info_for_reg', array('birthday' => 0, 'sex' => 0, 'country' => 0, 'city' => 0));
     $gender = __paramValue('int', $aParams['gender']);
     $this->setFieldInfo('sex', $gender == 1 ? 't' : ($gender == 2 ? 'f' : NULL));
     $this->checkedFields();
     if (date('Y-m-d', strtotime($aParams['birthday'])) != $aParams['birthday']) {
         $this->error['birthday'] = 'Укажите некорректную дату дня рождения';
         $this->errno['birthday'] = 2;
     }
     if (empty($this->error)) {
         if (!is_emp()) {
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
             $user = new freelancer();
         } else {
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
             $user = new employer();
         }
         $user->info_for_reg = serialize($this->info_for_reg);
         $user->uname = $this->uname;
         $user->usurname = $this->usurname;
         $user->sex = $this->sex;
         $user->birthday = $this->birthday;
         $user->country = $this->country;
         $user->city = $this->city;
         if (!is_emp()) {
             $spec = intvalPgSql($aParams['prof_id']);
             if ($spec) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php";
                 $or_spec = professions::GetProfessionOrigin($spec);
                 $spec_mod = professions::getLastModifiedSpec($_SESSION['uid']);
                 if (!is_pro() && $spec_mod['days'] > 0) {
                     $this->error['spec'] = 'Не прошло 30 дней с момента последней смены специализации';
                     $this->errno['spec'] = 2;
                 } else {
                     $user->spec = $spec;
                     $user->spec_orig = $or_spec;
                     professions::setLastModifiedSpec($_SESSION['uid'], $spec);
                 }
             } else {
                 $this->error['spec'] = 'Не указан параметр ID профессии';
                 $this->errno['spec'] = 1;
             }
         }
         if (empty($this->error)) {
             if ($sError = $user->Update($_SESSION['uid'], $res)) {
                 $this->error['save'] = $sError;
             } else {
                 if (!is_emp()) {
                     $_SESSION['specs'] = $user->GetAllSpecs($_SESSION['uid']);
                 }
             }
         }
         if (empty($this->error['save'])) {
             $_SESSION['check_user_access'] = true;
         }
     }
     return empty($this->error);
 }
Beispiel #9
0
                  <?php 
// ЗАГОЛОВОК
?>
                  <h3>
                      <img  id="istop"<?php 
echo $remTPeriod || $addedTD ? '' : ' style="display:none"';
?>
 src="/images/tp<?php 
echo $project['is_color'] == 't' ? '2' : '';
?>
.gif" alt="" title="<?php 
echo $topDays;
?>
"/>
                      <?php 
$sName = $project['kind'] != 4 && !is_pro() ? $stop_words->replace($project['name']) : $project['name'];
?>
                      <?php 
if ($project['id'] > 0) {
    ?>
                      <a name="prj<?php 
    echo $project['id'];
    ?>
" href="/projects/?pid=<?php 
    echo $project['id'];
    ?>
">
                          <?php 
    echo reformat2($sName, 30, 0, 1);
    ?>
                      </a>
Beispiel #10
0
 /**
  * Перенос всех данных введнных в мастере на боевые таблицы
  * должен запускаться синхронно с завершением работы мастера
  * 
  * @return type 
  */
 public function transferWizardContent()
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/log.php";
     $this->log = new log('wizard/transfer-' . SERVER . '-%d.log', 'a', '%d.%m.%Y %H:%M:%S : ');
     $user = new users();
     $user->GetUserByUID(wizard::getUserIDReg());
     $this->user = $user;
     // Чистим ответы на заблокированные проекты
     $this->clearOffers();
     // некоторые ответы могут остатся в этой таблице поэтому обновляем им Ид пользователя (при завершении мастера все данные по Ид пользователя мастера удаляются)
     $this->updateOffers(array('reg_uid' => wizard::getUserIDReg()));
     // пользователь может быть уже PRO (если он ранее был авторизован) - учитываем это
     $pro = is_pro();
     $limit = $pro ? "all" : 3;
     // Берем все конкурсы + 3 обычных проекта для публикации ответов (без конкурсов и проектов для ПРО)
     $offers = $this->getWizardOffers(false, $limit, !$pro);
     if ($offers) {
         $error = $this->transferOffers($offers);
     }
     // Пишем данные пользователя введенные в шаге портфолио
     $field = $this->parent->getFieldsUser();
     $data = unserialize($field['portfolio']);
     if ($data) {
         $error = $this->transferUserInformation($data);
     }
     //Перенос порфтолио
     $works = $this->getWorks();
     if ($works) {
         $error = $this->transferWorks($works);
     }
     return $error;
 }
Beispiel #11
0
?>
            <?php 
if (hasPermissions('articles')) {
    include 'form.php';
}
?>
        </div>
        <div class="p-a-left b-layout__left b-layout__left_width_25ps">
            <div class="p-a-popular c">
            </div>
            <div class="favorites">
            </div>
            <!-- Banner 240x400 -->
            <div class="banner_240x400">
                <?php 
echo printBanner240(is_pro(), true);
?>
            </div>
            <!-- end of Banner 240x400 -->
        </div>
    </div>
</div>

<div id="del-article-form" class="form fs-o form-adel" style="display: none;">
    <b class="b1"></b>
    <b class="b2"></b>
    <div class="form-in">
                    <form id="del_article_frm" method="post" action="/articles/?task=del-article">
        <div class="form-block first last">
                <h4>Удаление статьи</h4>
            <div class="form-el">
Beispiel #12
0
function removeWork($uid, $params)
{
    $objResponse =& new xajaxResponse();
    if (!$uid) {
        $uid = get_uid(false);
    }
    $uid = intval($uid);
    $work_id = intval($params['id']);
    $prof_id = intval($params['prof_id']);
    if ($uid != get_uid(false) || !get_uid(false) || $work_id < 0) {
        return $objResponse;
    }
    $deleted = portfolio::DelPortf($uid, $work_id);
    if (!$deleted) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
        $stop_words = new stop_words(hasPermissions('users'));
        $profession = new professions();
        $portfolio = new portfolio();
        $user = new users();
        $user->login = $_SESSION['login'];
        $user->uid = $_SESSION['uid'];
        $user->is_pro = is_pro() ? 't' : 'f';
        $is_owner = $uid == $_SESSION['uid'];
        $pinfo = current(portfolio::getPortfolioCategory($prof_id));
        $pinfo['mainprofname'] = $pinfo['group_name'];
        $pinfo['profname'] = $pinfo['prof_name'];
        $pinfo['gr_prevs'] = $pinfo['show_preview'];
        $pinfo = $profession->prepareCostText($pinfo, $stop_words);
        $works = $portfolio->GetPortf($uid, $prof_id, true);
        if (!empty($works)) {
            $result = portfolio::prepareDataPortfolio($works, $uid, $stop_words, true);
            extract($result);
            $work[0]['id'] = 100;
            ob_start();
            include_once $_SERVER['DOCUMENT_ROOT'] . '/user/tpl.portfolio.works.php';
            $sWorks = ob_get_contents();
            ob_end_clean();
        } else {
            $work[0]['id'] = null;
            $pp_noblocks[$prof_id] = array();
            ob_start();
            include $_SERVER['DOCUMENT_ROOT'] . '/user/tpl.portfolio.works.php';
            $sWorks = ob_get_contents();
            ob_end_clean();
        }
        if ($sWorks != '') {
            $objResponse->assign("prof_works_{$prof_id}", 'innerHTML', $sWorks);
        }
        $objResponse->script("\$('portfolio_work_edit').getParent().dispose()");
    } else {
        $objResponse->call('alert', 'Ошибка, работу удалить не удалось.');
    }
    return $objResponse;
}
Beispiel #13
0
//if ($page < 20) $buffer_on = true;
/*
$additional_header = '<script type="text/javascript" src="/scripts/kwords.js"></script>' .
                     '<script type="text/javascript" src="/kword_js.php"></script>';	
*/
//------------------------------------------------------------------------------
require_once ABS_PATH . '/freelancers/widgets/FreelancersTServicesWidget.php';
//Инициализация виджета плитки ТУ вместо портфолио
$freelancersTServicesWidget = new FreelancersTServicesWidget();
//------------------------------------------------------------------------------
//Популярные услуги из этой же категории
require_once ABS_PATH . '/tu/widgets/TServicesPopular.php';
$tservicesPopular = new TServicesPopular();
$tservicesPopular->setOptions(array('prof_group_id' => $prof_group_id, 'prof_id' => $prof_id, 'limit' => 9, 'title' => 'Услуги фрилансеров', 'title_css' => 'b-layout__title_padtop_10'));
$tservicesPopular->init();
//------------------------------------------------------------------------------
if ($uid > 0 && !is_emp() && !in_array($action, array('search', 'search_advanced')) && is_pro()) {
    require_once ABS_PATH . '/freelancers/widgets/FreelancersPreviewEditorPopup.php';
    $freelancersPreviewEditorPopup = FreelancersPreviewEditorPopup::getInstance(array('group_id' => $prof_group_id, 'prof_id' => $prof_id));
}
//------------------------------------------------------------------------------
$header = "../header.php";
$footer = "../footer.html";
$js_file[] = '/css/block/b-text/b-text.js';
$js_file[] = '/css/block/b-popup/b-popup.js';
$css_file = array('/css/block/b-icon/__cat/b-icon__cat.css', '/css/block/b-search/b-search.css', 'main.css', '/css/nav.css');
$js_file[] = 'search.js';
$js_file[] = 'freelancers/freelancers.js';
//@todo: Сюда переносить все inline-скрипты!
$freelancers_catalog = true;
include "../template2.php";
Beispiel #14
0
 /**
  * Проверяет по специализациям, может ли текущий пользователь ответить на проект.
  * 
  * @param int $projec_id ид проекта
  *
  * @return boolean
  */
 public static function offerSpecIsAllowed($projec_id)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
     // ПРО отвечают без ограничений
     if (is_pro()) {
         return true;
     }
     if (!get_uid(false)) {
         return false;
     }
     $is_send_offers = false;
     $spec_project = new_projects::getSpecs($projec_id);
     $user_spec = professions::GetProfsAddSpec($_SESSION['uid']);
     if (is_array($user_spec)) {
         $user_spec = array_merge($user_spec, $_SESSION['specs']);
     } else {
         $user_spec = $_SESSION['specs'];
     }
     if ($user_spec) {
         $user_spec = array_merge($user_spec, professions::GetMirroredProfs(professions::GetProfessionOrigin(implode(',', $user_spec))));
         $user_spec = array_unique($user_spec);
         //@todo запехать в один запрос
         foreach ($user_spec as $spec) {
             $prof_group[$spec] = professions::GetProfField($spec, 'prof_group');
         }
     }
     foreach ($spec_project as $specs) {
         if (is_array($prof_group) && in_array($specs['category_id'], $prof_group)) {
             $is_send_offers = true;
             // Разрашаем оставлять отзыв
             break;
         }
     }
     return $is_send_offers;
 }
Beispiel #15
0
 /**
  * Восстанавливает комментарий.
  *
  * @param int $cid id комментария
  *
  * @return string сообщение об ошибке или пустая строка, если все нормально
  */
 public function RestoreComment($cid)
 {
     global $DB;
     if ($this->is_moder) {
         $cid = intval($cid);
         $sModer = '';
         if (!hasPermissions('projects') && !is_pro()) {
             $p_comment = $this->GetComment($cid);
             if ($p_comment['user_id'] == $_SESSION['uid']) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/user_content.php';
                 $stop_words = new stop_words();
                 $nStopWordsCnt = $stop_words->calculate($p_comment['msg']);
                 $sModer = ' , moderator_status =' . ($nStopWordsCnt ? ' 0 ' : ' NULL ');
                 if ($nStopWordsCnt) {
                     $DB->insert('moderation', array('rec_id' => $cid, 'rec_type' => user_content::MODER_CONTEST_COM, 'stop_words_cnt' => $nStopWordsCnt));
                 } else {
                     $DB->query('DELETE FROM moderation WHERE rec_id = ?i AND rec_type = ?i;', $cid, user_content::MODER_CONTEST_COM);
                 }
             }
         }
         $DB->query("UPDATE projects_contest_msgs SET deleted = NULL, deluser_id = NULL {$sModer} WHERE id = ?i", $cid);
         return $DB->error;
     }
 }
Beispiel #16
0
 $price = $tmpPrj->getPrice($items, $__temp, true);
 $option = array('is_edit' => $tmpPrj->isEdit(), 'items' => $items, 'prj_id' => $project['id'], 'logo_id' => $logo['id'], 'logo_link' => $tmpProject['link']);
 if ($items['top']) {
     $option['addTop'] = $tmpPrj->getAddedTopDays();
 }
 if ($tmpPrj->isKonkurs()) {
     if (new_projects::isNewContestBudget()) {
         $cost = $tmpPrj->getCostRub();
         $op_code = new_projects::getContestTaxOpCode($tmpPrj->getCostRub(), is_pro());
         $items['contest']['no_pro'] = $tmpPrj->isEdit() ? 0 : new_projects::getContestTax($cost, is_pro());
         $items['contest']['pro'] = $tmpPrj->isEdit() ? 0 : new_projects::getContestTax($cost, true);
     } else {
         //Здесь счет создастся при редактировании конкурса
         $items['contest']['no_pro'] = $tmpPrj->isEdit() ? 0 : 3300;
         $items['contest']['pro'] = $tmpPrj->isEdit() ? 0 : 3000;
         $op_code = is_pro() ? new_projects::OPCODE_KON : new_projects::OPCODE_KON_NOPRO;
     }
     $op_code_pay = new_projects::OPCODE_PAYED_KON;
 } else {
     $op_code = new_projects::OPCODE_PAYED;
     $op_code_pay = new_projects::OPCODE_PAYED;
 }
 if ($items) {
     $bill->start();
     // Конкурс
     if ($items['contest'] > 0) {
         $option['items'] = array('contest' => $items['contest']);
         $bill->setOptions($option);
         $success = $bill->create($op_code, 0, false);
         $items['contest'] = 0;
     }
Beispiel #17
0
 /**
  * Редактирование данных об услугах фрилансера и их стоимости.
  * @param    integer   $fid                  uid пользователя
  * @param    string    $exp                  опыт в годах (произвольный текст)
  * @param    string    $text                 уточнение к услугам в портфолио
  * @param    integer   $tab_name_id          название раздела портфолио: 0 - портфолио, 1 - услуги
  * @param    float     $cost_hour            стоимость часа работы
  * @param    float     $cost_month           стоимость месяца работы
  * @param    integer   $cost_type_hour       тип валюты (0 - USD, 1 - Euro, 2 - Руб, 3 - FM)
  * @param    integer   $cost_type_month      тип валюты (0 - USD, 1 - Euro, 2 - Руб, 3 - FM)
  * @param    boolean   $in_office            Ишу работу в офисе
  * @param    boolean   $cat_show             Показывать в каталоге или нет
  * @param    boolean   $prefer_sbr           Предпочитаю работать через СБР
  * @return   string                          возможная ошибка
  */
 function UpdateServ($fid, $exp, $text, $tab_name_id, $cost_hour, $cost_month, $cost_type_hour, $cost_type_month, $in_office = false, $cat_show = true, $prefer_sbr = false)
 {
     $this->exp = $exp;
     $this->tab_name_id = $tab_name_id;
     $this->cost_hour = $cost_hour;
     $this->cost_month = $cost_month;
     $this->cost_type_hour = $cost_type_hour;
     $this->cost_type_month = $cost_type_month;
     $this->spec_text = $text;
     $this->in_office = $in_office;
     $this->prefer_sbr = $prefer_sbr;
     if (is_pro()) {
         $this->cat_show = $cat_show ? 't' : 'f';
     }
     $error = $this->Update($fid, $res);
     return $error;
 }
Beispiel #18
0
 require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/ignor.php";
 require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/messages_spam.php";
 $msgs = new messages();
 $curpage = intval(trim($_GET['curpage']));
 if (!$curpage) {
     $curpage = intval(trim($_POST['curpage']));
 }
 if (!$curpage || $curpage < 0) {
     $curpage = 1;
 }
 $page_size = $PDA ? 10 : $GLOBALS['msgspp'];
 $dialog = $msgs->GetMessages(get_uid(), $chat_with, $num_msgs_from, $curpage, $page_size);
 //$_SESSION['newmsgs'] = $msgs->GetNewMsgCount($_SESSION['uid'], $err);
 $user = new users();
 $user->GetUser($chat_with);
 if (!is_pro(true, $user->uid) && !is_emp($user->role) && count($dialog) == 0 && is_emp($_SESSION['role'])) {
     $is_contact_splash = true;
 }
 if ($user->login == '') {
     header("Location: /404.php");
 }
 // Если пользователь забанен
 if ($user->is_banned && !hasPermissions('users')) {
     $error_flag = 1;
     $alert[3] = "Этот пользователь заблокирован. Вы не можете отправить ему личное сообщение";
 }
 $dlg_user = users::GetUid($err, $user->login);
 $dlg_user_login = $user->login;
 if ($post_denied = ignor::CheckIgnored($dlg_user, $_SESSION['uid']) || in_array($user->login, array('admin', 'Anonymous'))) {
     $error = "Пользователь запретил отправлять ему сообщения";
 }
Beispiel #19
0
$inner = '';
if ($page != 'main') {
    $user_phone_block = user_phone::getInstance()->render(user_phone::PLACE_HEADER);
}
// Сообщение сверху страницы
$alert_message = '';
if (is_emp($role)) {
    $fpath = "../employer/setup/";
    include $fpath . "index.php";
    exit;
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$is_pro = payed::CheckPro($login);
$no_banner = !!$is_pro;
$action = trim($_POST['action']);
if (strtolower($user) == strtolower($login) && is_pro(true)) {
    $no_adv = true;
} else {
    $no_adv = false;
}
switch ($page) {
    case "info":
        $inner = "inform_inner.php";
        $activ_tab = 3;
        break;
    case "mailer":
        $inner = "mailer_inner.php";
        $activ_tab = 0;
        break;
    case "foto":
        $inner = "foto_inner.php";
Beispiel #20
0
 <?php 
    echo $project['completed_cnt'] > 0 ? ' <a class="b-layout__link" href="/promo/bezopasnaya-sdelka/" title="Пользователь работал через Безопасную Сделку" target="_blank"><span class="b-icon b-icon__shield"></span></a>' : '';
    ?>
                  <?php 
} else {
    //if
    ?>
                      <span class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_color_6db335">Заказчик</span> 
                      <?php 
    if ($project['is_pro'] == 't') {
        echo is_emp($project['role']) ? view_pro_emp() : view_pro();
    }
    ?>
 
                      <?php 
    if (isset($user_offer_exist) && $user_offer_exist && !is_pro()) {
        ?>
                            <span class="b-layout__txt b-layout__txt_fontsize_11 b-layout__txt_weight_normal">(контакты заказчика видны только пользователям с аккаунтом <?php 
        echo view_pro();
        ?>
)</span>
                      <?php 
    }
    ?>
                  <?php 
}
//else
?>
    
              
              <?php 
Beispiel #21
0
    <script>
        window.addEvent('domready', function() {
            
            xajax_GetRating('month', '<?php 
    echo $user->login;
    ?>
', <?php 
    echo !is_pro() ? '600' : 'null';
    ?>
);
            document.getElement('select[name=ratingmode]').addEvent('change', function() {
                xajax_GetRating(this.get('value'), '<?php 
    echo $user->login;
    ?>
', <?php 
    echo !is_pro() ? '600' : 'null';
    ?>
);
            });
            
        });
    </script>
<?php 
}
?>
            
<div class="rate-page">
    
    <div class="month-rate-graph">
        
        
Beispiel #22
0
 function initFromDraft($draft_id, $uid)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/project_exrates.php";
     $drafts = new drafts();
     $this->_project = $drafts->getDraft($draft_id, $uid, 1);
     if (!$this->_project['id']) {
         return false;
     }
     if ($this->_project['logo_id'] > 0) {
         $this->_project['link'] = $this->_project['logo_link'];
         $LogoFile = new CFile($this->_project['logo_id']);
         $this->initLogo($LogoFile);
     }
     $cat = explode(",", $this->_project['categories']);
     foreach ($cat as $category) {
         list($cat_id, $subcat_id) = explode("|", $category);
         $categories[] = array('category_id' => $cat_id, 'subcategory_id' => $subcat_id);
     }
     $this->setCategories($categories);
     $pExrates = project_exrates::getAll();
     if ($this->_project['currency'] === 0) {
         // USD
         $costRub = $this->_project['cost'] * $pExrates['24'];
         // бюджет в рублях
     } elseif ($this->_project['currency'] === 1) {
         // EURO
         $costRub = $this->_project['cost'] * $pExrates['34'];
     } else {
         // рубли
         $costRub = $this->_project['cost'];
     }
     $this->setCostRub($costRub);
     $this->_project['draft_id'] = $this->_project['id'];
     unset($this->_project['id']);
     $this->_project['user_id'] = $this->_project['uid'];
     $this->_project['is_pro'] = is_pro(true, $uid) ? 't' : 'f';
     if ($this->_project['top_days'] > 0) {
         $this->setAddedTopDays($this->_project['top_days']);
     }
     if ($this->isKonkurs()) {
         $this->_project['end_date'] = date('d-m-Y', strtotime($this->_project['end_date']));
         $this->_project['win_date'] = date('d-m-Y', strtotime($this->_project['win_date']));
     }
     $attach = drafts::getAttachedFiles($draft_id, 4, $this->_project['uid']);
     if (!empty($attach)) {
         foreach ($attach as $file_id) {
             $ret[$file_id] = array('status' => 1, 'id' => $file_id);
         }
         $this->addAttachedFiles($ret, true);
     }
     return true;
 }
Beispiel #23
0
session_start();
$uid = get_uid();
$stop_words = new stop_words(hasPermissions('users'));
$g_page_id = "0|25";
$name = trim($_GET['user']);
$page = trim($_GET['p']);
$template = 'template2.php';
$css_file = array('profile.css', 'opinions.css', '/css/block/b-opinion/b-opinion.css', '/css/block/b-icon/__cont/b-icon__cont.css', '/css/nav.css', '/css/block/b-voting/b-voting.css');
$js_file = array('warning.js', 'note.js', 'status.js', 'banned.js', 'tawl.js', 'paid_advices.js', '/css/block/b-filter/b-filter.js', '/css/block/b-fon/b-fon.js', '/css/block/b-layout/b-layout.js', 'del_acc.js', 'sbr.js', 'specadd.js', 'drafts.js', 'polls.js', 'mAttach.js', 'blogs_cnt.js', 'blogs.js', 'opinions.js', 'calendar.js', 'projects-quick-edit.js', 'attachedfiles.js', 'projects.js');
//rus
$page_keyw = "работа, удаленная работа, поиск работы, предложение работы, портфолио фрилансеров, fl.ru";
$page_descr = "Работа. Удаленная работа. Поиск работы. Предложение работы. Портфолио фрилансеров. FL.ru";
$user = new employer();
$user->GetUser($name);
$p_user = $user;
if (strtolower($user->uid) == strtolower($uid) && is_pro(true)) {
    $no_adv = true;
} else {
    $no_adv = false;
}
switch ($page) {
    case "rating":
        $css_file[] = "promotion.css";
        if ($user->uid == $uid) {
            $js_file[] = 'raphael-min.js';
            $js_file[] = 'svg.js';
        }
        $inner = "rating_inner.php";
        $activ_tab = 11;
        break;
    case "project":
function AddDialogueMessage($form)
{
    global $session;
    session_start();
    $objResponse = new xajaxResponse();
    $offerIsBlocked = projects_offers::isOfferBlocked(false, get_uid(), $form['prj_id']);
    if ($offerIsBlocked) {
        $objResponse->alert('Ваше предложение заблокировано, вы не можете отправить это сообщение');
        return $objResponse;
    }
    $prj = new projects();
    $project = $prj->GetPrjCust(intval($form['prj_id']));
    $is_pro = is_pro();
    if ($project['pro_only'] == 't' && !$is_pro && !is_emp() && !hasPermissions('projects')) {
        if ($project['kind'] == 7) {
            if (contest::IsContestOfferExists($project['id'], get_uid(false))) {
                $is_pro = true;
            }
        } else {
            if (projects_offers::IsPrjOfferExists($project['id'], get_uid(false))) {
                $is_pro = true;
            }
        }
    }
    if ($project['pro_only'] == 't' && !$is_pro && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        $objResponse->alert('Данная функция доступна только пользователям с аккаунтом PRO.');
        $objResponse->script("\$('savebtn').set('disabled', false);");
        return $objResponse;
    } elseif ($project['verify_only'] == 't' && !($_SESSION['is_verify'] == 't') && $project['user_id'] != get_uid() && !hasPermissions('projects')) {
        $objResponse->alert('Данная функция доступна только верифицированным пользователям.');
        $objResponse->script("\$('savebtn').set('disabled', false);");
        return $objResponse;
    }
    if (!trim($form['po_text'])) {
        $objResponse->alert('Невозможно отправить пустое сообщение.');
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        return $objResponse;
    }
    if (!is_emp() && $form['from'] == 'emp') {
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        $objResponse->alert('Невозможно отправить сообщение. Вы вышли из аккаунта работодателя.');
        return $objResponse;
    } elseif (is_emp() && $form['from'] == 'frl') {
        $objResponse->script("\n            \$('savebtn').set('disabled', false);\n        ");
        $objResponse->alert('Невозможно отправить сообщение. Вы вышли из аккаунта фрилансера.');
        return $objResponse;
    }
    //Не позволяем производить действия с заблокированным проектом
    if (projects::CheckBlocked(intval($form['prj_id']))) {
        $objResponse->script("document.location.href='/projects/index.php?pid=" . intval($form['prj_id']) . "'");
    } elseif (intval($_SESSION['uid'])) {
        $po_id = intval($form['po_id']);
        //$po_text = substr(change_q_x($form['po_text'], false), 0, 1000);
        $po_text = antispam(trim($form['po_text']));
        $po_text = preg_replace("/(\r\n|\r|\n){3,100}/i", "\r\n\r\n", $po_text);
        $po_commentid = intval($form['po_commentid']);
        $user_id = get_uid(false);
        $user = new users();
        $user_name = $user->GetName($user_id, $error);
        $pod = new projects_offers_dialogue();
        $project_dialogue = $pod->GetDialogueForOffer($po_id);
        $project = $pod->GetProjectFromDialogue($po_id);
        if (count($project_dialogue)) {
            for ($i = count($project_dialogue) - 1; $i >= 0; --$i) {
                if ($project_dialogue[$i]['user_id'] != $user_id) {
                    $to_user_name = $project_dialogue[$i]['login'];
                    break;
                }
            }
        }
        if (is_emp()) {
            $emp_read = true;
            $frl_read = false;
        } else {
            $emp_read = false;
            $frl_read = true;
        }
        if (!$po_commentid) {
            $error = $pod->AddDialogueMessage($po_id, $user_id, $po_text, $frl_read, $emp_read);
            $last_comment = $pod->GetLastDialogueMessage($user_id, $po_id);
            $objResponse->script("last_commentid={$last_comment};");
            $objResponse->script("edit_block[{$po_id}] = '&nbsp;&nbsp;<span><a href=\"javascript:void(null)\" onClick=\"answer({$po_id}, {$last_comment});markRead(\\'{$po_id}\\');\" class=\"internal\">Редактировать</a></span>';");
            //		$objResponse->script("alert(last_commentid);");
            //		$objResponse->script("alert(edit_block);");
        } else {
            $error = $pod->SaveDialogueMessage($user_id, $po_text, $po_commentid, $po_id, false);
            if ($error == 1) {
                $objResponse->alert('Вы не можете редактировать комментарий, так как на него уже ответили.');
                return $objResponse;
            }
        }
        $po_text = rtrim(ltrim($po_text, "\r\n"));
        $po_text = substr(change_q_x($po_text, false, true, '', false, false), 0, 1000);
        $po_text = stripslashes($po_text);
        if ($error == '') {
            $sPostText = $po_text;
            if ($project['kind'] != 4) {
                $sId = $po_commentid ? $po_commentid : $last_comment;
                $aComment = $pod->getDialogueMessageById($sId);
                if ($aComment['moderator_status'] === '0') {
                    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php';
                    $stop_words = new stop_words(hasPermissions('projects'));
                    $sPostText = $stop_words->replace($sPostText);
                }
            }
            if (!$po_commentid) {
                $objResponse->append('po_dialogue_talk_' . $po_id, 'innerHTML', '<div style="margin-bottom:8px;font-size:100%;"><span class="' . (is_emp() ? 'emp' : 'frl') . 'name11"><a href="/users/' . get_login($user_id) . '/" class="' . (is_emp() ? 'emp' : 'frl') . 'name11" title="' . $user_name['uname'] . ' ' . $user_name['usurname'] . '">' . $user_name['uname'] . ' ' . $user_name['usurname'] . '</a> [<a href="/users/' . $user_name['login'] . '/" class="' . (is_emp() ? 'emp' : 'frl') . 'name11" title="' . $user_name['login'] . '">' . $user_name['login'] . '</a>]</span> <span id="po_date_' . $last_comment . '">[' . strftime('%d.%m.%Y | %H:%M', time()) . ']</span><br /><div id="po_comment_' . $last_comment . '">' . reformat($sPostText, 50, 0, 0, 1) . '</div><div id="po_comment_original_' . $last_comment . '" style="display:none;">' . str_replace(' ', '&nbsp;', reformat($po_text, 1000, 0, 1)) . '</div></div>');
                //			$objResponse->call('resetfld', $po_id);
                $objResponse->script('dialogue_count[' . $po_id . '] = ' . (count($project_dialogue) + 1));
            } else {
                $objResponse->assign('po_comment_' . $po_commentid, 'innerHTML', reformat($sPostText, 50, 0, 0, 1));
                $objResponse->assign('po_comment_original_' . $po_commentid, 'innerHTML', str_replace(' ', '&nbsp;', reformat($po_text, 1000, 0, 1)));
                $objResponse->assign('po_date_' . $po_commentid, 'innerHTML', dateFormat('[d.m.Y | H:i]', date('Y-m-d H:i:s')));
            }
            $objResponse->call('answer', $po_id);
            if ($to_user_name && $project['id'] && $project['name'] && !$po_commentid) {
                /*require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php");
                		$smail = new smail();
                		if ($project['user_id'] == $user_id) {
                               $error = $smail->NewPrjMessageOnOfferFrl($user_name['login'], $project['id'], $project['name'], $to_user_name, $po_text);
                		} else {
                               $error = $smail->NewPrjMessageOnOfferEmp($user_name['login'], $project['id'], $project['name'], $to_user_name, $po_text);
                		}*/
            }
        } else {
            $objResponse->alert('Ошибка сохранения.');
        }
    } else {
        $objResponse->alert('Ошибка сохранения. Авторизируйтесь на сайте.');
    }
    return $objResponse;
}
Beispiel #25
0
        $ps['portfolio_work_2_prev_pict'] = $user_offer['prev_pict2'];
        $ps['portfolio_work_3_prev_pict'] = $user_offer['prev_pict3'];
        $ps['cost_from'] = round($ps['cost_from'], 2);
        $ps['cost_to'] = round($ps['cost_to'], 2);
        $sPostText = $project['kind'] != 4 && $user_offer['dialogue'][0]['moderator_status'] === '0' ? $stop_words->replace($user_offer['dialogue'][0]['post_text']) : $user_offer['dialogue'][0]['post_text'];
        $ps['text'] = strip_tags($sPostText);
    }
    echo '<div class="answ-bord"></div>';
    if ($can_edit) {
        echo '<a name="new_offer"></a><h1 class="b-layout__title">Редактирование ответа по проекту:</h1>';
    } else {
        echo '<a name="new_offer"></a><h1 class="b-layout__title">Ваш ответ по проекту</h1>';
    }
    $user_answers = $answers;
    $op_codes = $user_answers->GetOpCodes();
    if (!is_pro()) {
        $isShowFreeAnswersTxt = true;
        include TPL_ANSWERS_DIR . "/tpl.answers-item.php";
    }
    ?>
      			<?php 
    echo view_hint_access_action('Чтобы ответить на проект');
    ?>
                 <div class="b-layout b-layout_padbot_30 b-layout_2bordbot_dfdfdf0 b-layout_margbot_30">
                    <form id="form_add_offer" name="form_add_offer" action="<?php 
    echo $_SERVER['REQUEST_URI'];
    ?>
" method="POST" onKeyPress="if((event.ctrlKey) && ((event.keyCode==10)||(event.keyCode==13))) {this.submit()}">
                        <input name="hash" type="hidden" value="<?php 
    echo $hash;
    ?>
Beispiel #26
0
?>
	<?php 
if ($nothing_found) {
    ?>
		<div class="b-post b-post_padtop_60">
			<h4 class="b-post__h4 b-post__h4_padbot_5 b-post__h4_center">Услуг не найдено</h4>
			<div class="b-post__txt b-post__txt_padbot_10 b-post__txt_center">Попробуйте изменить параметры фильтра</div>
            <div class="b-layout__txt b-post__txt_padbot_20 b-layout__txt_center b-layout__txt_bold">или</div> 
            <div class="b-layout__txt b-layout__txt_center"><a href="/public/?step=1&amp;kind=1&amp;red=/<?php 
    if (is_emp() && is_pro()) {
        print '&utm_source=tu_catalog&utm_medium=emp&utm_content=pro&utm_campaign=btn_new_project';
    } elseif (is_emp() && !is_pro()) {
        print '&utm_source=tu_catalog&utm_medium=emp&utm_content=unpro&utm_campaign=btn_new_project';
    } elseif (!is_emp() && is_pro() && get_uid()) {
        print '&utm_source=tu_catalog&utm_medium=frl&utm_content=pro&utm_campaign=btn_new_project';
    } elseif (!is_emp() && !is_pro() && get_uid()) {
        print '&utm_source=tu_catalog&utm_medium=frl&utm_content=unpro&utm_campaign=btn_new_project';
    } elseif (!get_uid()) {
        print '&utm_source=tu_catalog&utm_medium=uauth&utm_content=unpro&utm_campaign=btn_new_project';
    }
    ?>
" class="b-button b-button_flat b-button_flat_orange b-button_width_190">Опубликуйте проект</a></div>
		</div>
	<?php 
}
?>

    <?php 
$tservices_unique = array();
?>
	<?php 
Beispiel #27
0
    $specs_add_string = join(", ", $specs_add_array);
} else {
    $specs_add_string = "Нет";
}
?>

 <?php 
if ($specs_add_string) {
    ?>
	<div style="padding-bottom:15px;vertical-align:top;width:280px;">Дополнительные специализации:&nbsp;&nbsp;<?php 
    echo $specs_add_string;
    ?>
</div>
 <?php 
}
if ($spec_modified && !is_pro()) {
    ?>
    <p style="padding-bottom:15px;">Вы можете сменить выбранные специализации через <?php 
    echo $spec_modified['days'] . ' ' . ending($spec_modified['days'], 'день', 'дня', 'дней');
    ?>
</p>
<?php 
}
//if
?>
    
<?php 
if ($user->exp > 0) {
    ?>
	<div style="padding-bottom:15px;vertical-align:top;white-space:nowrap;">Опыт работы:&nbsp;&nbsp;<?php 
    echo view_exp($user->exp);
 /**
  * Определяет, нужно ли добавлять специализацию в профиль
  * @param type $uid ИД пользователя
  * @param type $prof_id ИД специализации
  * @return int 0 если не нужно, 1 если доп. специализацию, 2 если основную спец-ю
  */
 public function needAddProf($uid, $prof_id)
 {
     $user_profs = professions::GetProfessionsByUser($uid, true, true);
     $selected_profs_count = count(professions::GetProfessionsByUser($uid, false));
     $has_free_spec_slot = $selected_profs_count < 1 + (is_pro(true, $uid) ? PROF_SPEC_ADD : 0);
     if (!in_array($prof_id, $user_profs) && $has_free_spec_slot) {
         $user = new freelancer();
         $user->GetUserByUID($uid);
         return $user->spec == 0 ? 2 : 1;
     }
     return 0;
 }
Beispiel #29
0
if (!$teasersExclude) {
    $teasersExclude = array();
}
// тизеры разные для фрилансеров и работодателей
$uid = get_uid(0);
if ($uid) {
    if (is_emp()) {
        $teasers = $teasersEmp;
    } else {
        $teasers = $teasersFrl;
    }
} else {
    $teasers = $teasersEmp;
}
// для про пользователей не показвыаем рекламу ПРО аккаунта
if (is_pro()) {
    if ($_SESSION['pro_test'] === 'f') {
        // тизер ПРО показываем если куплен тестовый ПРО
        $teasersExclude[] = 'pro';
    }
    $teasersExclude[] = 'test-pro';
    $teasersExclude[] = 'offers';
} elseif (!payed::IsUserWasPro($uid)) {
    $teasersExclude[] = 'test-pro';
}
// формируем массив из прошедших фильтрацию тизеров
foreach ($teasers as $key => $teaser) {
    $ok = true;
    foreach ($teaser['exclude'] as $filter) {
        if (isset($teasersExclude) && in_array($filter, $teasersExclude)) {
            $ok = false;
Beispiel #30
0
// #808080 темно-серые подписи к графику
// #b2b2b2 светло-серые подписи к графику
$u_m_prm_periods = array();
// склеенные периоды использования параметра (текущего инструмента самопродвижения), начиная с текущего месяца.
$u_y_prm_periods = array();
// склеенные периоды использования параметра, начиная с текущего года.
$u_last_prm_left = 0;
// отступ в пикселях от начала годового графика до начала последнего юзерского ПРО-периода.
$u_last_prm_width = 0;
// ширина последнего юзерского ПРО-периода, в пикселях.
$u_last_prm_period = NULL;
$u_prm_end_time = 0;
$u_spec = professions::GetProfessionOrigin($user->spec);
$u_login = $user->login;
$u_is_profi = $user->is_profi == 't';
$u_is_pro = $iAmAdmin ? is_pro(true, $uid) : $_SESSION['pro_last'] !== NULL;
// ПРО ли он. Может измениться далее (см. ниже) -- связано с тем, что поле is_pro обновляется раз в минуту.
$u_is_pro_auto_prolong = $user->GetField($uid, $e, 'is_pro_auto_prolong', false);
// Включено ли у юзера автоматическое продление PRO
$u_is_verify = $user->is_verify;
$u_summary = promotion::GetSummary($uid);
// данные по юзеру из stat_summary.
$u_rating = $user->GetField($uid, $e, 'rating_get(rating, is_pro, is_verify)');
$u_pro_rating = $u_rating;
// рейтинг, с учетом, что юзер купит ПРО (определяется ниже).
$u_has_ps = false;
// есть ли у него платные места хоть где-то.
$u_has_ps_fp = false;
// есть ли у него платное место на главной странице.
$u_has_ps_ctg = false;
// есть ли у него платные места в каталоге.