MDL-50455: tool_capability: Use static cache when loading context data

This commit is contained in:
Luke Tucker 2015-06-04 11:28:44 +09:30 committed by Eloy Lafuente (stronk7)
parent 287c044f9c
commit 785271c6d9

View File

@ -76,6 +76,7 @@ class tool_capability_renderer extends plugin_renderer_base {
* @return string
*/
public function capability_comparison_table(array $capabilities, $contextid, array $roles, $onlydiff=false) {
static $capabilitycontexts = array();
$strpermissions = $this->get_permission_strings();
$permissionclasses = $this->get_permission_classes();
@ -94,7 +95,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;