From: <ru...@us...> - 2009-06-04 11:41:43
|
Revision: 6873 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=6873&view=rev Author: rurban Date: 2009-06-04 11:40:42 +0000 (Thu, 04 Jun 2009) Log Message: ----------- support InlcudeTree with dtree Modified Paths: -------------- trunk/lib/plugin/SiteMap.php Added Paths: ----------- trunk/lib/plugin/IncludeTree.php Added: trunk/lib/plugin/IncludeTree.php =================================================================== --- trunk/lib/plugin/IncludeTree.php (rev 0) +++ trunk/lib/plugin/IncludeTree.php 2009-06-04 11:40:42 UTC (rev 6873) @@ -0,0 +1,81 @@ +<?php // -*-php-*- +rcs_id('$Id: IncludeTree.php 6186 2008-08-22 11:50:25Z vargenau $'); +/** + Copyright 2003,2004,2009 $ThePhpWikiProgrammingTeam + + This file is part of PhpWiki. + + PhpWiki is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + PhpWiki is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with PhpWiki; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/** + * Dynamic version of the IncludeSiteMap by Cuthbert Cat (cuthbertcat) + * with a category filter. + * + * Display an initially closed tree of all pages within certain categories. dhtml. + * On [+] open the subtree, on leaves (how to decide?) transclude parts of the page. + * Leave detection: more content than just plugins. + */ + +require_once('lib/PageList.php'); +require_once('lib/plugin/SiteMap.php'); + +class WikiPlugin_IncludeTree +extends WikiPlugin_SiteMap +{ + function getName () { + return _("IncludeSiteMap"); + } + + function getDescription () { + return _("Dynamic Category Tree"); + } + + function getVersion() { + return preg_replace("/[Revision: $]/", '', + "\$Revision: 6186 $"); + } + + function getDefaultArguments() { + return array('exclude' => '', + 'include_self' => 0, + 'noheader' => 0, + 'page' => '[pagename]', + 'description' => $this->getDescription(), + 'reclimit' => 2, + 'info' => false, + 'direction' => 'back', + 'firstreversed' => false, + 'excludeunknown' => true, + 'includepages' => 'words=100', + 'category' => '', + 'dtree' => true, + ); + } + + function run($dbi, $argstr, &$request, $basepage) { + return WikiPlugin_SiteMap::run($dbi, $argstr, $request, $basepage); + } +} + +// For emacs users +// Local Variables: +// mode: php +// tab-width: 8 +// c-basic-offset: 4 +// c-hanging-comment-ender-p: nil +// indent-tabs-mode: nil +// End: +?> Modified: trunk/lib/plugin/SiteMap.php =================================================================== --- trunk/lib/plugin/SiteMap.php 2009-06-04 11:39:26 UTC (rev 6872) +++ trunk/lib/plugin/SiteMap.php 2009-06-04 11:40:42 UTC (rev 6873) @@ -71,7 +71,9 @@ 'direction' => 'back', 'firstreversed' => false, 'excludeunknown' => true, - 'includepages' => '' // to be used only from the IncludeSiteMap plugin + 'includepages' => '', // only for IncludeSiteMap and IncludeTree + 'category' => '', // optional category filter (comma-delimited) + 'dtree' => false, // optional for IncludeTree ); } // info arg allows multiple columns @@ -175,8 +177,7 @@ $pagearr = array(); if ($direction == 'back') { - $pagearr = $this->recursivelyGetBackLinks($p, $pagearr, "*", - $limit); + $pagearr = $this->recursivelyGetBackLinks($p, $pagearr, "*", $limit); } else { $this->dbi = $dbi; @@ -189,12 +190,12 @@ reset($pagearr); if (!empty($includepages)) { // disallow direct usage, only via child class IncludeSiteMap - if (!isa($this,"WikiPlugin_IncludeSiteMap")) + if (!isa($this,"WikiPlugin_IncludeSiteMap") and !isa($this,"WikiPlugin_IncludeTree")) $includepages = ''; if (!is_string($includepages)) $includepages = ' '; // avoid plugin loader problems $loader = new WikiPluginLoader(); - $plugin = $loader->getPlugin('IncludePage',false); + $plugin = $loader->getPlugin($dtree ? 'DynamicIncludePage' : 'IncludePage', false); $nothing = ''; } @@ -230,4 +231,4 @@ // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil // End: -?> +?> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |