From 3ac5cdb4acc4b82c0b306df4e64081a7f7e4213d Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sun, 30 Oct 2011 12:33:09 -0400
Subject: [PATCH] Also merge properties of child cols of composite address book fields + remove undefined fields from template

---
 program/steps/addressbook/func.inc |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index 2082dbd..2b06e62 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -140,8 +140,13 @@
         $CONTACT_COLTYPES = array_intersect_key($CONTACT_COLTYPES, $contact_cols);
         // add associative coltypes definition
         if (!$CONTACTS->coltypes[0]) {
-            foreach ($CONTACTS->coltypes as $col => $colprop)
+            foreach ($CONTACTS->coltypes as $col => $colprop) {
+                if (is_array($colprop['childs'])) {
+                    foreach ($colprop['childs'] as $childcol => $childprop)
+                        $colprop['childs'][$childcol] = array_merge((array)$CONTACT_COLTYPES[$col]['childs'][$childcol], $childprop);
+                }
                 $CONTACT_COLTYPES[$col] = $CONTACT_COLTYPES[$col] ? array_merge($CONTACT_COLTYPES[$col], $colprop) : $colprop;
+            }
         }
     }
 
@@ -597,7 +602,7 @@
 
                         $coltypes[$field] += (array)$colprop;
                         $coltypes[$field]['count']++;
-                        $val = strtr($template, $composite);
+                        $val = preg_replace('/\{\w+\}/', '', strtr($template, $composite));
                     }
                     else if ($edit_mode) {
                         // call callback to render/format value

--
Gitblit v1.9.1