<?php
-/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: map.inc.php,v 1.12 2005/01/06 13:35:11 henoheno Exp $
//
-// $Id: map.inc.php,v 1.11 2004/07/31 03:09:20 henoheno Exp $
-//
-/*
-¥×¥é¥°¥¤¥ó map
-
-¥µ¥¤¥È¥Þ¥Ã¥×(¤Î¤è¤¦¤Ê¤â¤Î)¤òɽ¼¨
-
-Usage : http://.../pukiwiki.php?plugin=map
-
-¥Ñ¥é¥á¡¼¥¿
-
-&refer=¥Ú¡¼¥¸Ì¾
- µ¯ÅÀ¤È¤Ê¤ë¥Ú¡¼¥¸¤ò»ØÄê
-
-&reverse=true
- ¤¢¤ë¥Ú¡¼¥¸¤¬¤É¤³¤«¤é¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¤«¤ò°ìÍ÷¡£
+// Site-map plugin
+/*
+ * ¥×¥é¥°¥¤¥ó map: ¥µ¥¤¥È¥Þ¥Ã¥×(¤Î¤è¤¦¤Ê¤â¤Î)¤òɽ¼¨
+ * Usage : http://.../pukiwiki.php?plugin=map
+ * ¥Ñ¥é¥á¡¼¥¿
+ * &refer=¥Ú¡¼¥¸Ì¾
+ * µ¯ÅÀ¤È¤Ê¤ë¥Ú¡¼¥¸¤ò»ØÄê
+ * &reverse=true
+ * ¤¢¤ë¥Ú¡¼¥¸¤¬¤É¤³¤«¤é¥ê¥ó¥¯¤µ¤ì¤Æ¤¤¤ë¤«¤ò°ìÍ÷¡£
*/
function plugin_map_action()
{
- global $vars,$whatsnew,$defaultpage;
-
- $reverse = array_key_exists('reverse',$vars);
-
- $refer = array_key_exists('refer',$vars) ? $vars['refer'] : '';
+ global $vars, $whatsnew, $defaultpage;
- if ($refer == '' or !is_page($refer))
- {
+ $reverse = isset($vars['reverse']);
+ $refer = isset($vars['refer']) ? $vars['refer'] : '';
+ if ($refer == '' || ! is_page($refer))
$vars['refer'] = $refer = $defaultpage;
- }
- $retval['msg'] = $reverse ? 'Relation map (link from)' : 'Relation map, from $1';
+ $retval['msg'] = $reverse ? 'Relation map (link from)' : 'Relation map, from $1';
$retval['body'] = '';
- $pages = array_values(array_diff(get_existpages(),array($whatsnew)));
+ $pages = array_values(array_diff(get_existpages(), array($whatsnew)));
$count = count($pages);
-
- if ($count == 0)
- {
+ if ($count == 0) {
$retval['body'] = 'no pages.';
return $retval;
}
// ¥Ú¡¼¥¸¿ô
- $retval['body'] .= "<p>\ntotal: $count page(s) on this site.\n</p>\n";
+ $retval['body'] .= '<p>' . "\n" . 'total: ' . $count .
+ ' page(s) on this site.' . "\n" . '</p>' . "\n";
// ¥Ä¥ê¡¼ºîÀ®
$nodes = array();
foreach ($pages as $page)
- {
- $nodes[$page] = & new MapNode($page,$reverse);
- }
+ $nodes[$page] = & new MapNode($page, $reverse);
- if ($reverse)
- {
+ if ($reverse) {
$keys = array_keys($nodes);
sort($keys);
$alone = array();
- $retval['body'] .= "<ul>\n";
- foreach ($keys as $page)
- {
- if (count($nodes[$page]->rels))
- {
- $retval['body'] .= $nodes[$page]->toString($nodes,1,$nodes[$page]->parent_id);
- }
- else
- {
+ $retval['body'] .= '<ul>' . "\n";
+ foreach ($keys as $page) {
+ if (! empty($nodes[$page]->rels)) {
+ $retval['body'] .= $nodes[$page]->toString($nodes, 1, $nodes[$page]->parent_id);
+ } else {
$alone[] = $page;
}
}
- $retval['body'] .= "</ul>\n";
- if (count($alone))
- {
- $retval['body'] .= "<hr />\n<p>no link from anywhere in this site.</p>\n";
- $retval['body'] .= "<ul>\n";
+ $retval['body'] .= '</ul>' . "\n";
+ if (! empty($alone)) {
+ $retval['body'] .= '<hr />' . "\n" . '<p>no link from anywhere in this site.</p>' . "\n";
+ $retval['body'] .= '<ul>' . "\n";
foreach ($alone as $page)
- {
- $retval['body'] .= $nodes[$page]->toString($nodes,1,$nodes[$page]->parent_id);
- }
- $retval['body'] .= "</ul>\n";
+ $retval['body'] .= $nodes[$page]->toString($nodes, 1, $nodes[$page]->parent_id);
+ $retval['body'] .= '</ul>' . "\n";
}
- }
- else
- {
+ } else {
$nodes[$refer]->chain($nodes);
- $retval['body'] .= "<ul>\n".$nodes[$refer]->toString($nodes)."</ul>\n";
- $retval['body'] .= "<hr /><p>not related from ".htmlspecialchars($refer)."</p>\n";
+ $retval['body'] .= '<ul>' . "\n" . $nodes[$refer]->toString($nodes) . '</ul>' . "\n";
+ $retval['body'] .= '<hr /><p>not related from ' . htmlspecialchars($refer) . '</p>' . "\n";
$keys = array_keys($nodes);
sort($keys);
- $retval['body'] .= "<ul>\n";
- foreach ($keys as $page)
- {
- if (!$nodes[$page]->done)
- {
+ $retval['body'] .= '<ul>' . "\n";
+ foreach ($keys as $page) {
+ if (! $nodes[$page]->done) {
$nodes[$page]->chain($nodes);
- $retval['body'] .= $nodes[$page]->toString($nodes,1,$nodes[$page]->parent_id);
+ $retval['body'] .= $nodes[$page]->toString($nodes, 1, $nodes[$page]->parent_id);
}
}
- $retval['body'] .= "</ul>\n";
+ $retval['body'] .= '</ul>' . "\n";
}
// ½ªÎ»
return $retval;
var $parent_id = 0;
var $done;
- function MapNode($page,$reverse=FALSE)
+ function MapNode($page, $reverse = FALSE)
{
global $script;
static $id = 0;
- $this->page = $page;
+ $this->page = $page;
$this->is_page = is_page($page);
- $this->cache = CACHE_DIR.encode($page);
- $this->done = !$this->is_page;
- $this->link = make_pagelink($page);
- $this->id = ++$id;
+ $this->cache = CACHE_DIR . encode($page);
+ $this->done = ! $this->is_page;
+ $this->link = make_pagelink($page);
+ $this->id = ++$id;
$this->rels = $reverse ? $this->ref() : $this->rel();
- $mark = $reverse ? '' : '<sup>+</sup>';
- $this->mark = "<a id=\"rel_{$this->id}\" href=\"$script?plugin=map&refer=".rawurlencode($this->page)."\">$mark</a>";
+ $mark = $reverse ? '' : '<sup>+</sup>';
+ $this->mark = '<a id="rel_' . $this->id . '" href="' . $script .
+ '?plugin=map&refer=' . rawurlencode($this->page) . '">' .
+ $mark . '</a>';
}
+
function ref()
{
$refs = array();
- if (file_exists($this->cache.'.ref'))
- {
- foreach (file($this->cache.'.ref') as $line)
- {
- $ref = explode("\t",$line);
+ $file = $this->cache . '.ref';
+ if (file_exists($file)) {
+ foreach (file($file) as $line) {
+ $ref = explode("\t", $line);
$refs[] = $ref[0];
}
sort($refs);
}
return $refs;
}
+
function rel()
{
$rels = array();
- if (file_exists($this->cache.'.rel'))
- {
- $file = file($this->cache.'.rel');
- $rels = explode("\t",trim($file[0]));
+ $file = $this->cache . '.rel';
+ if (file_exists($file)) {
+ $data = file($file);
+ $rels = explode("\t", trim($data[0]));
sort($rels);
}
return $rels;
}
- function chain(&$nodes)
+
+ function chain(& $nodes)
{
- if ($this->done)
- {
- return;
- }
- $this->done = TRUE;
+ if ($this->done) return;
- if ($this->parent_id == 0)
- {
- $this->parent_id = -1;
- }
+ $this->done = TRUE;
+ if ($this->parent_id == 0) $this->parent_id = -1;
- foreach ($this->rels as $page)
- {
- if (!array_key_exists($page,$nodes))
- {
- $nodes[$page] = &new MapNode($page);
- }
+ foreach ($this->rels as $page) {
+ if (! isset($nodes[$page])) $nodes[$page] = & new MapNode($page);
if ($nodes[$page]->parent_id == 0)
- {
$nodes[$page]->parent_id = $this->id;
- }
}
foreach ($this->rels as $page)
- {
$nodes[$page]->chain($nodes);
- }
}
- function toString(&$nodes,$level=1,$parent_id=-1)
+
+ function toString(& $nodes, $level = 1, $parent_id = -1)
{
- $indent = str_repeat(' ',$level);
+ $indent = str_repeat(' ', $level);
- if (!$this->is_page)
- {
- return $indent."<li>{$this->link}</li>\n";
+ if (! $this->is_page) {
+ return $indent . '<li>' . $this->link . '</li>' . "\n";
+ } else if ($this->parent_id != $parent_id) {
+ return $indent . '<li>' . $this->link .
+ '<a href="#rel_' . $this->id . '">...</a></li>' . "\n";
}
- else if ($this->parent_id != $parent_id)
- {
- return $indent."<li>{$this->link}<a href=\"#rel_{$this->id}\">...</a></li>\n";
- }
- $retval = $indent."<li>{$this->mark}{$this->link}\n";
- if (count($this->rels))
- {
+ $retval = $indent . '<li>' . $this->mark . $this->link . "\n";
+ if (! empty($this->rels)) {
$childs = array();
$level += 2;
foreach ($this->rels as $page)
- {
if ($this->parent_id != $nodes[$page]->id)
- {
- $childs[] = $nodes[$page]->toString($nodes,$level,$this->id);
- }
- }
- if (count($childs))
- {
- $retval .= $indent." <ul>\n".join('',$childs).$indent." </ul>\n";
- }
+ $childs[] = $nodes[$page]->toString($nodes, $level, $this->id);
+
+ if (! empty($childs))
+ $retval .= $indent . ' <ul>' . "\n" .
+ join('', $childs) . $indent . ' </ul>' . "\n";
}
- $retval .= $indent."</li>\n";
+ $retval .= $indent . '</li>' . "\n";
return $retval;
}