예제 #1
0
        /*if ( $theme['moderator_status'] === '0' ) {
              continue;
          }*/
        ?>
    	<item>
    	<title><?php 
        echo preg_replace(array("/&/", "/</", "/>/"), array("&#x26;", "&#x3C;", "&#x3E;"), 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>
예제 #2
0
</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('&quot;', '"', $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;', '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') {
            ?>
예제 #3
0
 /**
  * Создает 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);
 }
예제 #4
0
    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>
예제 #5
0
/**
 * Парсит HTML одного Предложения фрилансеров "Сделаю"
 * 
 * @param  array $aOne массив с данными комментария
 * @param  int $status статус: 0 - не проверенно, 1 - утверждено, 2 - удалено
 * @param  string $sKind опционально. тип записи
 * @param  array $aStream данные о потоке
 * @param  int $nCnt количество записей в потоке
 * @param  int $nContentId идентификатор сущности из admin_contents (фактический из потоков, то есть со сборными)
 * @return string HTML
 */
function _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'] != 'Нет специализации' ? ' &rarr; <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)) . '&nbsp;' : '';
    $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">Предупреждения:&nbsp;<span id="warn_' . $aOne['user_id'] . '_' . $aOne['content_id'] . '_' . $aOne['id'] . '">' . intval($aOne['warn']) . '</span></a></div>' : '<div class="b-username_padbot_5 user-notice">Предупреждений нет</div>') . '
    ' . _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;
}