Also merge properties of child cols of composite address book fields + remove undefined fields from template
| | |
| | | |
| | | // support for composite address |
| | | if ($this->fieldmap['street'] && $this->fieldmap['locality']) { |
| | | $this->coltypes['address'] = array('limit' => max(1, $this->coltypes['locality']['limit']), 'subtypes' => $this->coltypes['locality']['subtypes']); |
| | | foreach (array('street','locality','zipcode','region','country') as $childcol) |
| | | unset($this->coltypes[$childcol]); // remove address child col from global coltypes list |
| | | $this->coltypes['address'] = array('limit' => max(1, $this->coltypes['locality']['limit']), 'subtypes' => $this->coltypes['locality']['subtypes'], 'childs' => array()); |
| | | foreach (array('street','locality','zipcode','region','country') as $childcol) { |
| | | if ($this->fieldmap[$childcol]) { |
| | | $this->coltypes['address']['childs'][$childcol] = array('type' => 'text'); |
| | | unset($this->coltypes[$childcol]); // remove address child col from global coltypes list |
| | | } |
| | | } |
| | | } |
| | | else if ($this->coltypes['address']) |
| | | $this->coltypes['address'] = array('type' => 'textarea', 'childs' => null, 'limit' => 1, 'size' => 40); |
| | |
| | | $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; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | $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 |