diff --git a/include/class_template.inc b/include/class_template.inc index 46037cdb05eb001e141686e80cc6c6b288bae2bb..12e49848aa25b3d049eb6df64490c589f9814f2b 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 7ee22cd7fa00d2886d158db07ccee3560c2e3e63..731aca9e0bbca9be41284a57b5f8e53c0a404abc 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); }