From 0fa7e7412840d37ea43846ceb51769c3f15fbaba Mon Sep 17 00:00:00 2001 From: henoheno Date: Thu, 6 Jan 2005 22:54:14 +0900 Subject: [PATCH] Cleanup. Shrink quotation. Shrink. Some Japanese => English. Added a blank line between functions. 'or' for boolean => '||. array_key_exists() => isset(). --- plugin/showrss.inc.php | 288 ++++++++++++++++++++----------------------------- 1 file changed, 119 insertions(+), 169 deletions(-) diff --git a/plugin/showrss.inc.php b/plugin/showrss.inc.php index ee565d3..ae14fcb 100644 --- a/plugin/showrss.inc.php +++ b/plugin/showrss.inc.php @@ -1,102 +1,72 @@ -// +// Show RSS plugin -/** - * - * showrss ¥×¥é¥°¥¤¥ó (Created by hiro_do3ob@yahoo.co.jp) - * - * ¥é¥¤¥»¥ó¥¹¤Ï PukiWiki ËÜÂΤÈƱ¤¸¤¯ GNU General Public License (GPL) ¤Ç¤¹¡£ - * http://www.gnu.org/licenses/gpl.txt - * - * pukiwikiÍѤΥץ饰¥¤¥ó¤Ç¤¹¡£ - * pukiwiki1.3.2°Ê¾å¤ÇÆ°¤¯¤È»×¤¤¤Þ¤¹¡£ - * - * º£¤Î¤È¤³¤íÆ°ºî¤µ¤»¤ë¤¿¤á¤Ë¤ÏPHP ¤Î xml extension ¤¬É¬¿Ü¤Ç¤¹¡£PHP¤ËÁȤ߹þ¤Þ¤ì¤Æ¤Ê¤¤¾ì¹ç¤Ï¤½¤Ã¤±¤Ê¤¤¥¨¥é¡¼¤¬½Ð¤ë¤È»×¤¤¤Þ¤¹¡£ - * Àµµ¬É½¸½ or ʸ»úÎó´Ø¿ô¤Ç¤Ê¤ó¤È¤«¤Ê¤é¤Ê¤¯¤â¤Ê¤µ¤²¤Ê¤ó¤Ç¤¹¤¬¼ûÍפäƤɤ줯¤é¤¤¤¢¤ë¤Î¤«¤ï¤«¤é¤¤¤Î¤ÇÊÝα¤Ç¤¹¡£ - * - * version: Id:showrss.inc.php,v 1.40 2003/03/18 11:52:58 hiro Exp - * +/* + * Created by hiro_do3ob@yahoo.co.jp + * Modified by PANDA , and PukiWiki Developer Team + * Licence: GPL, same as PukiWiki + * This plugin needs 'PHP xml extension' */ -// showrss¥×¥é¥°¥¤¥ó¤¬»ÈÍѲÄǽ¤«¤É¤¦¤«¤òɽ¼¨ +// Show this plugin is enable or not for this PukiWiki function plugin_showrss_action() { - $xml_extension = extension_loaded('xml'); + $xml_extension = extension_loaded('xml'); $mbstring_extension = extension_loaded('mbstring'); - $xml_msg = $xml_extension ? 'xml extension is loaded' : 'COLOR(RED){xml extension is not loaded}'; + $xml_msg = $xml_extension ? 'xml extension is loaded' : 'COLOR(RED){xml extension is not loaded}'; $mbstring_msg = $mbstring_extension ? 'mbstring extension is loaded' : 'COLOR(RED){mbstring extension is not loaded}'; - - $showrss_info = ''; - $showrss_info .= "| xml parser | $xml_msg |\n"; - $showrss_info .= "| multibyte | $mbstring_msg |\n"; + $showrss_info = + '| xml parser | ' . $xml_msg . ' |' . "\n" . + '| multibyte | ' . $mbstring_msg . ' |' . "\n"; return array('msg' => 'showrss_info', 'body' => convert_html($showrss_info)); } function plugin_showrss_convert() { - if (func_num_args() == 0) - { - // °ú¿ô¤¬¤Ê¤¤¾ì¹ç¤Ï¥¨¥é¡¼ - return "

