diff --git a/cache/admin.php b/cache/admin.php index 38aea5799edb2..f3e3acb120df3 100644 --- a/cache/admin.php +++ b/cache/admin.php @@ -296,7 +296,7 @@ } 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 f31ce3e7154d3..bc4ce6b99f148 100644 --- a/cache/locallib.php +++ b/cache/locallib.php @@ -866,25 +866,27 @@ public static function get_definition_sharing_options($sharingoption, $isselecte * @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 25566f01809e5..685b83899533d 100644 --- a/cache/renderer.php +++ b/cache/renderer.php @@ -211,10 +211,9 @@ public function store_plugin_summaries(array $plugins) { * 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 @@ public function definition_summaries(array $definitions, array $actions) { $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);