sibtracker/system/modules/rss.php
2019-05-18 13:46:03 +08:00

80 lines
2.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
if(!defined('DATALIFEENGINE')){die("Hacking attempt!");}
$rss_content = <<<XML
<?xml version="1.0" encoding="{$config['charset']}"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>{$config['home_title']}</title>
<link>{$config['http_home_url']}</link>
<language>ru</language>
<description>{$config['description']}</description>
<generator>Files-Sib.NET</generator>
XML;
if($doaction=="comments"){
if($id = intval($_GET['news'])){
$where = "AND post_id = '".intval($id)."'";
}else{$where = "";}
$sql_comments = "SELECT c.autor, c.text, c.post_id, c.autor, p.alt_name FROM " . PREFIX . "_comments c, " . PREFIX . "_post p WHERE c.post_id=p.id $where order by c.date desc limit 0,". $config['rss_comm_number'];
$sql_result = $db->query ($sql_comments);
$i = 0;
while ($row = $db->get_row ($sql_result)){
$i++;
$author = "<a href=\"".$config['http_home_url']."user/".urlencode($row['autor'])."/\">".$row['autor']."</a>";
$row['text'] = preg_replace ( "#\[hide\](.+?)\[/hide\]#is", "ТекÑ<EFBFBD>Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ длÑ<C2BB> зарегиÑ<C2B8>ÑрированнÑÑ…", $row['text'] );
$full_link = $config['http_home_url'] . $row['post_id'] . "-" . $row['alt_name'] . ".html";
$rss_content .= <<<XML
<item>
<title>#{$i}</title>
<link>{$full_link}</link>
<description><![CDATA[{$row['text']}<br><br><b>Àâòîð:</b> {$author}]]></description>
<author>{$row['autor']}</author>
</item>
XML;
}
} elseif ($doaction=="news") {
if($category_id = get_ID ( $cat_info, $_GET['category'])){
$get_cats = get_sub_cats ( $category_id );
if ($config['allow_multi_category']) {
$where_category = "AND category regexp '[[:<:]](" . $get_cats . ")[[:>:]]'";
} else {
$get_cats = str_replace ( "|", "','", $get_cats );
$where_category = "AND category IN ('" . $get_cats . "')";
}
} else $where_category = "";
$sql_select = "SELECT id, autor, date, short_story, title, category, alt_name, remote_addr FROM cms_post WHERE approve {$where_category}";
if ($config['rss_mtype']) $sql_select .= " AND allow_main=1";
$sql_select .= " ORDER BY " . $config['news_sort'] . " " . $config['news_msort'] . " LIMIT 0," . $config['rss_number'];
$sql_results = $db->query($sql_select);
$i = 0;
while($row = $db->get_row($sql_results)){
$i++;
$date = date( $row['date'] );
if( $row['remote_addr'] != "" ) {$full_link = $config['http_home_url'] . "out.php?url=" . rawurlencode( base64_encode( $row['remote_addr'] ) );
} else {$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";}
$rss_content .= <<<XML
<item>
<title>{$row['title']}</title>
<guid isPermaLink="true">{$full_link}</guid>
<link>{$full_link}</link>
<description><![CDATA[{$row['short_story']}]]></description>
<category><![CDATA[{category}]]></category>
<dc:creator>{$row['autor']}</dc:creator>
<pubDate>{$date}</pubDate>
</item>
XML;
}
}
$rss_content .= '</channel></rss>';
header( 'Content-type: application/xml' );
die($rss_content);
?>