aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/lib/plugins.php8
-rw-r--r--languages/en.php21
-rw-r--r--views/default/admin/plugins.php30
-rw-r--r--views/default/admin/plugins_opt/plugin.php5
4 files changed, 48 insertions, 16 deletions
diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php
index 4861ffd09..bc703f6c6 100644
--- a/engine/lib/plugins.php
+++ b/engine/lib/plugins.php
@@ -331,7 +331,11 @@ function load_plugin_manifest($plugin) {
$xml = xml_to_object(file_get_contents($CONFIG->pluginspath . $plugin. "/manifest.xml"));
if ($xml) {
- $elements = array();
+ // set up some defaults to normalize expected values to arrays
+ $elements = array(
+ 'screenshot' => array(),
+ 'category' => array()
+ );
foreach ($xml->children as $element) {
$key = $element->attributes['key'];
@@ -358,7 +362,7 @@ function load_plugin_manifest($plugin) {
/**
* This function checks a plugin manifest 'elgg_version' value against the current install
- * returning TRUE if the elgg_version is <= the current install's version.
+ * returning TRUE if the elgg_version is >= the current install's version.
* @param $manifest_elgg_version_string The build version (eg 2009010201).
* @return bool
*/
diff --git a/languages/en.php b/languages/en.php
index c3a76c6d1..62a8a7d09 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -331,16 +331,6 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
'riveritem:plural:user' => 'some users',
/**
- * Plugins
- */
- 'plugins:settings:save:ok' => "Settings for the %s plugin were saved successfully.",
- 'plugins:settings:save:fail' => "There was a problem saving settings for the %s plugin.",
- 'plugins:usersettings:save:ok' => "User settings for the %s plugin were saved successfully.",
- 'plugins:usersettings:save:fail' => "There was a problem saving user settings for the %s plugin.",
- 'admin:plugins:label:version' => "Version",
- 'item:object:plugin' => 'Plugin configuration settings',
-
-/**
* Notifications
*/
'notifications:usersettings' => "Notification settings",
@@ -461,6 +451,15 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
'admin:site:opt:description' => "Configure the site technical and non-technical settings. ",
'admin:site:access:warning' => "Changing the access setting only affects the permissions on content created in the future.",
+/**
+ * Plugins
+ */
+ 'plugins:settings:save:ok' => "Settings for the %s plugin were saved successfully.",
+ 'plugins:settings:save:fail' => "There was a problem saving settings for the %s plugin.",
+ 'plugins:usersettings:save:ok' => "User settings for the %s plugin were saved successfully.",
+ 'plugins:usersettings:save:fail' => "There was a problem saving user settings for the %s plugin.",
+ 'item:object:plugin' => 'Plugin configuration settings',
+
'admin:plugins' => "Tool Administration",
'admin:plugins:description' => "This admin panel allows you to control and configure tools installed on your site.",
'admin:plugins:opt:linktext' => "Configure tools...",
@@ -471,6 +470,7 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
'admin:plugins:label:website' => "URL",
'admin:plugins:label:moreinfo' => 'more info',
'admin:plugins:label:version' => 'Version',
+ 'admin:plugins:label:directory' => 'Directory',
'admin:plugins:warning:elggversionunknown' => 'Warning: This plugin does not specify a compatible Elgg version.',
'admin:plugins:warning:elggtoolow' => 'Warning: This plugin requires a later version of Elgg!',
'admin:plugins:reorder:yes' => "Plugin %s was reordered successfully.",
@@ -479,6 +479,7 @@ To remove a widget drag it back to the <b>Widget gallery</b>.",
'admin:plugins:disable:no' => "Plugin %s could not be disabled.",
'admin:plugins:enable:yes' => "Plugin %s was enabled successfully.",
'admin:plugins:enable:no' => "Plugin %s could not be enabled.",
+ 'admin:plugins:categories:all' => 'All categories',
'admin:statistics' => "Statistics",
'admin:statistics:description' => "This is an overview of statistics on your site. If you need more detailed statistics, a professional administration feature is available.",
diff --git a/views/default/admin/plugins.php b/views/default/admin/plugins.php
index a2bc99b1c..d92c837f6 100644
--- a/views/default/admin/plugins.php
+++ b/views/default/admin/plugins.php
@@ -12,11 +12,35 @@ global $CONFIG;
$ts = time();
$token = generate_action_token($ts);
+$categories = array_merge(array('' => elgg_echo('admin:plugins:categories:all')), $vars['categories']);
+
+$category_pulldown = elgg_view('input/pulldown', array(
+ 'internalname' => 'category',
+ 'options_values' => $categories,
+ 'value' => $vars['show_category']
+));
+
+$category_button = elgg_view('input/button', array(
+ 'value' => elgg_echo('filter'),
+ 'class' => 'action_button'
+));
+
+$category_form = elgg_view('input/form', array(
+ 'body' => $category_pulldown . $category_button
+));
// Page Header elements
$title = elgg_view_title(elgg_echo('admin:plugins'));
-$buttons = "<a class='action_button' href=\"{$CONFIG->url}action/admin/plugins/enableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('enableall')."</a>";
-$buttons .= "<a class='action_button' href=\"{$CONFIG->url}action/admin/plugins/disableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('disableall')."</a> ";
+
+// @todo Until "en/disable all" means "All plugins on this page" hide when not looking at all.
+if (!isset($vars['show_category']) || empty($vars['show_category'])) {
+ $buttons = "<a class='action_button' href=\"{$CONFIG->url}action/admin/plugins/enableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('enableall')."</a> <a class='action_button disabled' href=\"{$CONFIG->url}action/admin/plugins/disableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('disableall')."</a> ";
+ $buttons .= "<br /><br />";
+} else {
+ $buttons = '';
+}
+
+$buttons .= $category_form;
// construct page header
?>
@@ -45,4 +69,4 @@ $n = 0;
foreach ($installed_plugins as $plugin => $data) {
echo elgg_view("admin/plugins_opt/plugin", array('plugin' => $plugin, 'details' => $data, 'maxorder' => $max, 'order' => array_search($plugin, $plugin_list)));
$n++;
-} \ No newline at end of file
+}
diff --git a/views/default/admin/plugins_opt/plugin.php b/views/default/admin/plugins_opt/plugin.php
index 6184580d8..c03477bea 100644
--- a/views/default/admin/plugins_opt/plugin.php
+++ b/views/default/admin/plugins_opt/plugin.php
@@ -17,6 +17,8 @@ $details = $vars['details'];
$active = $details['active'];
$manifest = $details['manifest'];
+$plugin_pretty_name = (isset($manifest['name'])) ? $manifest['name'] : $plugin;
+
// Check elgg version if available
$version_check_valid = false;
if ($manifest['elgg_version']) {
@@ -64,7 +66,7 @@ $token = generate_action_token($ts);
<?php } ?>
</div>
- <h3><?php echo $plugin; ?><?php if (elgg_view("settings/{$plugin}/edit")) { ?> <a class="plugin_settings small link" onclick="elgg_slide_toggle(this,'.plugin_details','.pluginsettings');">[<?php echo elgg_echo('settings'); ?>]</a><?php } ?></h3>
+ <h3><?php echo $plugin_pretty_name; ?><?php if (elgg_view("settings/{$plugin}/edit")) { ?> <a class="plugin_settings small link" onclick="elgg_slide_toggle(this,'.plugin_details','.pluginsettings');">[<?php echo elgg_echo('settings'); ?>]</a><?php } ?></h3>
<?php if (elgg_view("settings/{$plugin}/edit")) { ?>
<div class="pluginsettings hidden">
@@ -101,6 +103,7 @@ $token = generate_action_token($ts);
?>
</div>
<?php } ?>
+ <div><?php echo elgg_echo('admin:plugins:label:directory') . ": ". htmlspecialchars($plugin) ?></div>
<div><?php echo elgg_echo('admin:plugins:label:version') . ": ". htmlspecialchars($manifest['version']) ?></div>
<div><?php echo elgg_echo('admin:plugins:label:author') . ": ". htmlspecialchars($manifest['author']) ?></div>
<div><?php echo elgg_echo('admin:plugins:label:copyright') . ": ". htmlspecialchars($manifest['copyright']) ?></div>