manager->plugin) { return; }
$component_list = $this->get_plugin_components($this->manager->plugin);
usort($component_list, array($this,'component_sort'));
foreach ($component_list as $component) {
if ($obj = & plugin_load($component['type'],$component['name']) === NULL) continue;
$this->details[] = array_merge($obj->getInfo(), array('type' => $component['type']));
unset($obj);
}
// review details to simplify things
foreach($this->details as $info) {
foreach($info as $item => $value) {
if (!isset($this->plugin_info[$item])) { $this->plugin_info[$item] = $value; continue; }
if ($this->plugin_info[$item] != $value) $this->plugin_info[$item] = '';
}
}
}
function html() {
// output the standard menu stuff
parent::html();
// sanity check
if (!$this->manager->plugin) { return; }
ptln('
');
ptln("
".$this->manager->getLang('plugin')." {$this->manager->plugin}
");
// collect pertinent information from the log
$installed = $this->plugin_readlog($this->manager->plugin, 'installed');
$source = $this->plugin_readlog($this->manager->plugin, 'url');
$updated = $this->plugin_readlog($this->manager->plugin, 'updated');
if (strrpos($updated, "\n") !== false) $updated = substr($updated, strrpos($updated, "\n")+1);
ptln("
",2);
ptln("- ".$this->manager->getLang('source').'
- '.($source ? $source : $this->manager->getLang('unknown'))."
",4);
ptln("- ".$this->manager->getLang('installed').'
- '.($installed ? $installed : $this->manager->getLang('unknown'))."
",4);
if ($updated) ptln("- ".$this->manager->getLang('lastupdate').'
- '.$updated."
",4);
ptln("
",2);
if (count($this->details) == 0) {
ptln("
".$this->manager->getLang('noinfo')."
",2);
} else {
ptln("
",2);
if ($this->plugin_info['name']) ptln("- ".$this->manager->getLang('name')."
- ".$this->out($this->plugin_info['name'])."
",4);
if ($this->plugin_info['date']) ptln("- ".$this->manager->getLang('date')."
- ".$this->out($this->plugin_info['date'])."
",4);
if ($this->plugin_info['type']) ptln("- ".$this->manager->getLang('type')."
- ".$this->out($this->plugin_info['type'])."
",4);
if ($this->plugin_info['desc']) ptln("- ".$this->manager->getLang('desc')."
- ".$this->out($this->plugin_info['desc'])."
",4);
if ($this->plugin_info['author']) ptln("- ".$this->manager->getLang('author')."
- ".$this->manager->email($this->plugin_info['email'], $this->plugin_info['author'])."
",4);
if ($this->plugin_info['url']) ptln("- ".$this->manager->getLang('www')."
- ".$this->manager->external_link($this->plugin_info['url'], '', 'urlextern')."
",4);
ptln("
",2);
if (count($this->details) > 1) {
ptln("
".$this->manager->getLang('components')."
",2);
ptln("
",2);
foreach ($this->details as $info) {
ptln("
",4);
ptln("- ".$this->manager->getLang('name')."
- ".$this->out($info['name'])."
",6);
if (!$this->plugin_info['date']) ptln("- ".$this->manager->getLang('date')."
- ".$this->out($info['date'])."
",6);
if (!$this->plugin_info['type']) ptln("- ".$this->manager->getLang('type')."
- ".$this->out($info['type'])."
",6);
if (!$this->plugin_info['desc']) ptln("- ".$this->manager->getLang('desc')."
- ".$this->out($info['desc'])."
",6);
if (!$this->plugin_info['author']) ptln("- ".$this->manager->getLang('author')."
- ".$this->manager->email($info['email'], $info['author'])."
",6);
if (!$this->plugin_info['url']) ptln("- ".$this->manager->getLang('www')."
- ".$this->manager->external_link($info['url'], '', 'urlextern')."
",6);
ptln("
",4);
}
ptln("
",2);
}
}
ptln("
");
}
// simple output filter, make html entities safe and convert new lines to