roundcubemail/plugins/vcard_attachments/vcard_attachments.php
private function get_contact_vcard($source, $cid, &$filename = null)
    {
        $rcmail  = rcmail::get_instance();
        $source  = $rcmail->get_address_book($source);
        $contact = $source->get_record($cid, true);

        if ($contact) {
            $fieldmap = $source ? $source->vcard_map : null;

            if (empty($contact['vcard'])) {
                $vcard = new rcube_vcard('', RCUBE_CHARSET, false, $fieldmap);
                $vcard->reset();

                foreach ($contact as $key => $values) {
                    list($field, $section) = explode(':', $key);
                    // avoid unwanted casting of DateTime objects to an array
                    // (same as in rcube_contacts::convert_save_data())
                    if (is_object($values) && is_a($values, 'DateTime')) {
                        $values = array($values);
                    }

                    foreach ((array) $values as $value) {
                        if (is_array($value) || is_a($value, 'DateTime') || @strlen($value)) {
                            $vcard->set($field, $value, strtoupper($section));
                        }
                    }
                }

                $contact['vcard'] = $vcard->export();
            }

            $name     = rcube_addressbook::compose_list_name($contact);
            $filename = (self::parse_filename($name) ?: 'contact') . '.vcf';

            // fix folding and end-of-line chars
            $vcard = preg_replace('/\r|\n\s+/', '', $contact['vcard']);
            $vcard = preg_replace('/\n/', rcube_vcard::$eol, $vcard);

            return rcube_vcard::rfc2425_fold($vcard) . rcube_vcard::$eol;
        }
    }
private function get_contact_vcard($source, $cid, &$filename = null)
    {
        $rcmail  = rcmail::get_instance();
        $source  = $rcmail->get_address_book($source);
        $contact = $source->get_record($cid, true);

        if ($contact) {
            $fieldmap = $source ? $source->vcard_map : null;

            if (empty($contact['vcard'])) {
                $vcard = new rcube_vcard('', RCUBE_CHARSET, false, $fieldmap);
                $vcard->reset();

                foreach ($contact as $key => $values) {
                    list($field, $section) = explode(':', $key);
                    // avoid unwanted casting of DateTime objects to an array
                    // (same as in rcube_contacts::convert_save_data())
                    if (is_object($values) && is_a($values, 'DateTime')) {
                        $values = array($values);
                    }

                    foreach ((array) $values as $value) {
                        if (is_array($value) || is_a($value, 'DateTime') || @strlen($value)) {
                            $vcard->set($field, $value, strtoupper($section));
                        }
                    }
                }

                $contact['vcard'] = $vcard->export();
            }

            $name     = rcube_addressbook::compose_list_name($contact);
            $filename = (self::parse_filename($name) ?: 'contact') . '.vcf';

            // fix folding and end-of-line chars
            $vcard = preg_replace('/\r|\n\s+/', '', $contact['vcard']);
            $vcard = preg_replace('/\n/', rcube_vcard::$eol, $vcard);

            return rcube_vcard::rfc2425_fold($vcard) . rcube_vcard::$eol;
        }
    }
private function get_contact_vcard ( $ source , $ cid , & $ filename = null ) { $ rcmail = rcmail :: get_instance ( ) ; $ source = $ rcmail -> get_address_book ( $ source ) ; $ contact = $ source -> get_record ( $ cid , true ) ; if ( $ contact ) { $ fieldmap = $ source ? $ source -> vcard_map : null ; if ( empty ( $ contact [ 'vcard' ] ) ) { $ vcard = new rcube_vcard ( '' , RCUBE_CHARSET , false , $ fieldmap ) ; $ vcard -> reset ( ) ; foreach ( $ contact as $ key => $ values ) { list ( $ field , $ section ) = explode ( ':' , $ key ) ; // avoid unwanted casting of DateTime objects to an array // (same as in rcube_contacts::convert_save_data()) if ( is_object ( $ values ) && is_a ( $ values , 'DateTime' ) ) { $ values = array ( $ values ) ; } foreach ( ( array ) $ values as $ value ) { if ( is_array ( $ value ) || is_a ( $ value , 'DateTime' ) || @ strlen ( $ value ) ) { $ vcard -> set ( $ field , $ value , strtoupper ( $ section ) ) ; } } } $ contact [ 'vcard' ] = $ vcard -> export ( ) ; } $ name = rcube_addressbook :: compose_list_name ( $ contact ) ; $ filename = ( self :: parse_filename ( $ name ) ? : 'contact' ) . '.vcf' ; // fix folding and end-of-line chars $ vcard = preg_replace ( '/\r|\n\s+/' , '' , $ contact [ 'vcard' ] ) ; $ vcard = preg_replace ( '/\n/' , rcube_vcard :: $ eol , $ vcard ) ; return rcube_vcard :: rfc2425_fold ( $ vcard ) . rcube_vcard :: $ eol ; } }
Get vcard data for specified contact
Get vcard data for specified contact