69 lines
1.8 KiB
PHP
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);
|