alecpl
2011-07-25 71e8cc3bce5053ca986a95ef119101d15317ddc6
- Fixed display name on contact lists


3 files modified
22 ■■■■ changed files
program/include/rcube_addressbook.php 9 ●●●● patch | view | raw | blame | history
program/steps/addressbook/func.inc 9 ●●●● patch | view | raw | blame | history
program/steps/addressbook/save.inc 4 ●●●● patch | view | raw | blame | history
program/include/rcube_addressbook.php
@@ -434,9 +434,11 @@
     * Compose a valid display name from the given structured contact data
     *
     * @param array  Hash array with contact data as key-value pairs
     * @param bool   The name will be used on the list
     *
     * @return string Display name
     */
    public static function compose_display_name($contact)
    public static function compose_display_name($contact, $list_mode = false)
    {
        $contact = rcmail::get_instance()->plugins->exec_hook('contact_displayname', $contact);
        $fn = $contact['name'];
@@ -446,7 +448,12 @@
        // use email address part for name
        $email = is_array($contact['email']) ? $contact['email'][0] : $contact['email'];
        if ($email && (empty($fn) || $fn == $email)) {
            // Use full email address on contacts list
            if ($list_mode)
                return $email;
            list($emailname) = explode('@', $email);
            if (preg_match('/(.*)[\.\-\_](.*)/', $emailname, $match))
                $fn = trim(ucfirst($match[1]).' '.ucfirst($match[2]));
program/steps/addressbook/func.inc
@@ -294,8 +294,13 @@
        }
        // format each col
        foreach ($a_show_cols as $col)
            $a_row_cols[$col] = Q($row[$col]);
        foreach ($a_show_cols as $col) {
            $val = $row[$col];
            if ($val == '' && $col == 'name') {
                $val = rcube_addressbook::compose_display_name($row, true);
            }
            $a_row_cols[$col] = Q($val);
        }
        $OUTPUT->command($prefix.'add_contact_row', $row['ID'], $a_row_cols);
    }
program/steps/addressbook/save.inc
@@ -188,8 +188,8 @@
    $a_js_cols = array();
    $record = $CONTACTS->get_record($newcid ? $newcid : $cid, true);
    $record['email'] = reset($CONTACTS->get_col_values('email', $record, true));
    if (!$record['name'])
      $record['name'] = $record['email'];
    if (empty($record['name']))
      $record['name']  = rcube_addressbook::compose_display_name($record, true);
    foreach (array('name', 'email') as $col)
      $a_js_cols[] = Q((string)$record[$col]);