showrss: no parameter(s).

\n"; - } - if (!extension_loaded('xml')) - { - // xml ³ÈÄ¥µ¡Ç½¤¬Í­¸ú¤Ç¤Ê¤¤¾ì¹ç¡£ - return "

showrss: xml extension is not loaded

\n"; + if (func_num_args() == 0) { + return '

showrss: no parameter(s).

' . "\n"; + } else if (! extension_loaded('xml')) { + return '

showrss: xml extension is not loaded

' . "\n"; } - $array = func_get_args(); + $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]); + 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 (!is_url($rssurl)) - { - return '

showrss: syntax error. '.htmlspecialchars($rssurl)."

\n"; - } + if (! is_url($rssurl)) + return '

showrss: syntax error. ' . htmlspecialchars($rssurl) . '

' . "\n"; - $class = "ShowRSS_html_$tmplname"; - if (!class_exists($class)) - { - $class = 'ShowRSS_html'; - } + $class = 'ShowRSS_html_' . $tmplname; + if (! class_exists($class)) $class = 'ShowRSS_html'; - list($rss,$time) = plugin_showrss_get_rss($rssurl,$usecache); + list($rss, $time) = plugin_showrss_get_rss($rssurl, $usecache); if ($rss === FALSE) - { - return "

showrss: cannot get rss from server.

\n"; - } + return '

showrss: cannot get rss from server.

' . "\n"; $obj = new $class($rss); $timestamp = ''; - if ($usetimestamp > 0) - { + if ($usetimestamp > 0) { $time = get_date('Y/m/d H:i:s',$time); - $timestamp = "

Last-Modified:$time

"; + $timestamp = '

Last-Modified:' . $time . '

