function plugin_showrss_convert() { static $_xml; if (!isset($_xml)) { $_xml = extension_loaded('xml'); } if (!$_xml) { return '#showrss: xml extension is not found<br />' . "\n"; } $num = func_num_args(); if ($num == 0) { return PLUGIN_SHOWRSS_USAGE . '<br />' . "\n"; } $argv = func_get_args(); $timestamp = FALSE; $cachehour = 0; $template = $uri = ''; switch ($num) { case 4: $timestamp = trim($argv[3]) == '1'; /*FALLTHROUGH*/ /*FALLTHROUGH*/ case 3: $cachehour = trim($argv[2]); /*FALLTHROUGH*/ /*FALLTHROUGH*/ case 2: $template = strtolower(trim($argv[1])); /*FALLTHROUGH*/ /*FALLTHROUGH*/ case 1: $uri = trim($argv[0]); } $class = $template == '' || $template == 'default' ? 'ShowRSS_html' : 'ShowRSS_html_' . $template; if (!is_numeric($cachehour)) { return '#showrss: Cache-lifetime seems not numeric: ' . htmlspecialchars($cachehour) . '<br />' . "\n"; } if (!class_exists($class)) { return '#showrss: Template not found: ' . htmlspecialchars($template) . '<br />' . "\n"; } if (!is_url($uri)) { return '#showrss: Seems not URI: ' . htmlspecialchars($uri) . '<br />' . "\n"; } if (!is_requestable($uri)) { return '#showrss: Prohibit fetching RSS from my server<br />' . "\n"; } list($rss, $time) = plugin_showrss_get_rss($uri, $cachehour); if ($rss === FALSE) { return '#showrss: Failed fetching RSS from the server<br />' . "\n"; } if ($timestamp > 0) { $time = '<p style="font-size:10px; font-weight:bold">Last-Modified:' . get_date('Y/m/d H:i:s', $time) . '</p>'; } $obj = new $class($rss); return $obj->toString($time); }
function plugin_showrss_convert() { if (func_num_args() == 0) { // 引数がない場合はエラー return "<p>showrss: no parameter(s).</p>\n"; } if (!extension_loaded('xml')) { // xml 拡張機能が有効でない場合。 return "<p>showrss: xml extension is not loaded</p>\n"; } $array = func_get_args(); $rssurl = $tmplname = $usecache = $usetimestamp = ''; switch (func_num_args()) { case 4: $usetimestamp = trim($array[3]); case 3: $usecache = $array[2]; case 2: $tmplname = strtolower(trim($array[1])); case 1: $rssurl = trim($array[0]); } // RSS パスの値チェック if (!PukiWikiFunc::is_url($rssurl)) { return '<p>showrss: syntax error. ' . htmlspecialchars($rssurl) . "</p>\n"; } $class = "ShowRSS_html_{$tmplname}"; if (!class_exists($class)) { $class = 'ShowRSS_html'; } list($rss, $time) = plugin_showrss_get_rss($rssurl, $usecache); if ($rss === FALSE) { return "<p>showrss: cannot get rss from server.</p>\n"; } $obj = new $class($rss); $timestamp = ''; if ($usetimestamp > 0) { $time = PukiWikiFunc::get_date('Y/m/d H:i:s', $time); $timestamp = "<p style=\"font-size:10px; font-weight:bold\">Last-Modified:{$time}</p>"; } return $obj->toString($timestamp); }
function plugin_showrss_convert() { global $script; $qm = get_qm(); $qt = get_qt(); if (func_num_args() == 0) { // 引数がない場合はエラー return $qm->replace('fmt_err_cvt', 'showrss', $qm->m['plg_showrss']['err_noparams']); } if (!extension_loaded('xml')) { // xml 拡張機能が有効でない場合。 return $qm->replace('fmt_err_cvt', 'showrss', $qm->m['plg_showrss']['err_ex_xml_load']); } //---- キャッシュのための処理を登録 ----- if ($qt->create_cache) { $args = func_get_args(); return $qt->get_dynamic_plugin_mark(__FUNCTION__, $args); } //------------------------------------ $array = func_get_args(); $rssurl = $tmplname = $showline = $usecache = $usetimestamp = ''; switch (func_num_args()) { case 5: $usetimestamp = trim($array[4]); case 4: $usecache = $array[3]; case 3: $showline = trim($array[2]); case 2: $tmplname = strtolower(trim($array[1])); case 1: $rssurl = trim($array[0]); } //自己参照を防止する $p = parse_url($rssurl); if (strpos($p['query'], 'cmd=blog_rss') === FALSE && strpos(dirname($rssurl) . '/index.php', $script) === 0) { return '<strong style="color:red">Error</strong><br />#showrss: 自分自身のRSSは読み込めません。#recent をお使いください。'; } // RSS パスの値チェック if (!is_url($rssurl)) { return $qm->replace('fmt_err_cvt', 'showrss', $qm->replace('plg_showrss.err_syntax', h($rssurl))); } $class = "ShowRSS_html_{$tmplname}"; if (!class_exists($class)) { $class = 'ShowRSS_html'; } list($rss, $time) = plugin_showrss_get_rss($rssurl, $usecache); if ($rss === FALSE) { return $qm->replace('fmt_err_cvt', 'showrss', $qm->m['plg_showrss.err_cannot_get']); } $obj = new $class($rss, $showline); $timestamp = ''; if ($usetimestamp > 0) { $time = get_date('Y/m/d H:i:s', $time); $timestamp = "<p style=\"font-size:10px; font-weight:bold\">Last-Modified:{$time}</p>"; } return $obj->toString($timestamp); }
function plugin_showrss_convert() { static $_xml; if (!isset($_xml)) { $_xml = extension_loaded('xml'); } if (!$_xml) { return '#showrss: xml extension is not found<br />' . "\n"; } $num = func_num_args(); if ($num == 0) { return '<p class="alert alert-success">' . PLUGIN_SHOWRSS_USAGE . '</p>' . "\n"; } $argv = func_get_args(); $timestamp = FALSE; $cachehour = 6; $template = 'default'; $uri = ''; switch ($num) { case 4: $timestamp = trim($argv[3]) == '1'; /*FALLTHROUGH*/ /*FALLTHROUGH*/ case 3: $cachehour = trim($argv[2]); /*FALLTHROUGH*/ /*FALLTHROUGH*/ case 2: $template = strtolower(trim($argv[1])); /*FALLTHROUGH*/ /*FALLTHROUGH*/ case 1: $uri = trim($argv[0]); } $class = empty($template) || $template == 'default' ? 'ShowRSS_html' : 'ShowRSS_html_' . $template; if (!is_numeric($cachehour)) { return '<p class="alert alert-warning">#showrss: Cache-lifetime seems not numeric: <var>' . htmlsc($cachehour) . '</var></p>' . "\n"; } if (!class_exists($class)) { return '<p class="alert alert-warning">#showrss: Template not found: <var>' . htmlsc($template) . '</var></p>' . "\n"; } if (!is_url($uri)) { return '<p class="alert alert-warning">#showrss: Seems not URI: <var>' . htmlsc($uri) . '</var></p>' . "\n"; } //if (! is_requestable($uri)) // return '<p class="alert alert-warning">#showrss: Prohibit fetching RSS from my server.</p>' . "\n"; list($rss, $time, $reason) = plugin_showrss_get_rss($uri, $cachehour); if (!$rss) { return '<p class="alert alert-warning">#showrss: ' . $reason . '</p>' . "\n"; } if ($timestamp > 0) { $time = '<p style="font-size:small; font-weight:bold; text-align:right;">Last-Modified:' . get_date('Y/m/d H:i:s', $time) . '</p>'; } $obj = new $class($rss); return $obj->toString($time); }