2 rcs_id('$Id: PluginManager.php,v 1.2 2002-12-30 23:49:35 carstenklapp Exp $');
6 class WikiPlugin_PluginManager
10 return _("PluginManager");
13 function getDescription () {
14 return _("Overview of the available PhpWikiPlugins");
17 function getVersion() {
18 return preg_replace("/[Revision: $]/", '',
22 function getDefaultArguments() {
26 function run($dbi, $argstr, $request) {
27 //extract($this->getArgs($argstr, $request));
29 $msg = HTML::p("PluginManager provides the WikiAdmin the list of PhpWikiPlugin~s on this wiki.");
31 if (! $request->_user->isadmin()) {
32 return $msg; // early return
36 $pd = new fileSet(PHPWIKI_DIR . '/lib/plugin', '*.php');
37 $plugins = $pd->getFiles();
40 $h->pushContent($msg);
41 $h->pushContent(HTML::h2(_("Plugins")));
44 $table = HTML::table(array('class' => "pagelist"));
45 global $WikiNameRegexp;
46 foreach($plugins as $pname) {
47 $pname = str_replace(".php", "", $pname);
48 $temppluginclass = "<? plugin " . /*"WikiPlugin_" .*/ $pname . " ?>";
49 $w = new WikiPluginLoader;
50 $p = $w->getPlugin($pname);
51 $desc = $p->getDescription();
52 if (method_exists($p, 'getVersion')) {
53 $ver = $p->getVersion();
61 if (preg_match("/^$WikiNameRegexp\$/", $pname) && $dbi->isWikiPage($pname))
62 $pnamelink = WikiLink($pname);
64 $ppname = $pname . "Plugin";
65 if (preg_match("/^$WikiNameRegexp\$/", $ppname) && $dbi->isWikiPage($ppname))
66 $plink = WikiLink($ppname);
68 // exclude actionpages and plugins starting with _ from page list
69 if ( !preg_match("/^_/", $pname) && !(@$request->isActionPage($pname))) //FIXME
70 $plink = WikiLink($ppname, 'unknown');
75 $group = (int)($row_no / 2); //_group_rows
76 $class = ($group % 2) ? 'oddrow' : 'evenrow';
78 $tr = HTML::tr(array('class' => $class));
80 $tr->pushContent(HTML::td($plink), HTML::td($ver), HTML::td($desc));
81 $tr2 = HTML::tr(array('class' => $class));
82 $tr2->pushContent(HTML::td($pnamelink), HTML::td(" "), HTML::td(" "));
84 $table->pushContent($tr, $tr2);
88 $tr->pushContent(HTML::td($pnamelink), HTML::td($ver), HTML::td($desc));
89 $table->pushContent($tr);
92 $h->pushContent($table);
94 //$h->pushContent(HTML::h2(_("Disabled Plugins")));
104 // c-hanging-comment-ender-p: nil
105 // indent-tabs-mode: nil