public function do_url() { $num = isset(Vars::$get['recent']) && Vars::$get['recent'] > 0 ? (int) Vars::$get['recent'] : 15; $db = DataBase::getinstance(); $query = "SELECT pagename,timestamp FROM page"; if (isset(Vars::$get['exp']) && trim(Vars::$get['exp']) != '') { $_inc = $db->escape(Vars::$get['exp']); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } else { if (isset(Vars::$get['include']) && trim(Vars::$get['include']) != '') { $_inc = $db->escape(glob2ereg(Vars::$get['include'])); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } } $query .= " ORDER BY timestamp DESC, pagename ASC LIMIT {$num}"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $item['timestamp'] = $row['timestamp']; $item['pagename'] = $row['pagename']; $item['url'] = getURL(Page::getinstance($row['pagename'])); $list[] = $item; } $smarty = $this->getSmarty(); $smarty->assign('rssurl', SCRIPTURL . '?' . htmlspecialchars($_SERVER['QUERY_STRING'])); $smarty->assign('sitename', SITENAME); $smarty->assign('baseurl', SCRIPTURL); $smarty->assign('list', $list); header('Content-Type: application/xml; charset=UTF-8'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $item['timestamp'][0]) . ' GMT'); $smarty->display('rss10.tpl.htm'); exit; }
public function do_url() { //numはフィードに含める項目数。 //GET引数でrecent(>0)が与えられればnumとして採用。そうでなければnum=15とする。 $num = isset(Vars::$get['recent']) && Vars::$get['recent'] > 0 ? (int) Vars::$get['recent'] : 15; $db = DataBase::getinstance(); $query = "SELECT pagename,timestamp FROM page"; //GET引数に正規表現exp(またはワイルドカードパターンinclude)が設定され、 //かつ空でないなら、exp(またはinclude)と一致するページだけを検索。 if (isset(Vars::$get['exp']) && trim(Vars::$get['exp']) != '') { $_inc = $db->escape(Vars::$get['exp']); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } else { if (isset(Vars::$get['include']) && trim(Vars::$get['include']) != '') { $_inc = $db->escape(glob2ereg(Vars::$get['include'])); $query .= " WHERE php('mb_ereg', '{$_inc}', pagename)"; } } $query .= " ORDER BY timestamp DESC, pagename ASC LIMIT {$num}"; $result = $db->query($query); $list = array(); while ($row = $db->fetch($result)) { $item['timestamp'] = $row['timestamp']; $item['pagename'] = $row['pagename']; $_p = Page::getinstance($row['pagename']); $item['url'] = getURL($_p); $item['description'] = htmlspecialchars(convert_Page($_p)); $list[] = $item; } $smarty = $this->getSmarty(); $smarty->assign('list', $list); $smarty->assign('rssurl', SCRIPTURL . '?' . htmlspecialchars($_SERVER['QUERY_STRING'])); $smarty->assign('sitename', SITENAME); $smarty->assign('baseurl', SCRIPTURL); header('Content-Type: application/xml; charset=UTF-8'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $item['timestamp'][0]) . ' GMT'); $smarty->display('rss20.tpl.htm'); exit; }