'; } return $obj->toString($timestamp); } -// rssÇÛÎ󤫤éhtml¤òºî¤ë + +// RSSÇÛÎ󤫤éhtml¤òºî¤ë class ShowRSS_html { var $items = array(); @@ -104,37 +74,38 @@ class ShowRSS_html function ShowRSS_html($rss) { - foreach ($rss as $date=>$items) - { - foreach ($items as $item) - { - $link = $item['LINK']; + foreach ($rss as $date=>$items) { + foreach ($items as $item) { + $link = $item['LINK']; $title = $item['TITLE']; $passage = get_passage($item['_TIMESTAMP']); - $link = "$title"; + $link = '' . $title . ''; $this->items[$date][] = $this->format_link($link); } } } + function format_link($link) { - return "$link
\n"; + return $link . '
' . "\n"; } - function format_list($date,$str) + + function format_list($date, $str) { return $str; } + function format_body($str) { return $str; } + function toString($timestamp) { $retval = ''; foreach ($this->items as $date=>$items) - { - $retval .= $this->format_list($date,join('',$items)); - } + $retval .= $this->format_list($date, join('', $items)); $retval = $this->format_body($retval); return <<class}> @@ -143,65 +114,62 @@ $retval$timestamp EOD; } } + class ShowRSS_html_menubar extends ShowRSS_html { var $class = ' class="small"'; - function format_link($link) - { - return "
  • $link
  • \n"; + function format_link($link) { + return '
  • ' . $link . '
  • ' . "\n"; } - function format_body($str) - { - return "
      \n$str
    \n"; + + function format_body($str) { + return '
      ' . "\n" . $str . '
    ' . "\n"; } } + class ShowRSS_html_recent extends ShowRSS_html { var $class = ' class="small"'; - function format_link($link) - { - return "
  • $link
  • \n"; + function format_link($link) { + return '
  • ' . $link . '
  • ' . "\n"; } - function format_list($date,$str) - { - return "$date\n
      \n$str
    \n"; + + function format_list($date, $str) { + return '' . $date . '' . "\n" . + '
      ' . "\n" . $str . '
    ' . "\n"; } } + // rss¤ò¼èÆÀ¤¹¤ë -function plugin_showrss_get_rss($target,$usecache) +function plugin_showrss_get_rss($target, $usecache) { $buf = ''; $time = NULL; - if ($usecache) - { + if ($usecache) { // ´ü¸ÂÀÚ¤ì¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢ plugin_showrss_cache_expire($usecache); // ¥­¥ã¥Ã¥·¥å¤¬¤¢¤ì¤Ð¼èÆÀ¤¹¤ë $filename = CACHE_DIR . encode($target) . '.tmp'; - if (is_readable($filename)) - { - $buf = join('',file($filename)); + if (is_readable($filename)) { + $buf = join('', file($filename)); $time = filemtime($filename) - LOCALZONE; } } - if ($time === NULL) - { - // rssËÜÂΤò¼èÆÀ - $data = http_request($target); + + if ($time === NULL) { + $data = http_request($target); // rssËÜÂΤò¼èÆÀ if ($data['rc'] !== 200) - { - return array(FALSE,0); - } + return array(FALSE, 0); + $buf = $data['data']; $time = UTIME; // ¥­¥ã¥Ã¥·¥å¤òÊݸ - if ($usecache) - { + if ($usecache) { $fp = fopen($filename, 'w'); - fwrite($fp,$buf); + fwrite($fp, $buf); fclose($fp); } } @@ -210,28 +178,25 @@ function plugin_showrss_get_rss($target,$usecache) $obj = new ShowRSS_XML(); return array($obj->parse($buf),$time); } + // ´ü¸ÂÀÚ¤ì¤Î¥­¥ã¥Ã¥·¥å¤ò¥¯¥ê¥¢ function plugin_showrss_cache_expire($usecache) { $expire = $usecache * 60 * 60; // Hour $dh = dir(CACHE_DIR); - while (($file = $dh->read()) !== FALSE) - { - if (substr($file,-4) != '.tmp') - { + while (($file = $dh->read()) !== FALSE) { + if (substr($file, -4) != '.tmp') continue; - } + $file = CACHE_DIR.$file; $last = time() - filemtime($file); - if ($last > $expire) - { - unlink($file); - } + if ($last > $expire) unlink($file); } $dh->close(); } + // rss¤ò¼èÆÀ¡¦ÇÛÎó²½ class ShowRSS_XML { @@ -244,31 +209,31 @@ class ShowRSS_XML function parse($buf) { // ½é´ü²½ - $this->items = array(); - $this->item = array(); + $this->items = array(); + $this->item = array(); $this->is_item = FALSE; - $this->tag = ''; + $this->tag = ''; // ʸ»ú¥³¡¼¥É¸¡½Ð $this->encoding = mb_detect_encoding($buf); - if (!in_array(strtolower($this->encoding),array('us-ascii','iso-8859-1','utf-8'))) { - $buf = mb_convert_encoding($buf,'utf-8',$this->encoding); + if (! in_array(strtolower($this->encoding), array('us-ascii', 'iso-8859-1', 'utf-8'))) { + $buf = mb_convert_encoding($buf, 'utf-8', $this->encoding); $this->encoding = 'utf-8'; } $xml_parser = xml_parser_create($this->encoding); - xml_set_element_handler($xml_parser,array(&$this,'start_element'),array(&$this,'end_element')); - xml_set_character_data_handler($xml_parser,array(&$this,'character_data')); + xml_set_element_handler($xml_parser, array(& $this, 'start_element'), array(& $this, 'end_element')); + xml_set_character_data_handler($xml_parser, array(& $this, 'character_data')); - if (!xml_parse($xml_parser,$buf,1)) - { + if (! xml_parse($xml_parser, $buf, 1)) { return(sprintf('XML error: %s at line %d in %s', xml_error_string(xml_get_error_code($xml_parser)), - xml_get_current_line_number($xml_parser),$buf)); + xml_get_current_line_number($xml_parser), $buf)); } xml_parser_free($xml_parser); return $this->items; } + function escape($str) { // RSSÃæ¤Î "< > &" ¤Ê¤É¤ò °ìö "< > &" ¤ËÌᤷ¡¢ ¡ã "&" ¤¬ "&amp;" ¤Ë¤Ê¤Ã¤Á¤ã¤¦¤ÎÂкö @@ -283,82 +248,67 @@ class ShowRSS_XML } // ¥¿¥°³«»Ï - function start_element($parser,$name,$attrs) + function start_element($parser, $name, $attrs) { - if ($this->is_item) - { - $this->tag = $name; - } - else if ($name == 'ITEM') - { + if ($this->is_item) { + $this->tag = $name; + } else if ($name == 'ITEM') { $this->is_item = TRUE; } } + // ¥¿¥°½ªÎ» - function end_element($parser,$name) + function end_element($parser, $name) { - if (!$this->is_item or $name != 'ITEM') - { - return; - } - $item = array_map(array(&$this,'escape'),$this->item); + if (! $this->is_item || $name != 'ITEM') return; + $item = array_map(array(& $this, 'escape'), $this->item); $this->item = array(); - if (array_key_exists('DC:DATE',$item)) - { + if (isset($item['DC:DATE'])) { $time = plugin_showrss_get_timestamp($item['DC:DATE']); - } - else if (array_key_exists('PUBDATE',$item)) - { + + } else if (isset($item['PUBDATE'])) { $time = plugin_showrss_get_timestamp($item['PUBDATE']); - } - else if (array_key_exists('DESCRIPTION',$item) - and ($description = trim($item['DESCRIPTION'])) != '' - and ($time = strtotime($description)) != -1) - { - $time -= LOCALZONE; - } - else - { + + } else if (isset($item['DESCRIPTION']) && + ($description = trim($item['DESCRIPTION'])) != '' && + ($time = strtotime($description)) != -1) { + $time -= LOCALZONE; + + } else { $time = time() - LOCALZONE; } $item['_TIMESTAMP'] = $time; - $date = get_date('Y-m-d',$item['_TIMESTAMP']); + $date = get_date('Y-m-d', $item['_TIMESTAMP']); $this->items[$date][] = $item; - $this->is_item = FALSE; + $this->is_item = FALSE; } + // ¥­¥ã¥é¥¯¥¿ - function character_data($parser,$data) + function character_data($parser, $data) { - if (!$this->is_item) - { - return; - } - if (!array_key_exists($this->tag,$this->item)) - { - $this->item[$this->tag] = ''; - } + if (! $this->is_item) return; + if (! isset($this->item[$this->tag])) $this->item[$this->tag] = ''; $this->item[$this->tag] .= $data; } } + function plugin_showrss_get_timestamp($str) { if (($str = trim($str)) == '') - { return UTIME; - } - if (!preg_match('/(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(([+-])(\d{2}):(\d{2}))?/',$str,$matches)) - { + + $matches = array(); + if (! preg_match('/(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(([+-])(\d{2}):(\d{2}))?/', $str, $matches)) { $time = strtotime($str); return ($time == -1) ? UTIME : $time - LOCALZONE; } - $str = $matches[1]; - $time = strtotime($matches[1].' '.$matches[2]); - if (!empty($matches[3])) - { - $diff = ($matches[5]*60+$matches[6])*60; + $str = $matches[1]; + $time = strtotime($matches[1] . ' ' . $matches[2]); + if (! empty($matches[3])) { + $diff = ($matches[5] * 60 + $matches[6]) * 60; $time += ($matches[4] == '-' ? $diff : -$diff); } return $time; -- 2.11.0