From d08e7b7e8ae9bfa3e18169ef986260ff0c5eb642 Mon Sep 17 00:00:00 2001 From: Luke Tucker Date: Thu, 4 Jun 2015 11:28:44 +0930 Subject: [PATCH] MDL-50455: tool_capability: Use static cache when loading context data --- admin/tool/capability/renderer.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/admin/tool/capability/renderer.php b/admin/tool/capability/renderer.php index 01b7d3d08a8..427613ef159 100644 --- a/admin/tool/capability/renderer.php +++ b/admin/tool/capability/renderer.php @@ -75,6 +75,7 @@ class tool_capability_renderer extends plugin_renderer_base { * @return string */ public function capability_comparison_table(array $capabilities, $contextid, array $roles) { + static $capabilitycontexts = array(); $strpermissions = $this->get_permission_strings(); $permissionclasses = $this->get_permission_classes(); @@ -93,7 +94,11 @@ class tool_capability_renderer extends plugin_renderer_base { $table->data = array(); foreach ($capabilities as $capability) { - $contexts = tool_capability_calculate_role_data($capability, $roles); + if (empty($capabilitycontexts[$capability])) { + $capabilitycontexts[$capability] = tool_capability_calculate_role_data($capability, $roles); + } + $contexts = $capabilitycontexts[$capability]; + $captitle = new html_table_cell(get_capability_string($capability) . html_writer::span($capability)); $captitle->header = true;