From 54519330120e95cd9b22f860cfaab6a503d9df5b Mon Sep 17 00:00:00 2001 From: Sam Hemelryk Date: Wed, 8 May 2013 11:02:14 +1200 Subject: [PATCH] MDL-39554 cache: sharing link only shown in multiple options are available --- cache/admin.php | 2 +- cache/locallib.php | 32 +++++++++++++++++--------------- cache/renderer.php | 4 ++-- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/cache/admin.php b/cache/admin.php index 38aea5799ed..f3e3acb120d 100644 --- a/cache/admin.php +++ b/cache/admin.php @@ -296,7 +296,7 @@ if ($mform instanceof moodleform) { } else { echo $renderer->store_plugin_summaries($plugins); echo $renderer->store_instance_summariers($stores, $plugins); - echo $renderer->definition_summaries($definitions, cache_administration_helper::get_definition_actions($context)); + echo $renderer->definition_summaries($definitions, $context); echo $renderer->lock_summaries($locks); $applicationstore = join(', ', $defaultmodestores[cache_store::MODE_APPLICATION]); diff --git a/cache/locallib.php b/cache/locallib.php index f31ce3e7154..bc4ce6b99f1 100644 --- a/cache/locallib.php +++ b/cache/locallib.php @@ -866,25 +866,27 @@ abstract class cache_administration_helper extends cache_helper { * @param context $context * @return array */ - public static function get_definition_actions(context $context) { + public static function get_definition_actions(context $context, array $definition) { if (has_capability('moodle/site:config', $context)) { - return array( - // Edit mappings. - array( - 'text' => get_string('editmappings', 'cache'), - 'url' => new moodle_url('/cache/admin.php', array('action' => 'editdefinitionmapping', 'sesskey' => sesskey())) - ), - // Edit sharing. - array( + $actions = array(); + // Edit mappings. + $actions[] = array( + 'text' => get_string('editmappings', 'cache'), + 'url' => new moodle_url('/cache/admin.php', array('action' => 'editdefinitionmapping', 'sesskey' => sesskey())) + ); + // Edit sharing. + if (count($definition['sharingoptions']) > 1) { + $actions[] = array( 'text' => get_string('editsharing', 'cache'), 'url' => new moodle_url('/cache/admin.php', array('action' => 'editdefinitionsharing', 'sesskey' => sesskey())) - ), - // Purge. - array( - 'text' => get_string('purge', 'cache'), - 'url' => new moodle_url('/cache/admin.php', array('action' => 'purgedefinition', 'sesskey' => sesskey())) - ) + ); + } + // Purge. + $actions[] = array( + 'text' => get_string('purge', 'cache'), + 'url' => new moodle_url('/cache/admin.php', array('action' => 'purgedefinition', 'sesskey' => sesskey())) ); + return $actions; } return array(); } diff --git a/cache/renderer.php b/cache/renderer.php index 25566f01809..685b8389953 100644 --- a/cache/renderer.php +++ b/cache/renderer.php @@ -211,10 +211,9 @@ class core_cache_renderer extends plugin_renderer_base { * Displays definition summaries * * @param array $definitions - * @param array $actions * @return string HTML */ - public function definition_summaries(array $definitions, array $actions) { + public function definition_summaries(array $definitions, context $context) { $table = new html_table(); $table->head = array( get_string('definition', 'cache'), @@ -238,6 +237,7 @@ class core_cache_renderer extends plugin_renderer_base { $none = new lang_string('none', 'cache'); foreach ($definitions as $id => $definition) { + $actions = cache_administration_helper::get_definition_actions($context, $definition); $htmlactions = array(); foreach ($actions as $action) { $action['url']->param('definition', $id);