aboutsummaryrefslogtreecommitdiff
path: root/views/default/admin/plugins/advanced.php
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-05-05 19:14:48 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-05-05 19:14:48 +0000
commitff31226fdeb972aac2f37f0098240cb366a9bb26 (patch)
tree1f0caa75c9a340cf28ce9a81a4cbe3230d13abf3 /views/default/admin/plugins/advanced.php
parent81ffac29fabc175eebdbf95578da046f4f00611b (diff)
downloadelgg-ff31226fdeb972aac2f37f0098240cb366a9bb26.tar.gz
elgg-ff31226fdeb972aac2f37f0098240cb366a9bb26.tar.bz2
Merged 18_new_admin branch to trunk.
git-svn-id: http://code.elgg.org/elgg/trunk@5977 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'views/default/admin/plugins/advanced.php')
-rw-r--r--views/default/admin/plugins/advanced.php106
1 files changed, 106 insertions, 0 deletions
diff --git a/views/default/admin/plugins/advanced.php b/views/default/admin/plugins/advanced.php
new file mode 100644
index 000000000..d5def1eb1
--- /dev/null
+++ b/views/default/admin/plugins/advanced.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Elgg administration advanced plugin screen
+ *
+ * Shows a list of all plugins sorted by load order.
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @author Curverider Ltd
+ * @link http://elgg.org/
+ */
+
+regenerate_plugin_list();
+$installed_plugins = get_installed_plugins();
+$plugin_list = array();
+$show_category = get_input('category', NULL);
+
+// Get a list of the all categories
+// and trim down the plugin list if we're not viewing all categories.
+// @todo this could be cached somewhere after have the manifest loaded
+$categories = array();
+
+foreach ($installed_plugins as $id => $plugin) {
+ $plugin_categories = $plugin['manifest']['category'];
+
+ // handle plugins that don't declare categories
+ if ((!$plugin_categories && $show_category) || ($show_category && !in_array($show_category, $plugin_categories))) {
+ unset($installed_plugins[$id]);
+ }
+
+ foreach ($plugin_categories as $category) {
+ if (!array_key_exists($category, $categories)) {
+ $categories[$category] = elgg_echo("admin:plugins:label:moreinfo:categories:$category");
+ }
+ }
+}
+
+$ts = time();
+$token = generate_action_token($ts);
+$categories = array_merge(array('' => elgg_echo('admin:plugins:categories:all')), $categories);
+
+$category_pulldown = elgg_view('input/pulldown', array(
+ 'internalname' => 'category',
+ 'options_values' => $categories,
+ 'value' => $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'));
+
+// @todo Until "en/disable all" means "All plugins on this page" hide when not looking at all.
+if (!isset($show_category) || empty($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
+?>
+<div id="content_header" class="clearfloat">
+ <div class="content_header_title"><?php echo $title ?></div>
+ <div class="content_header_options"><?php echo $buttons ?></div>
+</div>
+<br />
+<?php
+
+$limit = get_input('limit', 10);
+$offset = get_input('offset', 0);
+
+$plugin_list = get_plugin_list();
+$max = 0;
+foreach($plugin_list as $key => $foo) {
+ if ($key > $max) $max = $key;
+}
+
+// Display list of plugins
+$n = 0;
+foreach ($installed_plugins as $plugin => $data) {
+ echo elgg_view('admin/components/plugin', array(
+ 'plugin' => $plugin,
+ 'details' => $data,
+ 'maxorder' => $max,
+ 'order' => array_search($plugin, $plugin_list)
+ ));
+ $n++;
+}
+?>
+<script type="text/javascript">
+ $(document).ready(function() {
+ $('a.manifest_details.link').click(function() {
+ elgg_slide_toggle($(this), '.plugin_details', '.manifest_file');
+ });
+ });
+</script> \ No newline at end of file