From 5a76b5a5a7e5e6707daec5cf5afb89677d814af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Wed, 20 Dec 2017 11:17:28 +0100 Subject: [PATCH] :sparkles: feat(templates): Allow to use special caller* attributes in templates issue #5745 --- include/class_template.inc | 9 ++++++++- include/class_templateHandling.inc | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/class_template.inc b/include/class_template.inc index 46037cdb0..12e49848a 100644 --- a/include/class_template.inc +++ b/include/class_template.inc @@ -35,6 +35,8 @@ class template protected $applied = FALSE; + static protected $uiSpecialAttributes = array('dn','cn','uid','sn','givenName'); + static function plInfo() { return array( @@ -268,7 +270,12 @@ class template } unset($array); - $this->attrs = templateHandling::parseArray($this->attrs); + $ui = get_userinfo(); + $specialAttrs = array(); + foreach (static::$uiSpecialAttributes as $attr) { + $specialAttrs['caller'.strtoupper($attr)] = $ui->$attr; + } + $this->attrs = templateHandling::parseArray($this->attrs, $specialAttrs); $this->tabObject->adapt_from_template($this->attrs, call_user_func_array('array_merge', $this->attributes)); $this->applied = TRUE; diff --git a/include/class_templateHandling.inc b/include/class_templateHandling.inc index 7ee22cd7f..731aca9e0 100644 --- a/include/class_templateHandling.inc +++ b/include/class_templateHandling.inc @@ -187,7 +187,7 @@ class templateHandling * * \return array An array with the final values of attributes */ - public static function parseArray(array $attrs) + public static function parseArray(array $attrs, array $specialAttrs) { foreach ($attrs as &$attr) { if (is_array($attr)) { @@ -195,7 +195,7 @@ class templateHandling if (!is_numeric($key)) { continue; } - $string = static::parseString($string, $attrs); + $string = static::parseString($string, array_merge($attrs, $specialAttrs)); } unset($string); } -- GitLab