/*if ( $theme['moderator_status'] === '0' ) { continue; }*/ ?> <item> <title><?php echo preg_replace(array("/&/", "/</", "/>/"), array("&", "<", ">"), html_entity_decode($theme['title'], ENT_QUOTES, 'cp1251')); ?> </title> <link><?php echo $host; echo getFriendlyUrl('blog', $theme['thread_id']); ?> </link> <description><![CDATA[<?php echo xmloutofrangechars(reformat($theme['msgtext'], 96, 1)); ?> ]]></description> <guid><?php echo md5($theme['post_time'] . '-' . $theme['id']); ?> </guid> <pubDate><?php echo date("D, d M Y H:i:s", strtotimeEx($theme['post_time'])) . " GMT+3"; ?> </pubDate> <comments><?php echo $host; echo getFriendlyUrl('blog', $theme['thread_id']); ?> </comments>
</link> <width>113</width> <height>18</height> </image> <managingEditor>info@fl.ru</managingEditor> <webMaster>info@fl.ru</webMaster> <?php if ($prjs) { foreach ($prjs as $ikey => $prj) { /*if ( $prj['moderator_status'] === '0' ) { continue; }*/ $prj['descr'] = str_replace('"', '"', $prj['descr']); $prj['descr'] = xmloutofrangechars($prj['descr']); $prj['name'] = html_entity_decode($prj['name'], ENT_QUOTES, 'cp1251'); $prj['name'] = xmloutofrangechars($prj['name']); $prj_cost = str_replace('€', 'Euro', view_cost2($prj['cost'], '', '', false, $prj['currency'])); $prj_link = HTTP_PREFIX . $_SERVER['HTTP_HOST'] . getFriendlyUrl('project', $prj['id']); ?> <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') { ?>
/** * Создает xml файл для Jooble.ru * * @param $filename string полный путь к файлу куда webdav должен сохранить получившийся xml * @param string $interval Интервал (1 day, 2 days, 1 month) * @return text $filename полный путь к файлу куда webdav должен сохранить получившийся xml */ function joobleGenerateRss($filename, $prjs) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/project_exrates.php"; $project_exRates = project_exrates::GetAll(); $exch = array(1 => 'FM', 'USD', 'Euro', 'Руб'); $translate_exRates = array(0 => 2, 1 => 3, 2 => 4, 3 => 1); $xml = ''; $host = str_replace(HTTP_PREFIX, '', $GLOBALS['host']); $HTTP_PREFIX = "https://"; $xml = '<?xml version="1.0" encoding="utf-8"?>' . "\n"; $xml .= '<source creation-time="' . date('Y-m-d H:i:s') . ' GMT+3" host="' . $host . '">' . "\n"; $xml .= ' <jobs>' . "\n"; foreach ($prjs as $row) { $city = $row['city_name'] ? $row['city_name'] : ''; $location = $row['country_name'] ? $row['country_name'] : ''; $location .= $location ? ', ' . $city : $city; $location = preg_replace("/, \$/", "", $location); $location = html_entity_decode($location, ENT_QUOTES, 'cp1251'); if (!$location) { $location = 'Россия'; } $row['categories'] = self::getProjectCategories($row['id']); if (!empty($row['categories'])) { $name_case = false; foreach ($row['categories'] as $cat) { if ((int) $cat['subcategory_id'] > 0) { if ($cat['name_case']) { $name_case[] = $cat['name_case']; } } } if ($name_case) { $name_case = implode(". ", $name_case) . ". "; } } $cat = html_entity_decode($row['cat_name'], ENT_QUOTES, 'cp1251'); $name = html_entity_decode($name_case . $row['project_name'], ENT_QUOTES, 'cp1251'); unset($name_case); $descr = html_entity_decode($row['descr'], ENT_QUOTES, 'cp1251'); $contacts = $row['e_login']; $contacts = $row['e_surname'] ? html_entity_decode($row['e_surname'], ENT_QUOTES, 'cp1251') . ', ' . $contacts : $contacts; $contacts = $row['e_name'] ? html_entity_decode($row['e_name'], ENT_QUOTES, 'cp1251') . ' ' . $contacts : $contacts; $currency = ''; switch ($row['currency']) { case 0: $currency = '$'; break; case 1: $currency = ' Euro'; break; case 2: $currency = ' Руб.'; break; case 3: $currency = ' Руб.'; break; } if ($row['cost'] && $row['currency'] == 3) { $row['cost'] = preg_replace("/\\.00\$/", "", sprintf("%.2f", round($row['cost'] * $project_exRates[trim($translate_exRates[$row['currency']]) . '4'], 2))); } $xml .= ' <job id="' . $row['id'] . '"> <link>' . $HTTP_PREFIX . $host . getFriendlyURL('project', $row['id']) . '</link> '; $name .= ' (удаленно)'; $xml .= ' <name>' . xmloutofrangechars(iconv('CP1251', 'UTF-8', htmlspecialchars($name, ENT_QUOTES))) . '</name>'; $xml .= '<description>' . xmloutofrangechars(iconv('CP1251', 'UTF-8', htmlspecialchars($descr, ENT_QUOTES))) . '</description> <region>' . iconv('CP1251', 'UTF-8', htmlspecialchars($location, ENT_QUOTES)) . "</region>\n <salary>" . ($row['cost'] ? iconv('CP1251', 'UTF-8', $row['cost'] . $currency) : '') . "</salary>\n <contacts>" . iconv('CP1251', 'UTF-8', $contacts) . "</contacts>\n <company></company>\n <expire>" . ($row['kind'] == 7 ? dateFormat("d.m.Y", $row['end_date']) : '') . "</expire>\n <updated>" . dateFormat("d.m.Y", $row['create_date']) . "</updated>\n </job>\n"; } $xml .= "</jobs>\n</source>"; $file = new CFile(); return $file->putContent($filename, $xml); }
if ($top['user_is_banned'] && !($user_mod & commune::MOD_ADMIN) || $top['member_is_banned'] && !($user_mod & (commune::MOD_ADMIN | commune::MOD_COMM_AUTHOR | commune::MOD_COMM_MANAGER))) { continue; } ?> <item> <title><![CDATA[<?php echo xmloutofrangechars(html_entity_decode($top['title'], ENT_QUOTES, 'cp1251')); ?> ]]></title> <link><?php echo $host; echo getFriendlyURL("commune", $top['id']); ?> </link> <description><![CDATA[<?php echo xmloutofrangechars(reformat2($top['msgtext'], 96, 1)); ?> ]]></description> <pubDate><?php echo date("D, d M Y H:i:s", strtotime($top['created_time'])); ?> </pubDate> <author><?php echo $top['user_uname'] . ' ' . $top['user_usurname'] . ' [' . $top['user_login'] . ']'; ?> </author> <comments><?php echo $host; echo getFriendlyURL('commune', $top['id']); ?> </comments>
/** * Парсит HTML одного Предложения фрилансеров "Сделаю" * * @param array $aOne массив с данными комментария * @param int $status статус: 0 - не проверенно, 1 - утверждено, 2 - удалено * @param string $sKind опционально. тип записи * @param array $aStream данные о потоке * @param int $nCnt количество записей в потоке * @param int $nContentId идентификатор сущности из admin_contents (фактический из потоков, то есть со сборными) * @return string HTML */ function _parseSdelauOne($aOne = array(), $status = 0, $sKind = '0', $aStream = array(), $nCnt = 0, $nContentId = 0) { global $stop_words, $sTeam; $sReturn = ''; $sTitle = $status != 1 ? $stop_words->replace(htmlspecialchars(xmloutofrangechars($aOne['title']))) : htmlspecialchars(xmloutofrangechars($aOne['title'])); $sTitle = reformat($sTitle, 35, 0, 1); $sMessage = $status != 1 ? $stop_words->replace(htmlspecialchars(xmloutofrangechars($aOne['post_text']))) : htmlspecialchars(xmloutofrangechars($aOne['post_text'])); $sMessage = reformat($sMessage, 50); $sProf = xmloutofrangechars($aOne['src_name']) . ($aOne['profname'] != 'Нет специализации' ? ' → <a class="b-freelancer__link" href="/freelancers/' . $aOne['link'] . '/" target="_blank">' . $aOne['profname'] . '</a>' : ''); $aOne['is_sent'] = '0'; $aOne['context_code'] = '8'; $aOne['context_link'] = '/sdelau/#offer' . $aOne['id']; $aOne['context_title'] = xmloutofrangechars(htmlspecialchars($aOne['title'])) . ' ' . $aOne['usurname'] . ' [' . $aOne['login'] . ']'; $sPro = $aOne['is_pro'] == 't' ? preg_replace('#<a[^>]+>(.+)</a>#', '$1', view_pro2($aOne['is_pro_test'] == 't' ? true : false)) . ' ' : ''; $sJSParams = "{'content_id': " . $nContentId . ", 'stream_id': '{$aStream['stream_id']}', 'content_cnt': {$nCnt}, 'status': {$status}, 'is_sent': '{$aOne['is_sent']}'}"; $sEditIcon = _parseEditIcon('admEditSdelau', $aOne['id'], $status, $sKind, $sJSParams); $sReturn .= ' <div class="b-post b-post_bordtop_dfe3e4 b-post_padtop_15 b-post_marg_20_10" id="my_div_content_' . $aOne['content_id'] . '_' . $aOne['id'] . '_' . $sKind . '"> ' . _parseHidden($aOne, $sKind) . ' ' . _parseOkIcon($status, $aOne['content_id'], $aOne['id'], $sKind, $aOne['user_id']) . ' ' . _parsePostTime($status, $aOne['post_time']) . ' <div class="b-username b-username_padbot_5">' . ($aOne['is_team'] == 't' ? $sTeam : $sPro) . '<a class="b-username__link b-username__link_color_fd6c30 b-username__link_fontsize_11 b-username__link_bold" href="/users/' . $aOne['login'] . '" target="_blank">' . $aOne['uname'] . ' ' . $aOne['usurname'] . ' [' . $aOne['login'] . ']</a></div> ' . ($aOne['warn'] ? '<div class="b-username_padbot_5"><a onclick="parent.user_content.getUserWarns(' . $aOne['user_id'] . ');" href="javascript:void(0);" class="notice">Предупреждения: <span id="warn_' . $aOne['user_id'] . '_' . $aOne['content_id'] . '_' . $aOne['id'] . '">' . intval($aOne['warn']) . '</span></a></div>' : '<div class="b-username_padbot_5 user-notice">Предупреждений нет</div>') . ' ' . _parseMass($aOne, $status, $sKind) . ' <div class="b-post__txt b-post__txt_padbot_5 b-post__txt_fontsize_15"><span class="b-post__bold">Сделаю:</span> <a class="b-post__link b-post__link_fontsize_15" href="/users/' . $aOne['login'] . '" target="_blank">' . $sTitle . '</a></div> <div class="b-post__txt b-post__txt_padbot_5 b-post__txt_fontsize_15">' . $sMessage . '</div> <div class="b-post__txt b-post__txt_padtop_10 b-post__txt_fontsize_11"><span class="b-post__bold">Специализация:</span> ' . $sProf . '</div> ' . _parseDelIcons($aOne, 'user_id', $status, $sKind, $sJSParams, $sEditIcon) . ' </div>'; return $sReturn; }