--- Object.php.orig 2012-04-01 09:28:05.195658336 +0200
+++ Object.php 2012-04-04 14:32:55.631660180 +0200
@@ -90,22 +90,24 @@
*/
public function getValue($attribute)
{
- if (isset($this->attributes[$attribute]) &&
- Horde::hookExists('decode_attribute', 'turba')) {
- try {
- return Horde::callHook('decode_attribute', array($attribute, $this->attributes[$attribute], $this), 'turba');
- } catch (Turba_Exception $e) {}
- }
+ /* compose composite fields */
if (isset($this->driver->map[$attribute]) &&
is_array($this->driver->map[$attribute])) {
$args = array();
foreach ($this->driver->map[$attribute]['fields'] as $field) {
$args[] = $this->getValue($field);
}
- return Turba::formatCompositeField($this->driver->map[$attribute]['format'], $args);
- } elseif (!isset($this->attributes[$attribute])) {
- return null;
- } elseif (isset($GLOBALS['attributes'][$attribute]) &&
+ $this->attributes[$attribute] = Turba::formatCompositeField($this->driver->map[$attribute]['format'], $args);
+ }
+ /* call decode_attribute hook */
+ if (isset($this->attributes[$attribute]) &&
+ Horde::hookExists('decode_attribute', 'turba')) {
+ try {
+ $this->attributes[$attribute] = Horde::callHook('decode_attribute', array($attribute, $this->attributes[$attribute], $this), 'turba');
+ } catch (Turba_Exception $e) {}
+ }
+ /* wrap images in data/file array */
+ if (isset($GLOBALS['attributes'][$attribute]) &&
($GLOBALS['attributes'][$attribute]['type'] == 'image')) {
return empty($this->attributes[$attribute])
? null