diff options
author | Andreas Gohr <andi@splitbrain.org> | 2014-01-19 20:12:52 +0100 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2014-01-19 20:12:52 +0100 |
commit | 0f569f4da813eb51aa75b3fe4a6e5c871b688eea (patch) | |
tree | 7db6c06417b07bb1bbaa5319d9605dfdcb21e1b0 /lib/plugins/plugin/classes/ap_info.class.php | |
parent | 8426a3ee6fca3bd0fc582d6c405f5d30e12028d0 (diff) | |
parent | 30b90257784ae25a5e30c968b4c9391bb47ff1a1 (diff) | |
download | rpg-0f569f4da813eb51aa75b3fe4a6e5c871b688eea.tar.gz rpg-0f569f4da813eb51aa75b3fe4a6e5c871b688eea.tar.bz2 |
Merge branch 'extension_manager'
* extension_manager: (71 commits)
added plugins group to test
show a message when search returns no results
added missing localization
better filename parsing
use DOKU_LF
remove unneeded try/catch blocks
typo fix
purge cache only once on install
check for admin in AJAX backend
now use new core funtion to recursively delete
added status to info list of extension plugin
added css and html changes for RTL scripts to extension manager
added basic mobile styles to extension manager (not great, but makes things at least readable)
fixed and improved some HTML in extension manager
added git warning
fixed strict standard error and added some docblock
removed the old plugin manager
typo fix
protect authplain and current auth plugin
do not show updates for bundled plugins
...
Conflicts:
lib/plugins/plugin/lang/hu/admin_plugin.txt
lib/plugins/plugin/lang/hu/lang.php
Diffstat (limited to 'lib/plugins/plugin/classes/ap_info.class.php')
-rw-r--r-- | lib/plugins/plugin/classes/ap_info.class.php | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/lib/plugins/plugin/classes/ap_info.class.php b/lib/plugins/plugin/classes/ap_info.class.php deleted file mode 100644 index 89b78fa2d..000000000 --- a/lib/plugins/plugin/classes/ap_info.class.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php - -class ap_info extends ap_manage { - - var $plugin_info = array(); // the plugin itself - var $details = array(); // any component plugins - - function process() { - - // sanity check - if (!$this->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'],false,true)) === null) continue; - - $compname = explode('_',$component['name']); - if($compname[1]){ - $compname = '['.$compname[1].']'; - }else{ - $compname = ''; - } - - $this->details[] = array_merge( - $obj->getInfo(), - array( - 'type' => $component['type'], - 'compname' => $compname - )); - 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('<div class="pm_info">'); - ptln("<h2>".$this->manager->getLang('plugin')." {$this->manager->plugin}</h2>"); - - // 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("<dl>",2); - ptln("<dt>".$this->manager->getLang('source').'</dt><dd>'.($source ? $source : $this->manager->getLang('unknown'))."</dd>",4); - ptln("<dt>".$this->manager->getLang('installed').'</dt><dd>'.($installed ? $installed : $this->manager->getLang('unknown'))."</dd>",4); - if ($updated) ptln("<dt>".$this->manager->getLang('lastupdate').'</dt><dd>'.$updated."</dd>",4); - ptln("</dl>",2); - - if (count($this->details) == 0) { - ptln("<p>".$this->manager->getLang('noinfo')."</p>",2); - } else { - - ptln("<dl>",2); - if ($this->plugin_info['name']) ptln("<dt>".$this->manager->getLang('name')."</dt><dd>".$this->out($this->plugin_info['name'])."</dd>",4); - if ($this->plugin_info['date']) ptln("<dt>".$this->manager->getLang('date')."</dt><dd>".$this->out($this->plugin_info['date'])."</dd>",4); - if ($this->plugin_info['type']) ptln("<dt>".$this->manager->getLang('type')."</dt><dd>".$this->out($this->plugin_info['type'])."</dd>",4); - if ($this->plugin_info['desc']) ptln("<dt>".$this->manager->getLang('desc')."</dt><dd>".$this->out($this->plugin_info['desc'])."</dd>",4); - if ($this->plugin_info['author']) ptln("<dt>".$this->manager->getLang('author')."</dt><dd>".$this->manager->email($this->plugin_info['email'], $this->plugin_info['author'])."</dd>",4); - if ($this->plugin_info['url']) ptln("<dt>".$this->manager->getLang('www')."</dt><dd>".$this->manager->external_link($this->plugin_info['url'], '', 'urlextern')."</dd>",4); - ptln("</dl>",2); - - if (count($this->details) > 1) { - ptln("<h3>".$this->manager->getLang('components')."</h3>",2); - ptln("<div>",2); - - foreach ($this->details as $info) { - - ptln("<dl>",4); - ptln("<dt>".$this->manager->getLang('name')."</dt><dd>".$this->out($info['name'].' '.$info['compname'])."</dd>",6); - if (!$this->plugin_info['date']) ptln("<dt>".$this->manager->getLang('date')."</dt><dd>".$this->out($info['date'])."</dd>",6); - if (!$this->plugin_info['type']) ptln("<dt>".$this->manager->getLang('type')."</dt><dd>".$this->out($info['type'])."</dd>",6); - if (!$this->plugin_info['desc']) ptln("<dt>".$this->manager->getLang('desc')."</dt><dd>".$this->out($info['desc'])."</dd>",6); - if (!$this->plugin_info['author']) ptln("<dt>".$this->manager->getLang('author')."</dt><dd>".$this->manager->email($info['email'], $info['author'])."</dd>",6); - if (!$this->plugin_info['url']) ptln("<dt>".$this->manager->getLang('www')."</dt><dd>".$this->manager->external_link($info['url'], '', 'urlextern')."</dd>",6); - ptln("</dl>",4); - - } - ptln("</div>",2); - } - } - ptln("</div>"); - } - - // simple output filter, make html entities safe and convert new lines to <br /> - function out($text) { - return str_replace("\n",'<br />',htmlspecialchars($text)); - } - - - /** - * return a list (name & type) of all the component plugins that make up this plugin - * - * @todo can this move to pluginutils? - */ - function get_plugin_components($plugin) { - - global $plugin_types; - - $components = array(); - $path = DOKU_PLUGIN.plugin_directory($plugin).'/'; - - foreach ($plugin_types as $type) { - if (@file_exists($path.$type.'.php')) { $components[] = array('name'=>$plugin, 'type'=>$type); continue; } - - if ($dh = @opendir($path.$type.'/')) { - while (false !== ($cp = readdir($dh))) { - if ($cp == '.' || $cp == '..' || strtolower(substr($cp,-4)) != '.php') continue; - - $components[] = array('name'=>$plugin.'_'.substr($cp, 0, -4), 'type'=>$type); - } - closedir($dh); - } - } - - return $components; - } - - /** - * usort callback to sort plugin components - */ - function component_sort($a, $b) { - if ($a['name'] == $b['name']) return 0; - return ($a['name'] < $b['name']) ? -1 : 1; - } -} |