Files
invbrain.neuroinf.jp/etc/makeRss.php
T

69 lines
1.8 KiB
PHP

<?php
$SITENAME = 'Invertebrate Brain Platform';
$HOSTNAME = 'invbrain';
$FQDN = $HOSTNAME.'.neuroinf.jp';
$URL = 'https://'.$FQDN;
$XOOPS_URL = $URL;
$JSONS = glob(__DIR__.'/../../static-contents/modules/newdb*/index.json');
$items = [];
foreach ($JSONS as $JSON) {
$data = json_decode(file_get_contents($JSON), true);
$mydirname = basename(dirname($JSON));
foreach ($data['data'] as $item) {
$items[] = [
'title' => mlang($item['label']),
'url' => $XOOPS_URL.'/modules/'.$mydirname.'/detail.php?id='.$item['id'],
'date' => $item['reg_date'],
'category' => $mydirname,
];
}
usort($items, function ($a, $b) { return $a['date'] === $b['date'] ? 0 : ($a['date'] > $b['date'] ? -1 : 1);});
$items = array_slice($items, 0, 10);
}
function mlang($text) {
$text = preg_replace('/\[ja\].*\[\/ja\]/Us', '', $text);
$text = preg_replace('/\[\/?en\]/', '', $text);
return $text;
}
//var_dump($items);
$xml = <<< HEAD
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="${XOOPS_URL}/rss.xml" rel="self" type="application/rss+xml" />
<title>${SITENAME}</title>
<link>${URL}</link>
<description>${SITENAME}</description>
<language>en</language>
HEAD;
foreach($items as $item) {
$title = htmlspecialchars($item['title'], ENT_QUOTES);
$url = htmlspecialchars($item['url'], ENT_QUOTES);
$pubDate = gmdate(DATE_RSS, $item['date']);
$category = htmlspecialchars($item['category'], ENT_QUOTES);
$xml .= <<< ITEM
<item>
<title>$title</title>
<link>$url</link>
<pubDate>$pubDate</pubDate>
<guid>$url</guid>
<description></description>
<category>$category</category>
</item>
ITEM;
}
$xml .= <<< FOOTER
</channel>
</rss>
FOOTER;
file_put_contents(__DIR__.'/rss.xml', $xml);