/** * @param $frm - данные запроса * @param $type - тип страницы, с которой была запрошена форма быстрого редактирования проекта * 1 - лента на главной, * 2 - редактируется конкурс, * 3 - страница проекта в профиле работодателя, * 4 - проект в списке в профиле работодателя * */ function quickprjedit_save_prj($frm, $type) { $objResponse = new xajaxResponse(); if (hasPermissions('projects')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $oprj = new new_projects(); $project = $oprj->getPrj($frm['id']); if ($project['id']) { $objResponse->script('popupQEditPrjHideErrors();'); $key = $frm['tmpid']; $tmpPrj = new tmp_project($key); $tmpPrj->init(2); $errors = array(); $frm['name'] = trim($frm['name']); $frm['descr'] = trim($frm['descr']); if ($frm['link'] == 'Адрес сайта') { $frm['link'] = ''; } $frm['link'] == trim($frm['link']); if (!empty($frm['link'])) { if (strpos($frm['link'], 'http://') === 0) { $protocol = 'http://'; } if (strpos($frm['link'], 'https://') === 0) { $protocol = 'https://'; } if ($protocol == '') { $protocol = 'http://'; } $frm['link'] = $protocol . ltrim($frm['link'], $protocol); if (!is_url($frm['link'])) { $errors[] = 'logourl'; } } if (empty($frm['name'])) { $errors[] = 'name'; } if (empty($frm['descr'])) { $errors[] = 'descr'; } if ($frm['pf_city']) { $frm['city'] = $frm['pf_city']; } if ($project['kind'] == 7) { if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['end_date'], $o1) || !checkdate($o1[2], $o1[1], $o1[3])) { $errors[] = 'end_date'; } if (!preg_match("/^([0-9]{1,2})\\-([0-9]{1,2})\\-([0-9]{4})\$/", $frm['win_date'], $o2) || !checkdate($o2[2], $o2[1], $o2[3])) { $errors[] = 'win_date'; } if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o1[2], $o1[1], $o1[3]) <= mktime(0, 0, 0)) { $errors[] = 'end_date_past'; } if (!in_array('end_date', $errors) && mktime(0, 0, 0, $o2[2], $o2[1], $o2[3]) <= mktime(0, 0, 0, $o1[2], $o1[1], $o1[3])) { $errors[] = 'win_date_past'; } } if (!count($errors)) { $c = $frm['categories']; $sc = $frm['subcategories']; foreach ($frm['categories'] as $sKey => $value) { if ($value == 0) { continue; } $check[] = $value . '_' . $sc[$sKey]; } $uniq = array_unique($check); foreach ($uniq as $val) { list($cat, $subcat) = explode('_', $val); $check_array[$cat][] = $subcat; } $categories = array(); foreach ($check_array as $k => $val) { if (count($val) > 1 && array_search(0, $val) !== false) { $categories[] = array('category_id' => $k, 'subcategory_id' => 0); unset($check_array[$k]); } else { foreach ($val as $m => $v) { $categories[] = array('category_id' => $k, 'subcategory_id' => $v); } } } $tmpPrj->setProjectField('name', change_q_x($frm['name']), true); $tmpPrj->setProjectField('descr', change_q_x($frm['descr'], false, true, '', false, false)); $tmpPrj->setProjectField('pro_only', $frm['pro_only'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('verify_only', $frm['verify_only'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('strong_top', (int) $frm['strong_top']); $tmpPrj->setProjectField('prefer_sbr', $frm['prefer_sbr'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('urgent', $frm['is_urgent'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('hide', $frm['is_hide'] == 1 ? 't' : 'f'); switch ($frm['kind']) { case 1: $tmpPrj->setProjectField('country', 0); $tmpPrj->setProjectField('city', 0); $tmpPrj->setProjectField('kind', $frm['kind']); break; case 4: $tmpPrj->setProjectField('country', $frm['country']); $tmpPrj->setProjectField('city', $frm['city']); $tmpPrj->setProjectField('kind', $frm['kind']); break; } if ($project['kind'] == 7) { $tmpPrj->setProjectField('end_date', $frm['end_date']); $tmpPrj->setProjectField('win_date', $frm['win_date']); $tmpPrj->clearWinners(); } $tmpPrj->setCategories($categories); $tmpPrj->setProjectField('link', $frm['link']); $tmpPrj->setProjectField('is_color', $frm['is_color'] == 1 ? 't' : 'f'); $tmpPrj->setProjectField('is_bold', $frm['is_bold'] == 1 ? 't' : 'f'); $tmpPrj->setAddedTopDays($frm['top_ok'] == 1 ? $frm['top_days'] : 0); if (!$project['folder_id']) { $tmpPrj->setProjectField('folder_id', 0); } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php'; $attachedfiles = new attachedfiles($frm['attachedfiles_session']); $attachedfiles_files = $attachedfiles->getFiles(array(1, 3, 4)); $tmpPrj->addAttachedFiles($attachedfiles_files); $attachedfiles->clear(); $tmpPrj->saveProject(get_uid(false), $ttt); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $stop_words = new stop_words(hasPermissions('projects')); $objResponse->script('popupQEditPrjHide();'); switch ($type) { case 1: case 4: // Лента проектов global $session; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; $prj_id = $project['id']; $obj_project = new new_projects(); $tproject = $obj_project->getProjects($num, -1, 1, false, null, false, true, $prj_id); $this_kind = $tproject[0]['kind']; $this_uid = get_uid(false); $this_pro_last = $_SESSION['pro_last']; $this_is_pro = payed::CheckPro($_SESSION['login']); $this_edit_mode = hasPermissions('projects'); if ($this_uid) { $this_user_role = $_SESSION['role']; } $this_project = $tproject[0]; $row = $this_project; if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) { $this_show_data = 1; $row['show_data'] = 1; } else { $this_show_data = 0; $row['show_data'] = 0; } $descr = $row['descr']; $descr = preg_replace('/^ /', "", $descr); $descr = preg_replace("/(\n) /", "\$1", $descr); $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), '<br />'), 50, 1, 0, 1); $descr = preg_replace("//", ' ', $descr); $row['descr'] = $descr; $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7; $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7; $row['t_pro_only'] = $this_project['pro_only'] == 't'; $row['t_verify_only'] = $this_project['verify_only'] == 't'; $row['t_hide'] = $this_project['hide'] == 't'; $row['t_urgent'] = $this_project['urgent'] == 't'; $row['t_prefer_sbr'] = $this_project['prefer_sbr'] == 't'; $row['priceby'] = $this_project['priceby']; $row['t_is_adm'] = hasPermissions('projects'); $row['t_is_ontop'] = strtotime($this_project['top_to']) >= time(); $row['unread'] = (int) $this_project['unread_p_msgs'] + (int) $this_project['unread_c_msgs'] + (int) $this_project['unread_c_prjs']; $row['t_is_proonly'] = $this_project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this_edit_mode && $this_uid != $this_project['user_id']; $attaches = projects::GetAllAttach($this_project['id']); $attaches = !$attaches ? array() : $attaches; foreach ($attaches as $k => $a) { $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']); $attaches[$k] = $a; } $row['attaches'] = $this_project['attaches'] = $attaches; $is_ajax = true; $can_change_prj = hasPermissions('projects'); $row['friendly_url'] = getFriendlyURL('project', $row['id']); ob_start(); if ($type == 1) { $project = projects::initData($row); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php'; } else { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php'; $user = new employer(); $user->GetUserByUID($this_project['user_id']); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.employer-project-item.php'; } $html_data = ob_get_contents(); ob_end_clean(); $objResponse->assign("project-item{$prj_id}", 'innerHTML', $html_data); if ($row['is_color'] == 't') { $objResponse->script("\$('project-item{$prj_id}').addClass('b-post_bg_fffded')"); } else { $objResponse->script("\$('project-item{$prj_id}').removeClass('b-post_bg_fffded')"); } //$objResponse->script('alert("Лента");'); //$objResponse->script('window.location.reload();'); break; case 2: // Конкурс //$objResponse->script('alert("Конкурс");'); $project_exRates = project_exrates::GetAll(); $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1); global $session; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/contest.php'; $prj_id = $project['id']; $obj_project = new projects(); $project = $obj_project->GetPrjCust($prj_id); if (hasPermissions('projects')) { $project_history = $obj_project->GetPrjHistory($prj_id); } $project_attach = $obj_project->GetAllAttach($prj_id); $contest = new contest($project['id'], $uid, is_emp(), $project['user_id'] == $uid, hasPermissions('projects'), is_pro()); $contest->GetOffers((string) $_GET['filter']); $project['contest_end'] = mktime() > strtotime($project['end_date']); $project['contest_win'] = mktime() > strtotime($project['win_date']); if (trim($project['contacts']) != '') { $contacts_employer = unserialize($project['contacts']); $empty_contacts_employer = 0; foreach ($contacts_employer as $name => $contact) { if (trim($contact['value']) == '') { $empty_contacts_employer++; } } $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer; } ob_start(); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/contest_item.php'; $html_data = ob_get_contents(); ob_end_clean(); $objResponse->assign("contest_info_{$prj_id}", 'innerHTML', $html_data); break; case 3: // Проект $project_exRates = project_exrates::GetAll(); $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1); $prj_id = $project['id']; $obj_project = new projects(); $project = $obj_project->GetPrjCust($prj_id); if (trim($project['contacts']) != '') { $contacts_employer = unserialize($project['contacts']); $empty_contacts_employer = 0; foreach ($contacts_employer as $name => $contact) { if (trim($contact['value']) == '') { $empty_contacts_employer++; } } $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer; } $project_attach = $obj_project->GetAllAttach($prj_id); ob_start(); require_once $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.prj-main-info.php'; $html_data = ob_get_contents(); ob_end_clean(); $objResponse->assign("project_info_{$project['id']}", 'innerHTML', $html_data); break; default: $objResponse->script('window.location.reload();'); break; } } else { $tab1 = 0; $tab2 = 0; foreach ($errors as $error) { switch ($error) { case 'end_date': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Неправильная дата");'); $objResponse->script('popupQEditPrjShowError("cal1");'); break; case 'win_date': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Неправильная дата");'); $objResponse->script('popupQEditPrjShowError("cal2");'); break; case 'end_date_past': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal1").set("html", "Дата окончания конкурса не может находиться в прошлом");'); $objResponse->script('popupQEditPrjShowError("cal1");'); break; case 'win_date_past': $objResponse->script('$("popup_qedit_prj_fld_err_txt_cal2").set("html", "Дата определения победителя должна быть больше даты окончания конкурса");'); $objResponse->script('popupQEditPrjShowError("cal2");'); break; case 'logourl': $objResponse->script('$("popup_qedit_prj_fld_err_pay").setStyle("display","block");'); $objResponse->script('$("popup_qedit_prj_fld_err_pay_txt").set("html", "Ссылка для логотипа указана не верно");'); break; default: $objResponse->script('popupQEditPrjShowError("' . $error . '");'); break; } if (in_array($error, array('name', 'descr', 'location', 'end_date', 'win_date', 'end_date_past', 'win_date_past'))) { ++$tab1; } elseif (in_array($error, array('logourl'))) { ++$tab2; } } if ($tab1) { $objResponse->script('popupQEditPrjMenu(1)'); } elseif ($tab2) { $objResponse->script('popupQEditPrjMenu(2)'); } } } $objResponse->script('popupQEditIsProcess = false;'); } return $objResponse; }
function quickMASGetYandexKassaLink($frm, $payment, $promo_code) { $objResponse = new xajaxResponse(); if (is_emp()) { global $DB, $host; $masssending = new masssending(); //@todo: не используюутся? //$countries = country::GetCountries(TRUE); //$prof_groups = professions::GetAllGroupsLite(TRUE); //$professions = professions::GetProfList(); //$exrates = project_exrates::GetAll(); $uid = get_uid(false); //$params['msg'] = stripslashes($frm['msg']); $params['msg'] = "Здравствуйте!\n\nПриглашаю ознакомиться с проектом '" . change_q_x(stripslashes($frm['title']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false) . "' " . str_replace('www.n.fl.ru', 'n.fl.ru', $host) . $frm['link'] . " \n\n\n" . LenghtFormatEx(change_q_x(stripslashes($frm['msg']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false), 300); $params['max_users'] = intval($frm['max_users']); $params['max_cost'] = intval($frm['max_cost']); $params['is_pro'] = stripslashes($frm['pro']); $params['favorites'] = stripslashes($frm['favorites']); $params['free'] = stripslashes($frm['free']); $params['sbr'] = stripslashes($frm['bs']); $params['portfolio'] = stripslashes($frm['withworks']); $params['inoffice'] = stripslashes($frm['office']); $params['opi_is_verify'] = stripslashes($frm['ver']); $tmp = array(); if ($frm['mass_location_columns'][0] != '0' || $frm['mass_location_columns'][1] != '0') { $tmp[] = intval($frm['mass_location_columns'][0]) . ':' . intval($frm['mass_location_columns'][1]); $params['locations'] = $tmp; } if ($frm['f_cats']) { $frm['f_cats'] = preg_replace('/,$/', '', $frm['f_cats']); $acats = explode(',', $frm['f_cats']); $cats_data = array(); foreach ($acats as $v) { $v = preg_replace('/^mass_cat_span_/', '', $v); $c = explode('_', $v); if ($c[1] == 0) { $sql = 'SELECT prof_group FROM professions WHERE id=?i'; $p = $DB->val($sql, $c[0]); $cats_data[] = $p . ':' . $c[0]; } else { $cats_data[] = $c[0] . ':0'; } } } $params['professions'] = $cats_data; if ($calc = $masssending->Add($uid, $params)) { $masssending->ClearTempFiles(session_id()); //Допустимо использование промокодов $masssending->billing->setPromoCodes('SERVICE_MASSSENDING', $promo_code); $billReserveId = $masssending->Accept($calc['massid'], false); if ($billReserveId) { $_SESSION['quickmas_is_begin'] = 1; $_SESSION['quickmas_count_u'] = $calc['count']; $_SESSION['referer'] = $_SERVER['HTTP_REFERER']; $sum = $masssending->billing->getRealPayedSum(); $yandex_kassa = new yandex_kassa(); $html_form = $yandex_kassa->render($sum, $masssending->billing->account->id, $payment, $billReserveId); $html_form = preg_replace('/^[^\\/]+\\/\\*!?/', '', $html_form); $html_form = preg_replace('/\\*\\/[^\\/]+$/', '', $html_form); $objResponse->script('$("quick_mas_div_wait").set("html", \'' . $html_form . '\');'); $objResponse->script("\$('quick_mas_div_wait').getElements('form')[0].submit();"); } } } return $objResponse; }
<?php $is_first = false; } if ($user->lj_3 && !($info_for_reg['lj_3'] && !$uid)) { ?> <div class="b-layout__hover_bg_f0ffdf b-layout_padlr_10 b-layout_pad_3 b-layout_margbot_3"> <div class="b-layout__txt b-layout__txt_padleft_25 b-layout__txt_lineheight_1"> <span class="b-icon b-icon__cont b-icon__cont_lj b-icon_margleft_-25"></span> <noindex class="b-layout__txt b-layout__txt_valign_top b-layout__txt_lineheight_15 b-layout__txt_ellipsis b-layout_inline-block b-layout__txt_width_225"><a class="b-layout__link" href="http://<?php echo $user->lj_3; ?> .livejournal.com" target="_blank" rel="nofollow" title="<?php echo $user->lj_3; ?> "><?php echo LenghtFormatEx($user->lj_3, $maxlength); ?> </a></noindex> </div> </div> <?php $is_first = false; } if ($user->skype && !($info_for_reg['skype'] && !$uid)) { ?> <div class="b-layout__hover_bg_f0ffdf b-layout_padlr_10 b-layout_pad_3 b-layout_margbot_3"> <div class="b-layout__txt b-layout__txt_padleft_25 b-layout__txt_lineheight_1"> <span class="b-icon b-icon__cont b-icon__cont_sky b-icon_margleft_-25"></span> <div class="b-layout__txt b-layout__txt_valign_top b-layout__txt_lineheight_15 b-layout__txt_ellipsis b-layout_inline-block b-layout__txt_width_225"> <a class="b-layout__link" href="skype:<?php echo $user->skype;
?> <span title="Количество продаж услуги"><span class="b-icon b-icon__tu2 b-icon_top_2"></span> <?php echo number_format($sold_count, 0, '', ' '); ?> </span> <?php } ?> </a> </div> <div class="b-layout__txt b-layout__txt_padtop_10 b-layout_overflow_hidden"> <a href="<?php echo $tservice_url; ?> " class="b-layout__link b-layout__link_no-decorat b-layout__link_color_000 b-layout__link_inline-block"><?php echo LenghtFormatEx(reformat($tservice['title'], 20, 0, 1), 80); ?> </a> </div> </div> <?php if ($is_owner) { ?> </div> <a href="javascript:void(0);" data-preview-pos="<?php echo $key + 1; ?> " data-popup="<?php echo FreelancersPreviewEditorPopup::getInstance()->getPopupId(); ?> ">Изменить</a>
/** * формирует превью проекта на главной странице. */ function GetPreview($data) { $objResponse = new xajaxResponse(); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/CFile.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/HTML/projects_lenta.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/memBuff2.php'; $kind = 1; $memBuff = new memBuff(); $htmlLenta = $memBuff->get('projectsLentaHTML'); if (!$htmlLenta) { $prj = new new_projects(); $prjs = $prj->getProjects($num_prjs, -1, 1, false, null, true); foreach ($prjs as &$proj) { // стираем принадлежность проекта к пользователю, чтобы не появилось кнопок РЕДАКТИРОВАТЬ и пр. unset($proj['user_id']); } unset($proj); $htmlPrj = new HTMLProjects(); $htmlPrj->template = '/projects/tpl.lenta.new.php'; $prj_content = $htmlPrj->ShowProjects($num_prjs, $prjs, 1, 1, null, true); $prfs = new professions(); $profs = $prfs->GetAllProfessions('', 0, 1); // подложка с лентой проектов ob_start(); include $_SERVER['DOCUMENT_ROOT'] . '/templates/main.php'; $htmlLenta = ob_get_clean(); // кэшируем ленту проектов $memBuff->set('projectsLentaHTML', $htmlLenta, 1800); } // подготавливаем данные для шаблона в ленту проектов $row = array(); $row['kind'] = __paramValue('int', $data['kind']); $row['cost'] = __paramValue('int', $data['cost']); $row['currency'] = __paramValue('int', $data['currency_db_id']); $row['priceby'] = __paramValue('int', $data['priceby_db_id']); $row['name'] = stripslashes(__paramValue('html', $data['name'], null, true)); $contacts = array('phone' => array('name' => 'Телефон', 'value' => ''), 'site' => array('name' => 'Сайт', 'value' => ''), 'icq' => array('name' => 'ICQ', 'value' => ''), 'skype' => array('name' => 'Skype', 'value' => ''), 'email' => array('name' => 'E-mail', 'value' => '')); if (isset($data['contacts'])) { foreach ($data['contacts'] as $name => $value) { if (!isset($contacts[$name])) { continue; } switch ($name) { case 'site': if (!url_validate(ltrim(ltrim($value, 'http://'), 'https://')) && trim($value) != '') { $error["contact_{$name}"] = 'Поле заполнено некорректно'; } if (strpos($value, 'htt') === false && trim($value) != '') { $value = 'http://' . $value; } break; case 'email': if (!is_email($value) && trim($value) != '') { $error["contact_{$name}"] = 'Поле заполнено некорректно'; } break; } $contacts[$name]['value'] = __paramValue('htmltext', stripslashes($value)); } $row['contacts'] = serialize($contacts); } $descrFull = stripslashes(__paramValue('html', $data['descr'], null, true)); $descr = preg_replace('/^ /', "", $descrFull); $descr = preg_replace("/(\n) /", "\$1", $descr); $descr = reformat(strip_tags(htmlspecialchars(LenghtFormatEx(htmlspecialchars_decode($descr, ENT_QUOTES), 180), ENT_QUOTES), '<br />'), 50, 1, 0, 1); $descr = preg_replace("//", ' ', $descr); $row['descr'] = $descr; $row['t_is_payed'] = $data['logo_ok'] || $data['top_ok']; $row['t_is_ontop'] = __paramValue('bool', $data['top_ok']); $row['t_pro_only'] = $data['pro_only'] ? 't' : 'f'; $row['t_verify_only'] = $data['verify_only'] ? 't' : 'f'; $row['t_urgent'] = $data['urgent'] ? 't' : 'f'; $row['t_hide'] = $data['hide'] ? 't' : 'f'; $row['create_date'] = date('Y-m-d H:i', strtotime(date('Y-m-d H:i:s')) - 120); // делаем дату публикации 2 минуты назад $row['end_date'] = __paramValue('string', $data['end_date']); $row['win_date'] = __paramValue('string', $data['win_date']); $row['country'] = __paramValue('int', $data['project_location_columns'][0]); $row['city'] = __paramValue('int', $data['project_location_columns'][1]); list($row['country_name'], $row['city_name']) = explode(': ', __paramValue('string', $data['location'])); $logoOK = __paramValue('bool', $data['logo_ok']); $topOK = __paramValue('bool', $data['top_ok']); $row['link'] = __paramValue('string', $data['link']); if ($logoOK) { $logoAttach = new attachedfiles($data['logo_attachedfiles_session']); $logoFiles = $logoAttach->getFiles(array(1)); if (count($logoFiles)) { $logoFile = array_pop($logoFiles); // загружено может быть несколько файлов, берем последний $logoCFile = new CFile($logoFile['id']); } elseif (__paramValue('int', $data['logo_file_id'])) { $logoCFile = new CFile(__paramValue('int', $data['logo_file_id'])); } $row['logo_name'] = $logoCFile->name; $row['logo_path'] = $logoCFile->path; } $is_ajax = true; // подготовка данных для подробной страницы проекта $project = $row; $categories = array(); for ($i = 0; $i < 3; ++$i) { $categoryID = __paramValue('int', $data['project_profession' . $i . '_columns'][0]); $subcategoryID = __paramValue('int', $data['project_profession' . $i . '_spec_columns'][0]); if ($categoryID || $subcategoryID) { $categories[] = array('category_id' => $categoryID, 'subcategory_id' => $subcategoryID); } } $project['spec_txt'] = projects::_getSpecsStr($categories, ' / ', ', ', true); $project['ico_payed'] = $logoOK; $project['is_upped'] = $topOK; $project['descr'] = $descrFull; $project['logo_id'] = $logoCFile->id; $project['prefer_sbr'] = __paramValue('bool', $data['prefer_sbr']) ? 't' : 'f'; $project['urgent'] = __paramValue('bool', $data['urgent']) ? 't' : 'f'; $project['hide'] = __paramValue('bool', $data['hide']) ? 't' : 'f'; if (trim($project['contacts']) != '') { $contacts_employer = unserialize($project['contacts']); $empty_contacts_employer = 0; foreach ($contacts_employer as $name => $contact) { if (trim($contact['value']) == '') { $empty_contacts_employer++; } } $is_contacts_employer_empty = count($contacts_employer) == $empty_contacts_employer; } $isPreview = true; $project_exRates = project_exrates::GetAll(); $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1); ob_start(); include $_SERVER['DOCUMENT_ROOT'] . '/public/new/tpl.preview.php'; ?> <?php $htmlProject = ob_get_clean(); $objResponse->assign('project_preview_lenta', 'innerHTML', $htmlLenta); $objResponse->assign('project_preview_content', 'innerHTML', $htmlProject); $objResponse->script('Public.showPreview()'); return $objResponse; }
} ?> <tr style="vertical-align:top"> <td style="padding-top:<?php echo $pt; ?> px; white-space:nowrap; padding-bottom:4px;"> <div style="width:100%;text-overflow:ellipsis;overflow:hidden"> <a href="/freelancers/<?php echo $p['link'] . freelancer::getPositionToPage($p['pos']); ?> " title="<?php echo $p['prof_name']; ?> " class="blue"><?php echo LenghtFormatEx($p['prof_name'], 24, '...', 1); ?> </a> </div> </td> <?php if (!$u_is_pro) { ?> <td style="padding-top:<?php echo $pt; ?> px; text-align:right; padding-bottom:4px;"><?php echo $p['pos']; ?> </td> <?php
?> <item> <title><![CDATA[<?php echo $prj['name'] . ($prj['cost'] > 0 ? " (Бюджет: {$prj_cost})" : ''); ?> ]]></title> <link><?php echo $prj_link; ?> </link> <?php if ($prj['pro_only'] == 't') { ?> <?/*<description>Описание проекта доступно только для PRO.</description>*/?> <description><![CDATA[<?php echo str_replace('<br', '<br /', LenghtFormatEx($prj['descr'], 180)); ?> ]]></description> <?php } else { ?> <description><![CDATA[<?php echo str_replace('<br', '<br /', $prj['descr']); ?> ]]></description> <?php } ?> <guid><?php echo $prj_link; ?>
/** * Отправляет уведомления о новых сообщениях в личке при платной рассылке. * Консьюмер plproxy-mail * * @param array $params Данные от PgQ, TO-адреса получателей; FROM-адрес отправителя * @param string $msg Текст сообщения */ function SendMasssending($params, $from, $to, $msg) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $uid_from = intval($from); $uids_to = explode(",", preg_replace("/[\\{\\}]/", "", $to)); if (!$uid_from || !is_array($uids_to)) { return; } $from = new users(); $from->GetUserByUID($uid_from); $this->subject = "Новое сообщение на FL.ru"; $msg_text = "\n<a href='{$GLOBALS['host']}/users/{$from->login}'>{$from->uname} {$from->usurname}</a> [<a href='{$GLOBALS['host']}/users/{$from->login}{$this->_addUrlParams('b')}'>{$from->login}</a>]\nнаписал(а) вам новое сообщение на сайте FL.ru.<br />\n<br />\n---------- \n<br />\n" . $this->ToHtml(LenghtFormatEx(strip_tags($msg), 300)) . "\n<br />\n<br />\n<br />\n<a href='{$GLOBALS['host']}/contacts/?from={$from->login}{$this->_addUrlParams('b', '&')}'>{$GLOBALS['host']}/contacts/?from={$from->login}</a>\n<br />\n<br />\n------------\n"; foreach ($uids_to as $uid_to) { $to = new users(); $to->GetUserByUID($uid_to); if (substr($to->subscr, 0, 1) != '1' || !$to->email || $to->is_banned == '1') { continue; } if (!$this->Connect()) { return "Невозможно соеденится с SMTP сервером"; } if ($to->email && substr($to->subscr, 12, 1) == '1') { $this->recipient = $to->uname . " " . $to->usurname . " [" . $to->login . "] <" . $to->email . ">"; $this->message = $this->GetHtml($to->uname, $msg_text, array('header' => 'default', 'footer' => 'default'), array('login' => $to->login)); $this->SmtpMail('text/html'); } } $this->subject = "Ваша рассылка на FL.ru прошла модерацию"; $this->recipient = $from->uname . " " . $from->usurname . " [" . $from->login . "] <" . $from->email . ">"; $msg_text = $this->ToHtml($msg); $body = "Ваша заявка на рассылку была рассмотрена и одобрена модераторами сайта FL.ru. \n Фрилансерам выбранных вами специализаций будет отправлено сообщение следующего содержания:</br>\n ---<br/>\n {$msg_text}<br/>\n ---<br/>"; $this->message = $this->GetHtml($from->uname, $body, array('header' => 'simple', 'footer' => 'simple')); $this->SmtpMail('text/html'); }
$footer = $rpath . "footer.html"; if (!$gr_name) { $gr_name = "Ошибка"; } if ($blog->poll !== null && $blog->title == "") { $sQuestion = $blog->poll_question; $html_title = substr($blog->poll_question, 0, 30) . (strlen($blog->poll_question) > 30 ? "..." : ""); } else { $html_title = $blog->title == "" ? substr($sMessage, 0, 30) . (strlen($sMessage) > 30 ? "..." : "") : $sTitle; if ($html_title == "") { $html_title = 'Блоги'; } } $page_title = strip_tags($html_title) . ' - фриланс, удаленная работа на FL.ru'; $page_keyw = strtolower($gr_name) . ", удаленная работа, фри-ланс, дизайнер, программист, менеджер, иллюстратор, верстальщик, оптимизатор, копирайтер"; $page_descr = LenghtFormatEx(htmlspecialchars(strip_tags($sMessage), ENT_QUOTES, 'cp1251'), 250, '', 0); //$gr_name.". Работодатель.Удаленная работа. Поиск работы. Предложение работы. Портфолио фрилансеров. Разработка сайтов, Программирование, Переводы, Тексты, Дизайн, Арт, Реклама, Маркетинг, Прочее. Free-lance.ru"; $page_title = deleteHiddenURLFacebook($page_title); $page_keyw = deleteHiddenURLFacebook($page_keyw); $page_descr = deleteHiddenURLFacebook($page_descr); $blog->title = deleteHiddenURLFacebook($blog->title); $sTitle = deleteHiddenURLFacebook($sTitle); stat_collector::setStamp(); // stamp // Добавляем Open Graph Tags для FaceBook if ($blog) { global $additional_header; if (empty($additional_header)) { $additional_header = ''; } $additional_header .= '
/** * Вывод позиции платного объявления * @param array массив с данными объявления * @return string HTML */ function __fpPrntPosition($value) { global $session; $ufp_mod = (int) ($_SESSION['uid'] == $value['user_id']) | 2 * hasPermissions('users'); if (strlen($value['uname']) > 10) { $uname = hyphen_words($value['uname']); $t = explode("", $uname); for ($i = 0; $i < count($t); $i++) { if (strlen($t[$i]) > 10) { $uname = LenghtFormatEx($value['uname'], 10); break; } } } else { $uname = $value['uname']; } if (strlen($value['usurname']) > 10) { $usurname = hyphen_words($value['usurname']); $t = explode("", $usurname); for ($i = 0; $i < count($t); $i++) { if (strlen($t[$i]) > 10) { $usurname = LenghtFormatEx($value['usurname'], 10); break; } } } else { $usurname = $value['usurname']; } ob_start(); ?> <div id="mgCapsule<?php echo $value['id']; ?> "> <div id="mgContent<?php echo $value['id']; ?> "> <table border="0" cellpadding="0" cellspacing="0" width="100%" style="margin-bottom:10px"> <col style="width:10px" /> <col /> <tr valign="top"> <td> <a href="/users/<?php echo $value['login']; ?> /?f=<?php echo stat_collector::REFID_PAIDSEATINGS; ?> &stamp=<?php echo $_SESSION['stamp']; ?> " title="<?php echo $value['uname']; ?> <?php echo $value['usurname']; ?> " <?php /* if ($ufp_mod | (!$_SESSION['uid'] || is_emp())) { ?> onmouseover="mg_onOver(<?=$value['id']?>, <?=$ufp_mod?>);" onmouseout="mg_onLeave()"<? } */ ?> class="img50x50"> <?php echo view_avatar($value['login'], $value['photo'], 1, 0); ?> </a> </td> <td style="padding-left:10px"> <?php if ($value['payed'] == 't') { print view_pro2($value['payed_test'] == 't' ? true : false) . ' '; } print $session->view_online_status($value['login']); ?> <a <?php /* if ($ufp_mod | (!$_SESSION['uid'] || is_emp())) { ?> onmouseover="mg_onOver(<?=$value['id']?>, <?=$ufp_mod?>);" onmouseout="mg_onLeave()"<? } */ ?> class="freelancer-name" href="/users/<?php echo $value['login']; ?> /?f=<?php echo stat_collector::REFID_PAIDSEATINGS; ?> &stamp=<?php echo $_SESSION['stamp']; ?> " title="<?php echo $value['uname']; ?> <?php echo $value['usurname']; ?> "> <?php echo $uname . " " . $usurname . " [" . $value['login'] . "]"; ?> </a><?php echo $value['boss_rate'] == 1 ? view_vip() : ''; ?> <?php if ($ufp_mod) { ?> <div id="fptext<?php echo $value['id']; ?> " style="overflow:hidden;"><?php } $fd = $value; $fd['ufp_id'] = $value['id']; print __fpPrntTitleDescr($fd, $ufp_mod); if ($ufp_mod) { ?> </div> <a style="display:block; padding-top:10px; width:120px;" id="chtextB<?php echo $value['id']; ?> " href="javascript:void(0);" onclick="mg_onChangeClick(<?php echo $value['id']; ?> , <?php echo $ufp_mod; ?> );" class="blue">Изменить объявление</a> <?php } if ($ufp_mod & 1) { ?> <a style="display:block; width:117px;" href="/firstpage/position.php" class="blue">Изменить положение</a><?php } ?> </td> </tr> </table> </div> </div> <?php $str = ob_get_contents(); ob_end_clean(); return $str; }
?> </nobr></font></b><?php } ?> </td> <td bgcolor="#ffffff" width="20"></td> </tr> <tr> <td bgcolor="#ffffff" width="20" height="10" colspan="3"></td> </tr> <tr> <td bgcolor="#ffffff" width="20"></td> <td> <font color="#000000" size="2" face="arial"> <?php echo reformat(LenghtFormatEx(strip_tags($descr, '<br />'), 180), 50, 0, 1); ?> </font> </td> <td bgcolor="#ffffff" width="20"></td> </tr> <tr> <td bgcolor="#ffffff" width="20"></td> <td height="20"> <font color="#a0a0a0" size="1" face="arial"> <?php if ($project_kind == 2 || $project_kind == 7) { // Конкурс ?> <b>Конкурс</b>   <?php
/** * Уведомление об удалении комментария или поста в блогах. * * @param int $moderator_uid - идентификатор автора блога * @param array $userSubscribe - массив идентификаторов сообщений подписаных польователей * */ public function sendBlogPostDeleted($moderator_uid, $userSubscribe) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; // Посылаем подписавшимся на темы if ($userSubscribe) { $moderator = new users(); $moderator->GetUserByUID($moderator_uid); $a_login = $moderator->login; $a_uname = $moderator->uname; $a_usurname = $moderator->usurname; foreach ($userSubscribe as $comment) { if (substr($comment['s_subscr'], 2, 1) == '1' && !$notSend[$comment['s_uid']] && $comment['s_email']) { $this->subject = 'В блоге на сайте FL.ru удален комментарий'; $post_type = "комментарий в <a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}&openlevel={$comment['id']}{$this->_addUrlParams('b', '&')}#o{$comment['id']}'>в блоге</a>, на который вы подписаны"; if ($comment['s_uid'] == $comment['uid']) { $this->subject = 'Ваш комментарий в блоге на сайте FL.ru удален'; $post_type = "ваш комментарий в <a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}&openlevel={$comment['id']}{$this->_addUrlParams('b', '&')}#o{$comment['id']}'> блоге</a>"; } $message_template = 'subscribe_delete_comment'; if ($comment['reply_to'] == '') { $this->subject = 'На сайте FL.ru удален блог'; $post_type = 'блог, на который вы подписаны'; if ($comment['s_uid'] == $comment['uid']) { $this->subject = 'Ваш пост в блогах на сайте FL.ru удален'; $post_type = 'ваш пост в блогах'; } $message_template = 'subscribe_delete_post'; } $link_title = "<a href='{$GLOBALS['host']}/blogs/view.php?tr={$comment['thread_id']}{$this->_addUrlParams('b', '&')}' target='_blank'>" . ($comment['blog_title'] == '' ? 'Без названия' : $comment['blog_title']) . '</a>'; $this->message = $this->GetHtml($comment['s_uname'], "\n\tПользователь <a href='{$GLOBALS['host']}/users/{$a_login}/{$this->_addUrlParams('b')}'>{$a_uname} {$a_usurname}</a> [<a href='{$GLOBALS['host']}/users/{$a_login}{$this->_addUrlParams('b')}'>{$a_login}</a>]\n\tудалил(-а) {$post_type} на сайте FL.ru.\n\t<br /> --------\n\t<br />" . ($comment['title'] ? $this->ToHtml(input_ref(LenghtFormatEx($comment['title'], 300), 1)) . '<br />---<br />' : '') . $this->ToHtml(input_ref(LenghtFormatEx($comment['msgtext'], 300), 1)) . ' <br /> -------- <br /> ', array('header' => $message_template, 'footer' => 'subscribe'), array('type' => 1, 'title' => $link_title)); $this->recipient = $comment['s_uname'] . ' ' . $comment['s_usurname'] . ' [' . $comment['s_login'] . '] <' . $comment['s_email'] . '>'; $this->SmtpMail('text/html'); $message = 'Здравствуйте, ' . $comment['s_uname'] . ". \n\tПользователь <a href='{$GLOBALS['host']}/users/{$a_login}/{$this->_addUrlParams('b')}'>{$a_uname} {$a_usurname}</a> [<a href='{$GLOBALS['host']}/users/{$a_login}{$this->_addUrlParams('b')}'>{$a_login}</a>]\n удалил(-а) {$post_type} на сайте FL.ru.\n\t--------" . ($comment['title'] ? $this->ToHtml(input_ref(LenghtFormatEx($comment['title'], 300), 1)) . ' --- ' : '') . $this->ToHtml(input_ref(LenghtFormatEx($comment['msgtext'], 300), 1)) . ' -------- '; messages::Add(users::GetUid($err, 'admin'), $comment['s_login'], $message, '', 1); } } } }
echo zin($frl['total_opi_plus']); ?> </a> | <a class="b-layout__link b-layout__link_bold b-layout__link_color_c10600 b-layout_hover_link_decorated" href="/users/<?php echo $frl['login']; ?> /opinions/?sort=3&author=0">- <?php echo zin($frl['total_opi_minus']); ?> </a> </div> </td> <td class="b-layout__td b-layout__td_padleft_20 b-layout__td_padright_20 b-layout__td_padtb_15 b-layout__td_valign_mid"> <div class="b-layout__txt b-layout__txt_color_64 b-layout__txt_fontsize_11"> <?php echo br2br(LenghtFormatEx(reformat($frl['status_text'], 40, 0, 1, 25), 150)); ?> </div> </td> </tr> <?php if ($i < $cntCatalogList - 1) { ?> <tr class="b-layout__tr"> <td class="b-layout__td b-layout__td_padtop_5 b-layout__td_bordbot_e6" colspan="5"></td> </tr> <?php } ?> <?php
/** * Заполняет значения в зависимости от проекта. * * @param array $project данные проекта */ public function initProject($project) { $stop_words = new stop_words(hasPermissions('projects')); $title = $project['moderator_status'] === '0' && $project['kind'] != 4 && $project['is_pro'] != 't' ? $stop_words->replace($project['name'], 'plain', false) : $project['name']; $title50 = LenghtFormatEx(trim(strip_tags($title)), 50); $title100 = LenghtFormatEx(trim(strip_tags($title)), 100); $sp = new_projects::getSpecs($project['id']); $is_spec = $sp[0]['subcategory_id'] > 0; $prof_id = $is_spec ? $sp[0]['subcategory_id'] : $sp[0]['category_id']; $this->seo_value = new SeoValues(); $this->seo_value->initCard($prof_id, $is_spec); $this->title = sprintf(SeoText::PRJ_TITLE, $title50, $this->seo_value->getKey(1)); $this->description = sprintf(SeoText::PRJ_DESC, $title100, $this->seo_value->getKeysString(3)); $this->keywords = sprintf(SeoText::PRJ_KEY, $this->seo_value->getFTitle(1), $this->seo_value->getKeysString()); $this->footer_text = sprintf(SeoText::PRJ_TAGS, $this->seo_value->getFTitle(1), $this->seo_value->getKeysString()); }
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/project_exrates.php'; session_start(); if (!($uid = get_uid())) { header('Location: /fbd.php'); exit; } $masssending = new masssending(); $countries = country::GetCountries(true); $prof_groups = professions::GetAllGroupsLite(true); $professions = professions::GetProfList(); $exrates = project_exrates::GetAll(); if (!empty($_POST)) { $frm = $_POST; //$params['msg'] = stripslashes($frm['msg']); $params['msg'] = "Здравствуйте!\n\nПриглашаю ознакомиться с проектом '" . change_q_x(stripslashes($frm['title']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false) . "' " . str_replace('www.n.fl.ru', 'n.fl.ru', $host) . $frm['link'] . " \n\n\n" . LenghtFormatEx(change_q_x(stripslashes($frm['msg']), false, false, 'b|i|p|ul|li|s|h[1-6]{1}', false, false), 300); $params['max_users'] = intval($_POST['max_users']); $params['max_cost'] = intval($_POST['max_cost']); $params['is_pro'] = stripslashes($frm['pro']); $params['favorites'] = stripslashes($frm['favorites']); $params['free'] = stripslashes($frm['free']); $params['sbr'] = stripslashes($frm['bs']); $params['portfolio'] = stripslashes($frm['withworks']); $params['inoffice'] = stripslashes($frm['office']); $params['opi_is_verify'] = stripslashes($frm['ver']); $tmp = array(); if ($frm['mass_location_columns'][0] != '0' || $frm['mass_location_columns'][1] != '0') { $tmp[] = intval($frm['mass_location_columns'][0]) . ':' . intval($frm['mass_location_columns'][1]); $params['locations'] = $tmp; } if ($frm['f_cats']) {
public function getAnchor($key, $num, $maxlength) { $anchor = ''; $field = $key . ($num ? '_' . $num : ''); $realField = $key == 'email' && $num == 0 ? 'second_email' : $field; if (isset($this->{$realField})) { if ($this->{$field . '_as_link'} == 't') { switch ($key) { case 'skype': $anchor = 'Связаться по skype'; break; case 'email': $anchor = 'Написать письмо'; break; } } else { $anchor = LenghtFormatEx($this->{$realField}, $maxlength); } } return $anchor; }
} if ($subcats[0]) { $data['Vacancy'] = $profs[(int) $subcats[0]]['name_case']; $data['Category 2'] = $profs[(int) $subcats[0]]['name']; $data['Category 2'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Category 2']); $data['Category 2'] = preg_replace("/\\s{2,}/", " ", $data['Category 2']); $data['Category 2'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Category 2']); } else { $data['Category 2'] = $data['Category 1']; } if (empty($data['Vacancy'])) { $data['Vacancy'] = 'Прочее'; } else { $data['Vacancy'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Vacancy']); $data['Vacancy'] = preg_replace("/\\s{2,}/", " ", $data['Vacancy']); $data['Vacancy'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Vacancy']); } $data['Vacancy_title'] = LenghtFormatEx($data['Vacancy'], 30, ''); $data['vacancy_id'] = $row['id']; // сохраняем if (!$c) { $rowsNames = array_keys($data); $dataStr = implode(',', $rowsNames) . "\r\n"; fwrite($fp, chr(255) . chr(254) . iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr)); } $dataStr = implode(',', $data) . "\r\n"; fwrite($fp, iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr)); $c++; } fclose($fp); }
?> </div> <?php if ($profiUser['profname']) { ?> <div class="b-layout__txt b-layout__txt_color_ff7f27 b-layout__txt_bold b-layout__txt_padbot_10 b-layout__txt_lineheight_1 b-layout__txt_fontsize_11"> <?php echo $profiUser['profname']; ?> </div> <?php } ?> <div class="b-layout__txt b-layout__txt_color_64 b-layout__txt_fontsize_11"> <?php echo br2br(LenghtFormatEx(reformat($profiUser['status_text'], 40, 0, 1, 25), 150)); ?> </div> </td> </tr> </table> </div> </div> <?php } ?> </div> <?php }
<tr class="<?php echo $num == $curr_sbr->data['stages_cnt'] - 1 ? ' last' : ''; echo $stage->status == sbr_stages::STATUS_INARBITRAGE ? ' nr-task-arb' : ''; ?> "> <td style="text-align:left;"> <div class="utxt"> <h5><a href="?site=Stage&id=<?php echo $stage->data['id']; ?> "><?php echo reformat($stage->data['name'], 35, 0, 1); ?> </a></h5> <p><?php echo reformat(LenghtFormatEx($stage->data['descr'], 250), 42, 0, 1, 1); ?> </p> <input type="hidden" name="stages[<?php echo $num; ?> ][id]" value="<?php echo $stage->data['id']; ?> " /> <input type="hidden" name="stages[<?php echo $num; ?> ][version]" value="<?php echo $stage->data['version']; ?>
/** * Блок с кнопками социальных сетей * * @param int $id ID того, что мы расшариваем * @param string $title Название ссылки или пустая строка, если document.title * @param string $from что мы расшариваем для определения дополнительных параметров * @param string $img адрес картинки которая будет использоваться или пустая строка, если логотип FL * @param string $login логин автора * @param string $name имя и фамилия автора автора * @param string $gr_name имя группы блога * @return string HTML-код */ function SocialButtonsSrc($id = 0, $title = '', $img = '', $from = '', $login = '', $name = '', $gr_name = '') { $titleYaru = $title; $title = html_entity_decode($title, ENT_QUOTES); $gr_name = html_entity_decode($gr_name); $sClass = ''; $nLength = 116; switch ($from) { case 'blogs': $link = "'" . HTTP_PREFIX . "www.free-lance.ru" . getFriendlyURL("blog", $id) . "'"; $sTwitterTitle = 'Обсуждение ' . ($title ? '«' . LenghtFormatEx($title, $nLength - 36, '...', true) . '» ' : '') . 'в блогах @free_lanceru'; break; case 'commune': $link = "'" . HTTP_PREFIX . "www.free-lance.ru/commune/?id={$id}'"; $sTwitterTitle = 'Сообщество «' . LenghtFormatEx($title, $nLength - 31, '...', true) . '» на @free_lanceru'; break; case 'commune_topic': $link = "'" . HTTP_PREFIX . "www.free-lance.ru/commune/?id={$id[0]}&site=Topic&post={$id[1]}'"; $sTwitterTitle = 'Обсуждение ' . ($title ? '«' . LenghtFormatEx($title, $nLength - 31, '...', true) . '» ' : '') . 'в сообществах @free_lanceru'; break; case 'projects': $link = "'" . HTTP_PREFIX . "www.free-lance.ru/projects/{$id}'"; $sTwitterTitle = 'Проект «' . LenghtFormatEx($title, $nLength - 27, '...', true) . '» на @free_lanceru'; break; case 'viewproj': $link = "'" . HTTP_PREFIX . "www.free-lance.ru/users/{$login}/viewproj.php?prjid={$id}'"; $sTwitterTitle = 'Работа «' . LenghtFormatEx($title, $nLength - 52, '...', true) . "» в портфолио фрилансера на @free_lanceru. {$name} [{$login}]"; if ($img) { $aData = getAttachDisplayData($login, $img, "upload", -1, -1, 1048576, 0); if ($aData['success'] && !$aData['file_mode'] && !$aData['virus_flag'] && strtolower($aData['file_ext']) != 'swf') { $img = WDCPREFIX . "/users/{$login}/upload/{$img}"; } else { $img = ''; } } break; case 'articles': $link = "'" . HTTP_PREFIX . "www.free-lance.ru/articles/?id={$id}'"; $sTwitterTitle = 'Статья «' . LenghtFormatEx($title, $nLength - 27, '...', true) . '» на @free_lanceru'; $sClass = 'articles-share'; break; case 'interview': $link = "'" . HTTP_PREFIX . "www.free-lance.ru/interview/?id={$id}'"; $sTwitterTitle = 'Интервью успешных фрилансеров и работодателей на @free_lanceru. ' . LenghtFormatEx($title, $nLength - 66, '...', true); $sClass = 'interview-share'; break; default: $link = 'window.parent.location.href'; $sTwitterTitle = LenghtFormatEx($title, $nLength, '...', true); break; } //****************************** // заменяем каждую кавычку на две одиночные кавычки $titleYaru = preg_replace('/\\\\"/', '‘‘', $titleYaru); // заменяем апострофы на одиночные кавычки $titleYaru = preg_replace('/\\\\'/', '‘', $titleYaru); //******************************* $img = $img ? $img : HTTP_PREFIX . "www.free-lance.ru/images/free-lance_logo.jpg"; $html = "<script type='text/javascript' src='//yandex.st/share/share.js' charset='utf-8'></script>"; $html .= "<script type='text/javascript'>\n var YaShareInstance = new Ya.share({\n\t\t\t element: 'yashare',\n\t\t\t link: {$link},\n\t\t\t title: '" . strip_tags($title) . "',\n image: '{$img}',\n serviceSpecific: {\n vkontakte: {\n title: '" . htmlspecialchars($title, ENT_NOQUOTES, 'cp1251', false) . "'\n },\n facebook: {\n title: '" . strip_tags($title) . "'\n },\n twitter: {\n title: '" . strip_tags($sTwitterTitle) . "'\n },\n yaru: {\n title: '" . $titleYaru . "'\n }\n },\n \t\telementStyle: {\n \t\t type: 'none',\n quickServices: ['yaru','vkontakte','facebook','twitter','odnoklassniki','moimir','lj','friendfeed']\n \t\t}\n \t });\n \t </script>"; $html .= '<div id="yashare"' . ($sClass ? ' class="' . $sClass . '"' : '') . '"></div>'; return $html; }
} $inner = 'tpl.portfolio.pro.php'; $js_file[] = 'portfolio.js'; $activ_tab = 1; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; $prfs = new professions(); $profs = $prfs->GetSpecs($user->login); $spec_text = professions::GetProfName($user->spec); $page_descr = 'Удаленная работа (фри-ланс). Портфолио фрилансера: ' . $spec_text . '. '; $page_keyw = 'удаленная работа, фри-ланс, фрилансер, '; if ($profs) { foreach ($profs as $ikey => $prof) { $out[] = str_replace('"', '', input_ref($prof['name'])); } $page_descr .= LenghtFormatEx(implode(', ', $out), 250, ''); $page_keyw .= strtolower(LenghtFormatEx(implode(', ', $out), 250, '')); } $specs_add = professions::GetProfsAddSpec($user->uid); //@todo: этот код ниже нужно переработать с использованием GaJsHelper //проверить все варианты чтобы не делать повторные запросы! $ga_profs = array_merge(array($user->spec), $specs_add); if (isset($ga_profs) && count($ga_profs)) { $dimension = array(); $groups = array_unique(professions::GetGroupIdsByProfs($ga_profs)); foreach ($groups as $group) { if ($group > 0) { $dimension[] = '[g' . $group . ']'; } } foreach ($ga_profs as $prof) { if ($prof > 0) {
/** * Обрабатываем ссылку для замены в тексте * * @param string $title Название ссылки * @param string $URI Ссылка * @return string */ function getHrefLink($title, $URI) { $attrTitle = $title; if (!$title) { $attrTitle = $URI; $title = LenghtFormatEx($URI, $this->max_link_len); } return "<a href='{$URI}' title='{$attrTitle}' class='blue' target='_blank'>{$title}</a>"; }
<select id="b-select__select" name="category_id" class="b-select__select b-select__select_width_180"> <option>Все разделы</option> <?php foreach ($sub_cat as $sc) { if ($sc['is_only_for_admin'] == 't' && !($is_author || $is_comm_admin)) { continue; } ?> <option <?php echo $mess['category_id'] == $sc['id'] ? 'selected="selected"' : ''; ?> value="<?php echo $sc['id']; ?> "><?php echo LenghtFormatEx($sc['name'], commune::MAX_CATEGORY_NAME_SIZE); ?> </option> <?php } ?> </select> </div> </div> <?php // запретить комментирование ?> <div class="b-form b-form_padleft_90"> <div class="b-check"> <input id="b-check1" class="b-check__input" type="checkbox" value="1" name="close_comments" <?php
} $inner = "tpl.portfolio.pro.php"; $js_file[] = 'portfolio.js'; $activ_tab = 1; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php"; $prfs = new professions(); $profs = $prfs->GetSpecs($user->login); $spec_text = professions::GetProfName($user->spec); $page_descr = "Удаленная работа (фри-ланс). Портфолио фрилансера: " . $spec_text . ". "; $page_keyw = "удаленная работа, фри-ланс, фрилансер, "; if ($profs) { foreach ($profs as $ikey => $prof) { $out[] = str_replace("\"", "", input_ref($prof['name'])); } $page_descr .= LenghtFormatEx(implode(", ", $out), 250, ""); $page_keyw .= strtolower(LenghtFormatEx(implode(", ", $out), 250, "")); } $specs_add = professions::GetProfsAddSpec($user->uid); //@todo: этот код ниже нужно переработать с использованием GaJsHelper //проверить все варианты чтобы не делать повторные запросы! $ga_profs = array_merge(array($user->spec), $specs_add); if (isset($ga_profs) && count($ga_profs)) { $dimension = array(); $groups = array_unique(professions::GetGroupIdsByProfs($ga_profs)); foreach ($groups as $group) { if ($group > 0) { $dimension[] = '[g' . $group . ']'; } } foreach ($ga_profs as $prof) { if ($prof > 0) {
</div> <div class="fl2_offer_header"> <?php if ($eprj['no_risk'] == "t") { ?> <a href="/norisk2/" title="Безопасная Сделка"><img src="/images/shield.gif" alt="Безопасная Сделка" /></a><?php } ?> <?php echo $eprj['name']; ?> </div> <div class="fl2_offer_content"> <?php echo strip_tags(reformat(LenghtFormatEx($eprj['descr'], 300), 96, 1)); ?> </div> <?php if ($eprj['attach']) { ?> <div class="flw_offer_attach"> <a href="/users/<?php echo $eprj['login']; ?> /upload/<?php echo $eprj['attach']; ?> ">Загрузить</a> <!-- (Rar, 25кб) --> </div>
public function getTitle() { return LenghtFormatEx(reformat($this->title, 20, 0, 1), 80); }
if ($el['is_blocked'] == 't') { echo 'javascript:void(0)'; } else { echo $url; } ?> " class="b-pic__lnk <?php if ($el['is_blocked'] == 't') { ?> b-pic__lnk_color_de2c2c b-pic__lnk_line_through b-pic__lnk_cursor_default<?php } ?> "> <?php echo LenghtFormatEx(reformat($el['title'], 20, 0, 1), 80); ?> </a> <?php if ($is_owner || $is_perm) { ?> <br/> <?php if ($el['is_blocked'] == 't') { ?> Заблокирована модератором <?php if ($el['reason']) { ?>
/** * Создает csv файл для AdWords * * @param $filename string полный путь к файлу куда webdav должен сохранить получившийся csv * @return boolean успех */ function adWords($filename) { global $DB; $profs = array(); $groups = array(); $rows = $DB->rows("SELECT * FROM professions"); foreach ($rows as $row) { $profs[$row['id']] = $row; } $rows = $DB->rows("SELECT * FROM prof_group"); foreach ($rows as $row) { $groups[$row['id']] = $row; } $sql = "\n SELECT\n p.id, e.compname, country.country_name, city.city_name,\n date_trunc('seconds', p.create_date) c_date, p.name, p.descr, p.cost, p.currency, p.priceby,\n array_agg(pts.category_id) cats, array_agg(pts.subcategory_id) subcats\n FROM\n projects p\n INNER JOIN\n employer e ON e.uid = p.user_id AND e.is_banned = B'0'\n LEFT JOIN\n country ON country.id = p.country\n LEFT JOIN\n city ON city.id = p.city\n LEFT JOIN\n project_to_spec pts ON pts.project_id = p.id\n LEFT JOIN\n projects_blocked pb ON pb.project_id = p.id\n WHERE\n /*( p.moderator_status <> 0 OR p.moderator_status IS NULL ) AND*/ \n pb.project_id IS NULL \n AND p.post_date > DATE_TRUNC('day', now() - interval '2 weeks')\n GROUP BY\n p.id, e.compname, country.country_name, city.city_name, c_date, p.name, p.descr, p.cost, p.currency, p.priceby\n ORDER BY\n id DESC\n "; $tmpfile = "/var/tmp/adwords.csv"; $fp = fopen($tmpfile, "a"); $res = $DB->query($sql); $c = 0; while ($row = pg_fetch_assoc($res)) { $data = array(); // ссылка $data['url'] = $GLOBALS['host'] . '/projects/' . $row['id'] . '/' . translit(strtolower(htmlspecialchars_decode($row['name'], ENT_QUOTES))) . '.html'; // цена if (!empty($row['cost'])) { switch ($row['currency']) { case 0: $cost = "{$row['cost']}\$"; break; case 1: $cost = "€{$row['cost']}"; break; case 2: $cost = "{$row['cost']} руб."; break; case 4: $cost = "{$row['cost']} FM"; break; } switch ($row['priceby']) { case 1: $priceby = 'за час'; break; case 2: $priceby = 'за день'; break; case 3: $priceby = 'за месяц'; break; case 4: $priceby = 'за проект'; break; } $data['Wage'] = "{$cost} {$priceby}"; } else { $data['Wage'] = 'По договоренности'; } // специализация (если несколько, берем только первую) $cats = $DB->array_to_php($row['cats']); $subcats = $DB->array_to_php($row['subcats']); $data['Vacancy'] = ''; $data['Vacancy_title'] = ''; $data['Category 1'] = ''; $data['Category 2'] = ''; if ($cats[0]) { $data['Vacancy'] = $groups[(int) $cats[0]]['name_case']; $data['Category 1'] = $groups[(int) $cats[0]]['name']; $data['Category 1'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Category 1']); $data['Category 1'] = preg_replace("/\\s{2,}/", " ", $data['Category 1']); $data['Category 1'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Category 1']); } else { $data['Category 1'] = 'Прочее'; } if ($subcats[0]) { $data['Vacancy'] = $profs[(int) $subcats[0]]['name_case']; $data['Category 2'] = $profs[(int) $subcats[0]]['name']; $data['Category 2'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Category 2']); $data['Category 2'] = preg_replace("/\\s{2,}/", " ", $data['Category 2']); $data['Category 2'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Category 2']); } else { $data['Category 2'] = $data['Category 1']; } if (empty($data['Vacancy'])) { $data['Vacancy'] = 'Прочее'; } else { $data['Vacancy'] = preg_replace("/[\\.\\,\\_\\\\\\/\\*\\;\\:\\?]+/", " ", $data['Vacancy']); $data['Vacancy'] = preg_replace("/\\s{2,}/", " ", $data['Vacancy']); $data['Vacancy'] = preg_replace("/[^-A-Za-zА-Яа-яЁё0-9\\s]+/", "", $data['Vacancy']); } $data['Vacancy_title'] = LenghtFormatEx($data['Vacancy'], 30, ''); $data['vacancy_id'] = $row['id']; // сохраняем if (!$c) { $rowsNames = array_keys($data); $dataStr = implode(',', $rowsNames) . "\r\n"; fwrite($fp, chr(255) . chr(254) . iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr)); } $dataStr = implode(',', $data) . "\r\n"; fwrite($fp, iconv('CP1251', 'UTF-16LE//TRANSLIT', $dataStr)); $c++; } fclose($fp); $path = pathinfo($filename); $oldFile = new CFile(); $newFile = new CFile(array('tmp_name' => $tmpfile, 'name' => NULL, 'size' => filesize($tmpfile))); $oldFile->server_root = 1; $newFile->server_root = 1; $oldFile->Delete(0, $path['dirname'] . '/', $path['basename']); $newFile->max_size = 1024 * 1048576; $newFile->MoveUploadedFile($path['dirname'] . '/'); $newFile->Rename($filename); unlink($tmpfile); return true; }
/** * Скрывает или отображает платные проекты. * * @see projects_filter::ShowClosedProjects() * @see projects_filter::initClosedProjects() * * @param string $id id определенного или all для всех * @param string $type скрыть (hide) или показать (unhide) * @param int $kind тип текущей закладки главной страницы (см. new_projects::getProjects()) * @param int $page номер текущей страницы. * @param bool $filter включен ли фильтр у юзера. * * @return object xajaxResponse */ function _HideProject($id, $type, $kind, $page, $filter) { session_start(); $objResponse = new xajaxResponse(); $all = $id == 'all'; $id = (int) $id; $uid = $_SESSION['uid']; if ($type == 'hide') { $prj = new new_projects(); $content = $prj->SearchDB((int) $kind, 2, 0, $uf, true, true); $prjs = $prj->getProjects($num_prjs, (int) $kind, 2, true, $uf, true, true); $num = 0; $nDH = $nH; $_SESSION['ph'][$id] = base64_encode(projects::GetField($id, 'name')); $_SESSION['top_payed']--; $objResponse->assign("project-item{$id}", 'outerHTML', ''); if ($filter) { $prj_filter = new projects_filters(); $uf = $prj_filter->GetFilter($uid, $error); } if ($prjs[$num]) { $this_kind = $prjs[$num]['kind']; $this_uid = get_uid(false); $this_pro_last = $_SESSION['pro_last']; $this_is_pro = payed::CheckPro($_SESSION['login']); $this_edit_mode = hasPermissions('projects'); if ($this_uid) { $this_user_role = $_SESSION['role']; } $this_project = $prjs[$num]; $row = $this_project; if ($this_edit_mode || $this_project['kind'] == 2 || $this_project['user_id'] == $this_uid || $this_project['offer_id'] || $this_pro_last) { $this_show_data = 1; $row['show_data'] = 1; } else { $this_show_data = 0; $row['show_data'] = 0; } $descr = $row['descr']; $descr = preg_replace("/^ /", "", $descr); $descr = preg_replace("/(\n) /", "\$1", $descr); $descr = reformat(strip_tags(LenghtFormatEx($descr, 180), "<br />"), 50, 1, 0, 1); $descr = preg_replace("//", " ", $descr); $row['descr'] = $descr; $row['t_is_payed'] = $this_project['payed'] && $this_project['kind'] != 2 && $this_project['kind'] != 7; $row['t_is_contest'] = $this_project['kind'] == 2 || $this_project['kind'] == 7; $row['t_pro_only'] = $this_project['pro_only'] == "t"; $row['t_prefer_sbr'] = $this_project['prefer_sbr'] == "t"; $row['priceby'] = $this_project['priceby']; $row['t_is_adm'] = hasPermissions('projects'); $row['t_is_ontop'] = strtotime($this_project['top_to']) >= time(); $row['unread'] = (int) $this_project['unread_p_msgs'] + (int) $this_project['unread_c_msgs'] + (int) $this_project['unread_c_prjs']; $row['t_is_proonly'] = $this_project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this_edit_mode && $this_uid != $this_project['user_id']; $row['friendly_url'] = getFriendlyURL('project', array('id' => $row['id'], 'name' => $row['name'])); $attaches = projects::GetAllAttach($this_project['id']); $attaches = !$attaches ? array() : $attaches; foreach ($attaches as $k => $a) { $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']); $attaches[$k] = $a; } $row['attaches'] = $this_project['attaches'] = $attaches; $is_ajax = true; $can_change_prj = hasPermissions("projects"); ob_start(); require $_SERVER['DOCUMENT_ROOT'] . '/projects/tpl.lenta-item.php'; $prj_html = ob_get_contents(); ob_end_clean(); $objResponse->script('ndiv = new Element("div", {id: "project-item' . $prjs[$num]['id'] . '", class: "b-post b-post_pad_10_15_15_20 b-post_margleft_-20 b-post_margright_-15 b-post_margbot_15 b-layout b-post_relative b-post_overflow_hidden' . ($row['is_color'] == 't' ? ' b-post_bg_fffded' : '') . '"});'); $objResponse->script('ndiv.inject($("projects-list").getLast("div[id^=project-item]"), "after");'); $objResponse->assign("project-item" . $prjs[$num]['id'], "innerHTML", $prj_html); } } else { if ($all && $_SESSION['ph']) { $nDH = -1 * $nH * count($_SESSION['ph']); unset($_SESSION['ph']); } else { $nDH = -1 * $nH; unset($_SESSION['ph'][$id]); if (!$_SESSION['ph']) { unset($_SESSION['ph']); } } if ($filter) { $prj_filter = new projects_filters(); $uf = $prj_filter->GetFilter($uid, $error); } $prj = new new_projects(); $content = $prj->SearchDB((int) $kind, (int) $page, 0, $uf, true, true); $objResponse->assign("projects-list", "innerHTML", $content); } if ($_SESSION['ph']) { $ccph = array_keys($_SESSION['ph']); } setcookie("ph[{$uid}]", $ccph ? implode(',', $ccph) : '', time() + 60 * 60 * 24 * 30, '/'); if ($kind == 2 || $kind == 7) { $prjWord_1 = 'скрытый конкурс'; $prjWord_2 = 'скрытых конкурса'; $prjWord_5 = 'скрытых конкурсов'; } elseif ($kind == 4) { $prjWord_1 = 'скрытая вакансия'; $prjWord_2 = 'скрытых вакансии'; $prjWord_5 = 'скрытых вакансий'; } else { $prjWord_1 = 'скрытый проект'; $prjWord_2 = 'скрытых проекта'; $prjWord_5 = 'скрытых проектов'; } $cnt = ""; if (sizeof($_SESSION['ph']) && $_SESSION['uid']) { $cnt = sizeof($_SESSION['ph']) . " " . ending(sizeof($_SESSION['ph']), $prjWord_1, $prjWord_2, $prjWord_5); } $objResponse->assign("hide_project_count", "innerHTML", $cnt); // если до этого проекты отображались в режиме "Только название", то сворачиваем их $objResponse->call("rollProjects"); return $objResponse; }
/** * Функция генерации ленты проектов. * * @param int $num_prjs проектов на странице * @param array $projects массив проектов (результат работы projects::GetProjects()) * @param int $kind закладка * @param int $page номер страницы * @param inetger $is_ajax если функция вызвана через ajax @see JS seo_print(); * * @return HTML */ public function ShowProjects($num_prjs, $projects, $kind, $page, $filter, $is_ajax) { $this->projects = $projects; $this->num_prjs = $num_prjs; $this->kind = $this_kind = $kind; $this->page = $this_page = $page == '' ? 1 : $page; $this->pages = ceil($this->num_prjs / new_projects::PAGE_SIZE); $this->filter = $this_filter = (int) ($filter && $filter['active'] == 't'); $this->uid = $this_uid = get_uid(false); $this->pro_last = $this_pro_last = $_SESSION['pro_last']; $this->is_pro = $this_is_pro = payed::CheckPro($_SESSION['login']); $this->edit_mode = $this_edit_mode = hasPermissions('projects'); if ($this->uid) { $this->user_role = $this_user_role = $_SESSION['role']; } $outHTML = ''; $outHTML .= $this->ShowHeader(); $list = array(); if ($projects) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stop_words.php'; $stop_words = new stop_words(hasPermissions('projects')); foreach ($projects as $i => $project) { $this->project = $project; $list[$i] = $project; if ($this->edit_mode || $this->project['kind'] == 2 || $this->project['user_id'] == $this->uid || $this->project['offer_id'] || $this->pro_last) { $this->show_data = 1; $list[$i]['show_data'] = 1; } else { $this->show_data = 0; $list[$i]['show_data'] = 0; } $descr = $list[$i]['descr']; $descr = $list[$i]['moderator_status'] === '0' && $list[$i]['kind'] != 4 && $list[$i]['is_pro'] != 't' ? $stop_words->replace($descr) : $descr; $descr = preg_replace('/^ /', "", $descr); $descr = preg_replace("/(\n) /", "\$1", $descr); $descr = LenghtFormatEx($descr, 180); $descr = htmlspecialchars($descr, ENT_QUOTES, 'CP1251', false); $descr = reformat($descr, 50, 1, 0, 1); $descr = preg_replace("//", ' ', $descr); $list[$i]['name'] = htmlspecialchars($list[$i]['name'], ENT_QUOTES, 'CP1251', false); $list[$i]['descr'] = $descr; $list[$i]['t_is_payed'] = $this->project['payed'] && $this->project['kind'] != 2 && $this->project['kind'] != 7 && $this->project['kind'] != 4; $list[$i]['t_is_contest'] = $this->project['kind'] == 2 || $this->project['kind'] == 7; $list[$i]['t_pro_only'] = $this->project['pro_only'] == 't'; $list[$i]['t_verify_only'] = $this->project['verify_only'] == 't'; $list[$i]['t_prefer_sbr'] = $this->project['prefer_sbr'] == 't'; $list[$i]['priceby'] = $this->project['priceby']; $list[$i]['t_is_adm'] = hasPermissions('projects'); $list[$i]['t_is_ontop'] = strtotime($this->project['top_to']) >= time(); $list[$i]['unread'] = (int) $this->project['unread_p_msgs'] + (int) $this->project['unread_c_msgs'] + (int) $this->project['unread_c_prjs']; $list[$i]['t_is_proonly'] = $this->project['pro_only'] == 't' && !$_SESSION['pro_last'] && !$this->edit_mode && $this->uid != $this->project['user_id']; $list[$i]['friendly_url'] = getFriendlyURL('project', array('id' => $this->project['id'], 'name' => $this->project['name'])); $attaches = projects::GetAllAttach($this->project['id']); $attaches = !$attaches ? array() : $attaches; foreach ($attaches as $k => $a) { $a['virus'] = is_null($a['virus']) ? $a['virus'] : bindec($a['virus']); $attaches[$k] = $a; } $list[$i]['attaches'] = $this->project['attaches'] = $attaches; $list[$i]['view_cnt'] = projects::getProjectViews($this->project['id']); } } elseif ($page == 1) { $outHTML .= '<div class="project-preview">Ничего не найдено</div>'; } $kind = $this->kind; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/professions.php'; switch ($kind) { case 0: case 1: $rss_link = 'projects.xml'; break; case 2: $rss_link = 'competition.xml'; break; case 4: $rss_link = 'office.xml'; break; case 6: $rss_link = 'pro.xml'; break; case 5: $rss_link = 'all.xml'; break; default: $rss_link = 'all.xml'; break; } $isPrjOpened = isset($_COOKIE['isPrjOpened']) ? $_COOKIE['isPrjOpened'] : true; ob_start(); include ABS_PATH . $this->template; $out = ob_get_clean(); if ($page <= $this->pages) { $out .= '<!--data_found-->'; } return $out; }