2 rcs_id('$Id: PluginManager.php,v 1.1 2002-12-30 11:52:20 carstenklapp Exp $');
6 class WikiPlugin_PluginManager
10 return _("PluginManager");
13 function getDescription () {
14 return _("Overview of the available PhpWikiPlugins");
17 function getDefaultArguments() {
21 function run($dbi, $argstr, $request) {
22 //extract($this->getArgs($argstr, $request));
24 $msg = HTML::p("PluginManager provides the WikiAdmin the list of PhpWikiPlugin~s on this wiki.");
26 if (! $request->_user->isadmin()) {
27 return $msg; // early return
31 $pd = new fileSet(PHPWIKI_DIR . '/lib/plugin', '*.php');
32 $plugins = $pd->getFiles();
35 $h->pushContent($msg);
36 $h->pushContent(HTML::h2(_("Plugins")));
39 $table = HTML::table(array('class' => "pagelist"));
40 global $WikiNameRegexp;
41 foreach($plugins as $pname) {
42 $pname = str_replace(".php", "", $pname);
43 $ppname = $pname . "Plugin";
44 $temppluginclass = "<? plugin " . /*"WikiPlugin_" .*/ $pname . " ?>";
45 $w = new WikiPluginLoader;
46 $p = $w->getPlugin($pname);
47 $desc = $p->getDescription();
51 if (preg_match("/^$WikiNameRegexp\$/", $pname) && $dbi->isWikiPage($pname))
52 $pnamelink = WikiLink($pname);
54 if (preg_match("/^$WikiNameRegexp\$/", $ppname) && $dbi->isWikiPage($ppname))
55 $plink = WikiLink($ppname);
57 // exclude actionpages and plugins starting with _ from page list
58 if ( !preg_match("/^_/", $pname) && !(@$request->isActionPage($pname))) //FIXME
59 $plink = WikiLink($ppname, 'unknown');
64 $group = (int)($row_no / 2); //_group_rows
65 $class = ($group % 2) ? 'oddrow' : 'evenrow';
68 $tr = HTML::tr(array('class' => $class));
69 $tr->pushContent(HTML::td($plink), HTML::td($desc));
70 $tr2 = HTML::tr(array('class' => $class));
71 $tr2->pushContent(HTML::td($pnamelink), HTML::td(" "));
73 $table->pushContent($tr, $tr2);
78 $tr = HTML::tr(array('class' => $class));
79 $tr->pushContent(HTML::td($pnamelink), HTML::td($desc));
80 $table->pushContent($tr);
83 $h->pushContent($table);
85 //$h->pushContent(HTML::h2(_("Disabled Plugins")));
96 // c-hanging-comment-ender-p: nil
97 // indent-tabs-mode: nil