From 02779b18797b2ee1304613de684d54988815dacb Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Fri, 2 Aug 2013 23:30:32 +0200 Subject: Extension manager: Implement extension table This uses a lot of code and the whole design from the previous extension manager implementation. --- lib/plugins/extension/helper/list.php | 477 ++++++++++++++++++++++++++++++++++ 1 file changed, 477 insertions(+) create mode 100644 lib/plugins/extension/helper/list.php (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php new file mode 100644 index 000000000..ffb88114d --- /dev/null +++ b/lib/plugins/extension/helper/list.php @@ -0,0 +1,477 @@ + + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +/** + * Class helper_plugin_extension_extension represents a single extension (plugin or template) + */ +class helper_plugin_extension_list extends DokuWiki_Plugin { + protected $form = ''; + + function start_form() { + $this->form .= '
'; + $hidden = array( + 'do'=>'admin', + 'page'=>'extension', + 'sectok'=>getSecurityToken() + ); + $this->add_hidden($hidden); + $this->form .= ''; + $this->form .= '
'; + } + + /** + * Print the form + */ + function render() { + echo $this->form; + } + + /** + * Start the HTML for the row for the extension + * + * @param helper_plugin_extension_extension $extension The extension + */ + private function start_row(helper_plugin_extension_extension $extension) { + $this->form .= '
  • '; + } + + /** + * Add a column with the given class and content + * @param string $class The class name + * @param string $html The content + */ + private function populate_column($class, $html) { + $this->form .= '
    '.$html.'
    '; + } + + /** + * End the row + */ + private function end_row() { + $this->form .= '
  • '.DOKU_LF; + } + + /** + * Generate the link to the plugin homepage + * + * @param helper_plugin_extension_extension $extension The extension + * @return string The HTML code + */ + function make_homepagelink(helper_plugin_extension_extension $extension) { + $text = $this->getLang('homepage_link'); + $url = hsc($extension->getURL()); + return ''.$text.' '; + } + + /** + * Generate the class name for the row of the extensio + * + * @param helper_plugin_extension_extension $extension The extension object + * @return string The class name + */ + function make_class(helper_plugin_extension_extension $extension) { + $class = ($extension->isTemplate()) ? 'template' : 'plugin'; + if($extension->isInstalled()) { + $class.=' installed'; + $class.= ($extension->isEnabled()) ? ' enabled':' disabled'; + } + if(!$extension->canModify()) $class.= ' notselect'; + if($extension->isProtected()) $class.= ' protected'; + //if($this->showinfo) $class.= ' showinfo'; + return $class; + } + + /** + * Generate a link to the author of the extension + * + * @param helper_plugin_extension_extension $extension The extension object + * @return string The HTML code of the link + */ + function make_author(helper_plugin_extension_extension $extension) { + global $ID; + + if($extension->getAuthor()) { + + $params = array( + 'do'=>'admin', + 'page'=>'extension', + 'tab'=>'search', + 'q'=>'author:'.$extension->getAuthor() + ); + $url = wl($ID, $params); + return ''.hsc($extension->getAuthor()).''; + } + return "".$this->getLang('unknown_author').""; + } + + /** + * Get the link and image tag for the screenshot/thumbnail + * + * @param helper_plugin_extension_extension $extension The extension object + * @return string The HTML code + */ + function make_screenshot(helper_plugin_extension_extension $extension) { + if($extension->getScreenshotURL()) { + $img = ''. + ''.hsc($extension->getName()).''. + ''; + } elseif($extension->isTemplate()) { + $img = 'template'; + + } else { + $img = 'plugin'; + } + return '
    '.$img.'
    '; + } + + /** + * Extension main description + * + * @param helper_plugin_extension_extension $extension The extension object + * @param bool $showinfo Show the info section + * @return string The HTML code + */ + function make_legend(helper_plugin_extension_extension $extension, $showinfo = false) { + $return = '
    '; + $return .= '

    '; + $return .= sprintf($this->getLang('extensionby'), hsc($extension->getName()), $this->make_author($extension)); + $return .= '

    '; + + $return .= $this->make_screenshot($extension); + + $popularity = $extension->getPopularity(); + if ($popularity !== false && !$extension->isBundled()) { + $popularityText = sprintf($this->getLang('popularity'), $popularity); + $return .= '
    '; + } + + $return .= '

    '; + if($extension->getDescription()) { + $return .= hsc($extension->getDescription()).' '; + } + $return .= '

    '; + + $return .= $this->make_linkbar($extension); + $return .= $this->make_action('info', $extension, $showinfo); + if ($showinfo) { + $return .= $this->make_info($extension); + } + $return .= $this->make_noticearea($extension); + $return .= '
    '; + return $return; + } + + /** + * Generate the link bar HTML code + * + * @param helper_plugin_extension_extension $extension The extension instance + * @return string The HTML code + */ + function make_linkbar(helper_plugin_extension_extension $extension) { + $return = ''; + $return .= $this->make_homepagelink($extension); + if ($extension->getBugtrackerURL()) { + $return .= ' '.$this->getLang('bugs_features').' '; + } + foreach ($extension->getTags() as $tag) { + $return .= hsc($tag).' '; //$this->manager->handler->html_taglink($tag); + } + $return .= ''; + return $return; + } + + /** + * Notice area + * + * @param helper_plugin_extension_extension $extension The extension + * @return string The HTML code + */ + function make_noticearea(helper_plugin_extension_extension $extension) { + $return = ''; + $missing_dependencies = $extension->getMissingDependencies(); + if(!empty($missing_dependencies)) { + $return .= '
    '. + sprintf($this->getLang('missing_dependency'), implode(', ', /*array_map(array($this->helper, 'make_extensionsearchlink'),*/ $missing_dependencies)). + '
    '; + } + if($extension->isInWrongFolder()) { + $return .= '
    '. + sprintf($this->getLang('wrong_folder'), hsc($extension->getInstallName()), hsc($extension->getBase())). + '
    '; + } + if(($securityissue = $extension->getSecurityIssue()) !== false) { + $return .= '
    '. + sprintf($this->getLang('security_issue'), hsc($securityissue )). + '
    '; + } + if(($securitywarning = $extension->getSecurityWarning()) !== false) { + $return .= '
    '. + sprintf($this->getLang('security_warning'), hsc($securitywarning)). + '
    '; + } + if($extension->updateAvailable()) { + $return .= '
    '. + sprintf($this->getLang('update_available'), hsc($extension->getLastUpdate())). + '
    '; + } + if($extension->hasDownloadURLChanged()) { + $return .= '
    '. + sprintf($this->getLang('url_change'), hsc($extension->getDownloadURL()), hsc($extension->getLastDownloadURL())). + '
    '; + } + return $return; + } + + /** + * Create a link from the given URL + * + * Shortens the URL for display + * + * @param string $url + * + * @return string HTML link + */ + function shortlink($url){ + $link = parse_url($url); + + $base = $link['host']; + if($link['port']) $base .= $base.':'.$link['port']; + $long = $link['path']; + if($link['query']) $long .= $link['query']; + + $name = shorten($base, $long, 55); + + return ''.hsc($name).''; + } + + /** + * Plugin/template details + * + * @param helper_plugin_extension_extension $extension The extension + * @return string The HTML code + */ + function make_info(helper_plugin_extension_extension $extension) { + $default = $this->getLang('unknown'); + $return = '
    '; + + if (!$extension->isBundled()) { + $return .= '
    '.$this->getLang('downloadurl').'
    '; + $return .= '
    '; + $return .= ($extension->getDownloadURL() ? $this->shortlink($extension->getDownloadURL()) : $default); + $return .= '
    '; + + $return .= '
    '.$this->getLang('repository').'
    '; + $return .= '
    '; + $return .= ($extension->getSourcerepoURL() ? $this->shortlink($extension->getSourcerepoURL()) : $default); + $return .= '
    '; + } + + if ($extension->isInstalled()) { + if ($extension->getInstalledVersion()) { + $return .= '
    '.$this->getLang('installed_version').'
    '; + $return .= '
    '; + $return .= hsc($extension->getInstalledVersion()); + $return .= '
    '; + } else { + $return .= '
    '.$this->getLang('install_date').'
    '; + $return .= '
    '; + $return .= ($extension->getUpdateDate() ? hsc($extension->getUpdateDate()) : $this->getLang('unknown')); + $return .= '
    '; + } + } + if (!$extension->isInstalled() || $extension->updateAvailable()) { + $return .= '
    '.$this->getLang('available_version').'
    '; + $return .= '
    '; + $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown')); + $return .= '
    '; + } + + if($extension->getInstallDate()) { + $return .= '
    '.$this->getLang('installed').'
    '; + $return .= '
    '; + $return .= hsc($extension->getInstallDate()); + $return .= '
    '; + } + + $return .= '
    '.$this->getLang('provides').'
    '; + $return .= '
    '; + $return .= ($extension->getTypes() ? hsc(implode(', ', $extension->getTypes())) : $default); + $return .= '
    '; + + if($extension->getCompatibleVersions()) { + $return .= '
    '.$this->getLang('compatible').'
    '; + $return .= '
    '; + foreach ($extension->getCompatibleVersions() as $date => $version) { + $return .= $version['label'].' ('.$date.'), '; + } + $return .= '
    '; + } + if($extension->getDependencies()) { + $return .= '
    '.$this->getLang('depends').'
    '; + $return .= '
    '; + $return .= $this->make_linklist($extension->getDependencies()); + $return .= '
    '; + } + + if($extension->getSimilarExtensions()) { + $return .= '
    '.$this->getLang('similar').'
    '; + $return .= '
    '; + $return .= $this->make_linklist($extension->getSimilarExtensions()); + $return .= '
    '; + } + + if($extension->getConflicts()) { + $return .= '
    '.$this->getLang('conflicts').'
    '; + $return .= '
    '; + $return .= $this->make_linklist($extension->getConflicts()); + $return .= '
    '; + } + if ($extension->getDonationURL()) { + $return .= ''; + } + $return .= '
    '; + return $return; + } + + /** + * Generate a list of links for extensions + * @param array $links The links + * @return string The HTML code + */ + function make_linklist($links) { + $return = ''; + foreach ($links as $link) { + $dokulink = hsc($link); + if (strpos($link, 'template:') !== 0) $dokulink = 'plugin:'.$dokulink; + $return .= ''.$link.' '; + } + return $return; + } + + /** + * Display the action buttons if they are possible + * + * @param helper_plugin_extension_extension $extension The extension + * @return string The HTML code + */ + function make_actions(helper_plugin_extension_extension $extension) { + $return = ''; + if (!$extension->isInstalled() && $extension->canModify() === true) { + $return .= $this->make_action('install', $extension); + } elseif ($extension->canModify()) { + if (!$extension->isBundled()) { + $return .= $this->make_action('uninstall', $extension); + if ($extension->getDownloadURL()) { + if ($extension->updateAvailable()) { + $return .= $this->make_action('update', $extension); + } else { + $return .= $this->make_action('reinstall', $extension); + } + } + } + if (!$extension->isProtected()) { + if ($extension->isEnabled()) { + $return .= $this->make_action('disable', $extension); + } else { + $return .= $this->make_action('enable', $extension); + } + } + } + + if (!$extension->isInstalled()) { + $return .= ' '.$this->getLang('available_version').' '; + $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown')).''; + } + + return $return; + } + + /** + * Display an action button for an extension + * + * @param string $action The action + * @param helper_plugin_extension_extension $extension The extension + * @param bool $showinfo If the info block is shown + * @return string The HTML code + */ + function make_action($action, $extension, $showinfo = false) { + $title = $revertAction = $extraClass = ''; + + switch ($action) { + case 'info': + $title = 'title="'.$this->getLang('btn_info').'"'; + if ($showinfo) { + $revertAction = '-'; + $extraClass = 'close'; + } + break; + case 'install': + case 'reinstall': + $title = 'title="'.$extension->getDownloadURL().'"'; + break; + } + + $classes = 'button '.$action.' '.$extraClass; + $name = 'fn['.$action.']['.$revertAction.hsc($extension->getInstallName()).']'; + + return ''; + } +} -- cgit v1.2.3 From dfabb2233685be891929dd4065c257a025dc3151 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 4 Aug 2013 18:20:45 +0200 Subject: added tabURL builder --- lib/plugins/extension/helper/list.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index ffb88114d..e8b4f472f 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -474,4 +474,24 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { return ''; } + + /** + * Create an URL inside the extension manager + * + * @param string tab tb to load, empty for current tab + * @param array $params associative array of parameter to set + * @return string + */ + static public function tabURL($tab='', $params=array()){ + global $ID; + global $INPUT; + + if(!$tab) $tab = $INPUT->str('tab', 'installed', true); + $defaults = array( + 'do' => 'admin', + 'page' => 'extension', + 'tab' => $tab, + ); + return wl($ID, array_merge($defaults, $params)); + } } -- cgit v1.2.3 From a8332b68fa9dd8f70d2fc9d9e50c34957cf9e24d Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 4 Aug 2013 18:24:53 +0200 Subject: various gui fixes --- lib/plugins/extension/helper/list.php | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index e8b4f472f..816d4a444 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -10,7 +10,7 @@ if(!defined('DOKU_INC')) die(); /** - * Class helper_plugin_extension_extension represents a single extension (plugin or template) + * Class helper_plugin_extension_list takes care of creating a HTML list of extensions */ class helper_plugin_extension_list extends DokuWiki_Plugin { protected $form = ''; @@ -150,16 +150,15 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if($extension->getAuthor()) { - $params = array( - 'do'=>'admin', - 'page'=>'extension', - 'tab'=>'search', - 'q'=>'author:'.$extension->getAuthor() - ); - $url = wl($ID, $params); - return ''.hsc($extension->getAuthor()).''; + $mailid = $extension->getEmailID(); + if($mailid){ + $url = $this->tabURL('search', array('q' => 'mailid:'.$mailid)); + return ''.hsc($extension->getAuthor()).''; + }else{ + return ''.hsc($extension->getAuthor()).''; + } } - return "".$this->getLang('unknown_author').""; + return "".$this->getLang('unknown_author').""; } /** @@ -231,8 +230,19 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if ($extension->getBugtrackerURL()) { $return .= ' '.$this->getLang('bugs_features').' '; } - foreach ($extension->getTags() as $tag) { - $return .= hsc($tag).' '; //$this->manager->handler->html_taglink($tag); + if($extension->getTags()){ + $first = true; + echo ''; + foreach ($extension->getTags() as $tag) { + if(!$first){ + $return .= ', '; + }else{ + $first = false; + } + $url = $this->tabURL('search', array('q' => 'tag:'.$tag)); + $return .= ''.hsc($tag).''; + } + echo ''; } $return .= ''; return $return; -- cgit v1.2.3 From d7410643d8e3db12a76845370d8eee2508fa6115 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 4 Aug 2013 19:46:02 +0200 Subject: added tab navigation --- lib/plugins/extension/helper/list.php | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 816d4a444..1c337176d 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -14,6 +14,17 @@ if(!defined('DOKU_INC')) die(); */ class helper_plugin_extension_list extends DokuWiki_Plugin { protected $form = ''; + /** @var helper_plugin_extension_gui */ + protected $gui; + + /** + * Constructor + * + * loads additional helpers + */ + public function __construct(){ + $this->gui = plugin_load('helper', 'extension_gui'); + } function start_form() { $this->form .= '
    '; @@ -152,7 +163,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $mailid = $extension->getEmailID(); if($mailid){ - $url = $this->tabURL('search', array('q' => 'mailid:'.$mailid)); + $url = $this->gui->tabURL('search', array('q' => 'mailid:'.$mailid)); return ''.hsc($extension->getAuthor()).''; }else{ return ''.hsc($extension->getAuthor()).''; @@ -239,7 +250,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { }else{ $first = false; } - $url = $this->tabURL('search', array('q' => 'tag:'.$tag)); + $url = $this->gui->tabURL('search', array('q' => 'tag:'.$tag)); $return .= ''.hsc($tag).''; } echo ''; @@ -484,24 +495,4 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { return ''; } - - /** - * Create an URL inside the extension manager - * - * @param string tab tb to load, empty for current tab - * @param array $params associative array of parameter to set - * @return string - */ - static public function tabURL($tab='', $params=array()){ - global $ID; - global $INPUT; - - if(!$tab) $tab = $INPUT->str('tab', 'installed', true); - $defaults = array( - 'do' => 'admin', - 'page' => 'extension', - 'tab' => $tab, - ); - return wl($ID, array_merge($defaults, $params)); - } } -- cgit v1.2.3 From e8dda2c3faf5eb61b68d5afcbea13c5802484b4a Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 9 Aug 2013 13:08:06 +0200 Subject: added gravatar images --- lib/plugins/extension/helper/list.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 1c337176d..843697667 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -164,7 +164,8 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $mailid = $extension->getEmailID(); if($mailid){ $url = $this->gui->tabURL('search', array('q' => 'mailid:'.$mailid)); - return ''.hsc($extension->getAuthor()).''; + return ' '.hsc($extension->getAuthor()).''; + }else{ return ''.hsc($extension->getAuthor()).''; } -- cgit v1.2.3 From 813d7e0910cdbb80dceef4d952adc551987c84e7 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 9 Aug 2013 14:06:34 +0200 Subject: fixed some confusion between base, id and name --- lib/plugins/extension/helper/list.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 843697667..12db5ea3c 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -163,7 +163,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $mailid = $extension->getEmailID(); if($mailid){ - $url = $this->gui->tabURL('search', array('q' => 'mailid:'.$mailid)); + $url = $this->gui->tabURL('search', array('q' => 'authorid:'.$mailid)); return ' '.hsc($extension->getAuthor()).''; }else{ @@ -181,8 +181,8 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { */ function make_screenshot(helper_plugin_extension_extension $extension) { if($extension->getScreenshotURL()) { - $img = ''. - ''.hsc($extension->getName()).''. + $img = ''. + ''.hsc($extension->getDisplayName()).''. ''; } elseif($extension->isTemplate()) { $img = 'template'; @@ -203,7 +203,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { function make_legend(helper_plugin_extension_extension $extension, $showinfo = false) { $return = '
    '; $return .= '

    '; - $return .= sprintf($this->getLang('extensionby'), hsc($extension->getName()), $this->make_author($extension)); + $return .= sprintf($this->getLang('extensionby'), hsc($extension->getDisplayName()), $this->make_author($extension)); $return .= '

    '; $return .= $this->make_screenshot($extension); -- cgit v1.2.3 From 61746d5540723d7463a0c1d666decb9c164c6678 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 9 Aug 2013 16:07:21 +0200 Subject: added a very simplistic lightbox --- lib/plugins/extension/helper/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 12db5ea3c..62031a69b 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -181,7 +181,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { */ function make_screenshot(helper_plugin_extension_extension $extension) { if($extension->getScreenshotURL()) { - $img = ''. + $img = ''. ''.hsc($extension->getDisplayName()).''. ''; } elseif($extension->isTemplate()) { -- cgit v1.2.3 From 8251e9612a372ea2e25e0d896fb0c3b8e4c3af73 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 9 Aug 2013 21:54:37 +0200 Subject: some style changes --- lib/plugins/extension/helper/list.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 62031a69b..79728b5ca 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -244,7 +244,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } if($extension->getTags()){ $first = true; - echo ''; + $return .= ''; foreach ($extension->getTags() as $tag) { if(!$first){ $return .= ', '; @@ -254,7 +254,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $url = $this->gui->tabURL('search', array('q' => 'tag:'.$tag)); $return .= ''.hsc($tag).''; } - echo ''; + $return .= ''; } $return .= ''; return $return; @@ -451,7 +451,9 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } if (!$extension->isProtected()) { if ($extension->isEnabled()) { - $return .= $this->make_action('disable', $extension); + if(!$extension->isTemplate()){ // templates can't be disabled, only anothe can be enabled + $return .= $this->make_action('disable', $extension); + } } else { $return .= $this->make_action('enable', $extension); } -- cgit v1.2.3 From 75e063084d865a011e074c29c5edb8569fe2cfe1 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 9 Aug 2013 22:58:01 +0200 Subject: made info mechanism work again --- lib/plugins/extension/helper/list.php | 43 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 22 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 79728b5ca..767a8ed40 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -101,7 +101,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * @param helper_plugin_extension_extension $extension The extension */ private function start_row(helper_plugin_extension_extension $extension) { - $this->form .= '
  • '; + $this->form .= '
  • '; } /** @@ -221,7 +221,15 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= '

    '; $return .= $this->make_linkbar($extension); - $return .= $this->make_action('info', $extension, $showinfo); + + if($showinfo){ + $url = $this->gui->tabURL(''); + $return .= ''.$this->getLang('btn_info').''; + }else{ + $url = $this->gui->tabURL('', array('info' => $extension->getID())); + $return .= ''.$this->getLang('btn_info').''; + } + if ($showinfo) { $return .= $this->make_info($extension); } @@ -415,15 +423,14 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { /** * Generate a list of links for extensions - * @param array $links The links + * + * @param array $ext The extensions * @return string The HTML code */ - function make_linklist($links) { + function make_linklist($ext) { $return = ''; - foreach ($links as $link) { - $dokulink = hsc($link); - if (strpos($link, 'template:') !== 0) $dokulink = 'plugin:'.$dokulink; - $return .= ''.$link.' '; + foreach ($ext as $link) { + $return .= ''.hsc($link).' '; } return $return; } @@ -438,7 +445,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return = ''; if (!$extension->isInstalled() && $extension->canModify() === true) { $return .= $this->make_action('install', $extension); - } elseif ($extension->canModify()) { + } elseif ($extension->canModify() === true) { if (!$extension->isBundled()) { $return .= $this->make_action('uninstall', $extension); if ($extension->getDownloadURL()) { @@ -451,7 +458,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } if (!$extension->isProtected()) { if ($extension->isEnabled()) { - if(!$extension->isTemplate()){ // templates can't be disabled, only anothe can be enabled + if(!$extension->isTemplate()){ // templates can't be disabled, only another can be enabled $return .= $this->make_action('disable', $extension); } } else { @@ -473,28 +480,20 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * * @param string $action The action * @param helper_plugin_extension_extension $extension The extension - * @param bool $showinfo If the info block is shown * @return string The HTML code */ - function make_action($action, $extension, $showinfo = false) { - $title = $revertAction = $extraClass = ''; + function make_action($action, $extension) { + $title = ''; switch ($action) { - case 'info': - $title = 'title="'.$this->getLang('btn_info').'"'; - if ($showinfo) { - $revertAction = '-'; - $extraClass = 'close'; - } - break; case 'install': case 'reinstall': $title = 'title="'.$extension->getDownloadURL().'"'; break; } - $classes = 'button '.$action.' '.$extraClass; - $name = 'fn['.$action.']['.$revertAction.hsc($extension->getInstallName()).']'; + $classes = 'button '.$action; + $name = 'fn['.$action.']['.hsc($extension->getID()).']'; return ''; } -- cgit v1.2.3 From 72dda0b4378651b271f5fb516fb8e21a80ac3ebf Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Fri, 9 Aug 2013 23:55:39 +0200 Subject: added AJAX detail infos --- lib/plugins/extension/helper/list.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 767a8ed40..6b1d41f78 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -224,11 +224,12 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if($showinfo){ $url = $this->gui->tabURL(''); - $return .= ''.$this->getLang('btn_info').''; + $class = 'close'; }else{ $url = $this->gui->tabURL('', array('info' => $extension->getID())); - $return .= ''.$this->getLang('btn_info').''; + $class = ''; } + $return .= ''.$this->getLang('btn_info').''; if ($showinfo) { $return .= $this->make_info($extension); -- cgit v1.2.3 From 347e1146ca6a08dc90247a3f7da31cbc3a409aa0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 10 Aug 2013 14:43:12 +0200 Subject: fixed screenshots --- lib/plugins/extension/helper/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 6b1d41f78..16ef71569 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -181,8 +181,8 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { */ function make_screenshot(helper_plugin_extension_extension $extension) { if($extension->getScreenshotURL()) { - $img = ''. - ''.hsc($extension->getDisplayName()).''. + $img = ''. + ''.hsc($extension->getDisplayName()).''. ''; } elseif($extension->isTemplate()) { $img = 'template'; -- cgit v1.2.3 From e445eeb3b675b350b4cebeeea610d4f7cd2e8f19 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 11 Aug 2013 11:19:34 +0200 Subject: fixed button logic --- lib/plugins/extension/helper/list.php | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 16ef71569..7ecd5b267 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -444,11 +444,13 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { */ function make_actions(helper_plugin_extension_extension $extension) { $return = ''; - if (!$extension->isInstalled() && $extension->canModify() === true) { - $return .= $this->make_action('install', $extension); - } elseif ($extension->canModify() === true) { - if (!$extension->isBundled()) { - $return .= $this->make_action('uninstall', $extension); + $errors = ''; + + if ($extension->isInstalled()) { + if (($canmod = $extension->canModify()) === true) { + if (!$extension->isProtected()) { + $return .= $this->make_action('uninstall', $extension); + } if ($extension->getDownloadURL()) { if ($extension->updateAvailable()) { $return .= $this->make_action('update', $extension); @@ -456,7 +458,10 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= $this->make_action('reinstall', $extension); } } + }else{ + $errors .= '

    '.$this->getLang($canmod).'

    '; } + if (!$extension->isProtected()) { if ($extension->isEnabled()) { if(!$extension->isTemplate()){ // templates can't be disabled, only another can be enabled @@ -466,6 +471,15 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= $this->make_action('enable', $extension); } } + + }else{ + if (($canmod = $extension->canModify()) === true) { + if ($extension->getDownloadURL()) { + $return .= $this->make_action('install', $extension); + } + }else{ + $errors .= '
    '.$this->getLang($canmod).'
    '; + } } if (!$extension->isInstalled()) { @@ -473,7 +487,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown')).''; } - return $return; + return $return.' '.$errors; } /** -- cgit v1.2.3 From 7ca0915cf61dd8ff297bf1d3ebd6aafcab88a618 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 11 Aug 2013 11:52:47 +0200 Subject: fixed donation link --- lib/plugins/extension/helper/list.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 7ecd5b267..ef589dedd 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -343,6 +343,14 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $default = $this->getLang('unknown'); $return = '
    '; + if ($extension->getDonationURL()) { + $return .= '
    '.$this->getLang('donate').'
    '; + $return .= '
    '; + $return .= ''; + $return .= '
    '; + } + + if (!$extension->isBundled()) { $return .= '
    '.$this->getLang('downloadurl').'
    '; $return .= '
    '; @@ -393,6 +401,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { foreach ($extension->getCompatibleVersions() as $date => $version) { $return .= $version['label'].' ('.$date.'), '; } + $return = rtrim($return, ', '); $return .= '
    '; } if($extension->getDependencies()) { @@ -415,9 +424,6 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= $this->make_linklist($extension->getConflicts()); $return .= ''; } - if ($extension->getDonationURL()) { - $return .= ''; - } $return .= '
    '; return $return; } @@ -431,9 +437,9 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { function make_linklist($ext) { $return = ''; foreach ($ext as $link) { - $return .= ''.hsc($link).' '; + $return .= ''.hsc($link).', '; } - return $return; + return rtrim($return, ', '); } /** @@ -482,7 +488,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } } - if (!$extension->isInstalled()) { + if (!$extension->isInstalled() && $extension->getDownloadURL()) { $return .= ' '.$this->getLang('available_version').' '; $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown')).''; } -- cgit v1.2.3 From 9597c3b83b2dbf2787bf9046c911f0cc17d29481 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 11 Aug 2013 12:05:09 +0200 Subject: just not handle enable/disable for templates for now --- lib/plugins/extension/helper/list.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index ef589dedd..e33dbfa04 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -468,11 +468,9 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $errors .= '

    '.$this->getLang($canmod).'

    '; } - if (!$extension->isProtected()) { + if (!$extension->isProtected() && !$extension->isTemplate()) { // no enable/disable for templates if ($extension->isEnabled()) { - if(!$extension->isTemplate()){ // templates can't be disabled, only another can be enabled - $return .= $this->make_action('disable', $extension); - } + $return .= $this->make_action('disable', $extension); } else { $return .= $this->make_action('enable', $extension); } -- cgit v1.2.3 From a4667104ff9b4131c1aceaea022e65d0976a15d6 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 5 Jan 2014 21:22:31 +0100 Subject: added git warning --- lib/plugins/extension/helper/list.php | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index e33dbfa04..901a4e8fa 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -476,6 +476,10 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } } + if ($extension->isGitControlled()){ + $errors .= '

    '.$this->getLang('git').'

    '; + } + }else{ if (($canmod = $extension->canModify()) === true) { if ($extension->getDownloadURL()) { -- cgit v1.2.3 From 47559c79fedce97add92eb193fb379b8795fc612 Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 5 Jan 2014 20:22:40 +0000 Subject: fixed and improved some HTML in extension manager --- lib/plugins/extension/helper/list.php | 47 ++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 23 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 901a4e8fa..f387a6de6 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -56,7 +56,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * @param int $level The level of the header */ function add_header($id, $header, $level = 2) { - $this->form .=''.hsc($header).''; + $this->form .=''.hsc($header).''.DOKU_LF; } /** @@ -65,7 +65,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * @param string $data The content */ function add_p($data) { - $this->form .= '

    '.hsc($data).'

    '; + $this->form .= '

    '.hsc($data).'

    '.DOKU_LF; } /** @@ -77,7 +77,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { foreach ($array as $key => $value) { $this->form .= ''; } - $this->form .= '
  • '; + $this->form .= ''.DOKU_LF; } /** @@ -85,7 +85,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { */ function end_form() { $this->form .= ''; - $this->form .= ''; + $this->form .= ''.DOKU_LF; } /** @@ -110,7 +110,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * @param string $html The content */ private function populate_column($class, $html) { - $this->form .= '
    '.$html.'
    '; + $this->form .= '
    '.$html.'
    '.DOKU_LF; } /** @@ -164,13 +164,13 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $mailid = $extension->getEmailID(); if($mailid){ $url = $this->gui->tabURL('search', array('q' => 'authorid:'.$mailid)); - return ' '.hsc($extension->getAuthor()).''; + return ' '.hsc($extension->getAuthor()).''; }else{ return ''.hsc($extension->getAuthor()).''; } } - return "".$this->getLang('unknown_author').""; + return "".$this->getLang('unknown_author')."".DOKU_LF; } /** @@ -181,16 +181,17 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { */ function make_screenshot(helper_plugin_extension_extension $extension) { if($extension->getScreenshotURL()) { - $img = ''. - ''.hsc($extension->getDisplayName()).''. + $title = sprintf($this->getLang('screenshot'), hsc($extension->getDisplayName())); + $img = ''. + ''.$title.''. ''; } elseif($extension->isTemplate()) { - $img = 'template'; + $img = ''; } else { - $img = 'plugin'; + $img = ''; } - return '
    '.$img.'
    '; + return '
    '.$img.'
    '.DOKU_LF; } /** @@ -204,21 +205,21 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return = '
    '; $return .= '

    '; $return .= sprintf($this->getLang('extensionby'), hsc($extension->getDisplayName()), $this->make_author($extension)); - $return .= '

    '; + $return .= ''.DOKU_LF; $return .= $this->make_screenshot($extension); $popularity = $extension->getPopularity(); if ($popularity !== false && !$extension->isBundled()) { - $popularityText = sprintf($this->getLang('popularity'), $popularity); - $return .= '
    '; + $popularityText = sprintf($this->getLang('popularity'), round($popularity*100, 2)); + $return .= '
    '.$popularityText.'
    '.DOKU_LF; } $return .= '

    '; if($extension->getDescription()) { $return .= hsc($extension->getDescription()).' '; } - $return .= '

    '; + $return .= '

    '.DOKU_LF; $return .= $this->make_linkbar($extension); @@ -229,13 +230,13 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $url = $this->gui->tabURL('', array('info' => $extension->getID())); $class = ''; } - $return .= ''.$this->getLang('btn_info').''; + $return .= ' '.$this->getLang('btn_info').''; if ($showinfo) { $return .= $this->make_info($extension); } $return .= $this->make_noticearea($extension); - $return .= '
    '; + $return .= ''.DOKU_LF; return $return; } @@ -246,7 +247,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * @return string The HTML code */ function make_linkbar(helper_plugin_extension_extension $extension) { - $return = ''; + $return = ''.DOKU_LF; return $return; } @@ -308,7 +309,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { sprintf($this->getLang('url_change'), hsc($extension->getDownloadURL()), hsc($extension->getLastDownloadURL())). ''; } - return $return; + return $return.DOKU_LF; } /** @@ -424,7 +425,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= $this->make_linklist($extension->getConflicts()); $return .= ''; } - $return .= ''; + $return .= ''.DOKU_LF; return $return; } @@ -495,7 +496,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= ($extension->getLastUpdate() ? hsc($extension->getLastUpdate()) : $this->getLang('unknown')).''; } - return $return.' '.$errors; + return $return.' '.$errors.DOKU_LF; } /** -- cgit v1.2.3 From 77da6d6ca677e783f5e104226a179b5f09ab121d Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 5 Jan 2014 22:25:41 +0000 Subject: added css and html changes for RTL scripts to extension manager --- lib/plugins/extension/helper/list.php | 39 ++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index f387a6de6..7a08655b7 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -164,10 +164,10 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $mailid = $extension->getEmailID(); if($mailid){ $url = $this->gui->tabURL('search', array('q' => 'authorid:'.$mailid)); - return ' '.hsc($extension->getAuthor()).''; + return ' '.hsc($extension->getAuthor()).''; }else{ - return ''.hsc($extension->getAuthor()).''; + return ''.hsc($extension->getAuthor()).''; } } return "".$this->getLang('unknown_author')."".DOKU_LF; @@ -204,7 +204,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { function make_legend(helper_plugin_extension_extension $extension, $showinfo = false) { $return = '
    '; $return .= '

    '; - $return .= sprintf($this->getLang('extensionby'), hsc($extension->getDisplayName()), $this->make_author($extension)); + $return .= sprintf($this->getLang('extensionby'), ''.hsc($extension->getDisplayName()).'', $this->make_author($extension)); $return .= '

    '.DOKU_LF; $return .= $this->make_screenshot($extension); @@ -215,11 +215,11 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= '
    '.$popularityText.'
    '.DOKU_LF; } - $return .= '

    '; if($extension->getDescription()) { + $return .= '

    '; $return .= hsc($extension->getDescription()).' '; + $return .= '

    '.DOKU_LF; } - $return .= '

    '.DOKU_LF; $return .= $this->make_linkbar($extension); @@ -255,6 +255,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if($extension->getTags()){ $first = true; $return .= ''; + $return .= ''.$this->getLang('tags').' '; foreach ($extension->getTags() as $tag) { if(!$first){ $return .= ', '; @@ -262,7 +263,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $first = false; } $url = $this->gui->tabURL('search', array('q' => 'tag:'.$tag)); - $return .= ''.hsc($tag).''; + $return .= ''.hsc($tag).''; } $return .= ''; } @@ -281,22 +282,22 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $missing_dependencies = $extension->getMissingDependencies(); if(!empty($missing_dependencies)) { $return .= '
    '. - sprintf($this->getLang('missing_dependency'), implode(', ', /*array_map(array($this->helper, 'make_extensionsearchlink'),*/ $missing_dependencies)). + sprintf($this->getLang('missing_dependency'), ''.implode(', ', /*array_map(array($this->helper, 'make_extensionsearchlink'),*/ $missing_dependencies).''). '
    '; } if($extension->isInWrongFolder()) { $return .= '
    '. - sprintf($this->getLang('wrong_folder'), hsc($extension->getInstallName()), hsc($extension->getBase())). + sprintf($this->getLang('wrong_folder'), ''.hsc($extension->getInstallName()).'', ''.hsc($extension->getBase()).''). '
    '; } if(($securityissue = $extension->getSecurityIssue()) !== false) { $return .= '
    '. - sprintf($this->getLang('security_issue'), hsc($securityissue )). + sprintf($this->getLang('security_issue'), ''.hsc($securityissue).''). '
    '; } if(($securitywarning = $extension->getSecurityWarning()) !== false) { $return .= '
    '. - sprintf($this->getLang('security_warning'), hsc($securitywarning)). + sprintf($this->getLang('security_warning'), ''.hsc($securitywarning).''). '
    '; } if($extension->updateAvailable()) { @@ -306,7 +307,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } if($extension->hasDownloadURLChanged()) { $return .= '
    '. - sprintf($this->getLang('url_change'), hsc($extension->getDownloadURL()), hsc($extension->getLastDownloadURL())). + sprintf($this->getLang('url_change'), ''.hsc($extension->getDownloadURL()).'', ''.hsc($extension->getLastDownloadURL()).''). '
    '; } return $return.DOKU_LF; @@ -354,14 +355,14 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if (!$extension->isBundled()) { $return .= '
    '.$this->getLang('downloadurl').'
    '; - $return .= '
    '; + $return .= '
    '; $return .= ($extension->getDownloadURL() ? $this->shortlink($extension->getDownloadURL()) : $default); - $return .= '
    '; + $return .= ''; $return .= '
    '.$this->getLang('repository').'
    '; - $return .= '
    '; + $return .= '
    '; $return .= ($extension->getSourcerepoURL() ? $this->shortlink($extension->getSourcerepoURL()) : $default); - $return .= '
    '; + $return .= ''; } if ($extension->isInstalled()) { @@ -392,15 +393,15 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { } $return .= '
    '.$this->getLang('provides').'
    '; - $return .= '
    '; + $return .= '
    '; $return .= ($extension->getTypes() ? hsc(implode(', ', $extension->getTypes())) : $default); - $return .= '
    '; + $return .= ''; if($extension->getCompatibleVersions()) { $return .= '
    '.$this->getLang('compatible').'
    '; $return .= '
    '; foreach ($extension->getCompatibleVersions() as $date => $version) { - $return .= $version['label'].' ('.$date.'), '; + $return .= ''.$version['label'].' ('.$date.'), '; } $return = rtrim($return, ', '); $return .= '
    '; @@ -438,7 +439,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { function make_linklist($ext) { $return = ''; foreach ($ext as $link) { - $return .= ''.hsc($link).', '; + $return .= ''.hsc($link).', '; } return rtrim($return, ', '); } -- cgit v1.2.3 From 06d8000aa9e10b65a946d58d1cffe41aff987d2b Mon Sep 17 00:00:00 2001 From: Anika Henke Date: Sun, 5 Jan 2014 23:11:23 +0000 Subject: added status to info list of extension plugin --- lib/plugins/extension/helper/list.php | 39 ++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 7a08655b7..ba3681ce4 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -252,14 +252,13 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { if ($extension->getBugtrackerURL()) { $return .= ' '.$this->getLang('bugs_features').' '; } - if($extension->getTags()){ + if ($extension->getTags()){ $first = true; - $return .= ''; - $return .= ''.$this->getLang('tags').' '; + $return .= ''.$this->getLang('tags').' '; foreach ($extension->getTags() as $tag) { - if(!$first){ + if (!$first){ $return .= ', '; - }else{ + } else { $first = false; } $url = $this->gui->tabURL('search', array('q' => 'tag:'.$tag)); @@ -345,6 +344,9 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $default = $this->getLang('unknown'); $return = '
    '; + $return .= '
    '.$this->getLang('status').'
    '; + $return .= '
    '.$this->make_status($extension).'
    '; + if ($extension->getDonationURL()) { $return .= '
    '.$this->getLang('donate').'
    '; $return .= '
    '; @@ -352,7 +354,6 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= '
    '; } - if (!$extension->isBundled()) { $return .= '
    '.$this->getLang('downloadurl').'
    '; $return .= '
    '; @@ -513,7 +514,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { switch ($action) { case 'install': case 'reinstall': - $title = 'title="'.$extension->getDownloadURL().'"'; + $title = 'title="'.hsc($extension->getDownloadURL()).'"'; break; } @@ -522,4 +523,28 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { return ''; } + + /** + * Plugin/template status + * + * @param helper_plugin_extension_extension $extension The extension + * @return string The description of all relevant statusses + */ + function make_status(helper_plugin_extension_extension $extension) { + $return = ''; + if ($extension->isInstalled()) { + $return .= $this->getLang('status_installed').' '; + if ($extension->isProtected()) { + $return .= $this->getLang('status_protected').' '; + } else { + $return .= $extension->isEnabled() ? $this->getLang('status_enabled').' ' : $this->getLang('status_disabled').' '; + } + } else { + $return .= $this->getLang('status_not_installed').' '; + } + $return .= !$extension->canModify() ? $this->getLang('status_unmodifiable').' ' : ''; + $return .= $extension->isTemplate() ? $this->getLang('status_template') : $this->getLang('status_plugin'); + return $return; + } + } -- cgit v1.2.3 From b1e758012b3d801d5ab266e53e830fb7091508a2 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Wed, 8 Jan 2014 20:38:23 +0100 Subject: show a message when search returns no results --- lib/plugins/extension/helper/list.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index ba3681ce4..8cc303fbe 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -88,6 +88,14 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $this->form .= ''.DOKU_LF; } + /** + * Show message when no results are found + */ + function nothing_found() { + global $lang; + $this->form .= '
  • '.$lang['nothingfound'].'
  • '; + } + /** * Print the form */ -- cgit v1.2.3 From 73d93f2bf6cd03cd82558c91faf42dddbdef1d32 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Thu, 30 Jan 2014 23:58:43 +0100 Subject: extension manager: some minor tweaks in the info screen --- lib/plugins/extension/helper/list.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'lib/plugins/extension/helper/list.php') diff --git a/lib/plugins/extension/helper/list.php b/lib/plugins/extension/helper/list.php index 8cc303fbe..01a5c516a 100644 --- a/lib/plugins/extension/helper/list.php +++ b/lib/plugins/extension/helper/list.php @@ -406,7 +406,7 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { $return .= ($extension->getTypes() ? hsc(implode(', ', $extension->getTypes())) : $default); $return .= '
    '; - if($extension->getCompatibleVersions()) { + if(!$extension->isBundled() && $extension->getCompatibleVersions()) { $return .= '
    '.$this->getLang('compatible').'
    '; $return .= '
    '; foreach ($extension->getCompatibleVersions() as $date => $version) { @@ -539,20 +539,23 @@ class helper_plugin_extension_list extends DokuWiki_Plugin { * @return string The description of all relevant statusses */ function make_status(helper_plugin_extension_extension $extension) { - $return = ''; + $status = array(); + + if ($extension->isInstalled()) { - $return .= $this->getLang('status_installed').' '; + $status[] = $this->getLang('status_installed'); if ($extension->isProtected()) { - $return .= $this->getLang('status_protected').' '; + $status[] = $this->getLang('status_protected'); } else { - $return .= $extension->isEnabled() ? $this->getLang('status_enabled').' ' : $this->getLang('status_disabled').' '; + $status[] = $extension->isEnabled() ? $this->getLang('status_enabled') : $this->getLang('status_disabled'); } } else { - $return .= $this->getLang('status_not_installed').' '; + $status[] = $this->getLang('status_not_installed'); } - $return .= !$extension->canModify() ? $this->getLang('status_unmodifiable').' ' : ''; - $return .= $extension->isTemplate() ? $this->getLang('status_template') : $this->getLang('status_plugin'); - return $return; + if(!$extension->canModify()) $status[] = $this->getLang('status_unmodifiable'); + if($extension->isBundled()) $status[] = $this->getLang('status_bundled'); + $status[] = $extension->isTemplate() ? $this->getLang('status_template') : $this->getLang('status_plugin'); + return join(', ', $status); } } -- cgit v1.2.3