diff options
-rw-r--r-- | Zotlabs/Module/Profiles.php | 34 | ||||
-rw-r--r-- | include/connections.php | 7 | ||||
-rw-r--r-- | include/text.php | 4 |
3 files changed, 41 insertions, 4 deletions
diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php index 72a056963..e166c3c19 100644 --- a/Zotlabs/Module/Profiles.php +++ b/Zotlabs/Module/Profiles.php @@ -319,10 +319,38 @@ class Profiles extends \Zotlabs\Web\Controller { $orig_vcard = (($orig[0]['profile_vcard']) ? \Sabre\VObject\Reader::read($orig[0]['profile_vcard']) : null); - $_REQUEST['fn'] = $name; - $_REQUEST['title'] = $pdesc; + $channel = \App::get_channel(); + + $default_vcard_cat = ((defined('DEFAULT_VCARD_CAT')) ? DEFAULT_VCARD_CAT : 'HOME'); + + $defcard = [ + 'fn' => $name, + 'title' => $pdesc, + 'photo' => $channel['xchan_photo_l'], + 'adr' => [], + 'adr_type' => [ $default_vcard_cat ], + 'tel' => [], + 'tel_type' => [ $default_vcard_cat ], + 'email' => [], + 'email_type' => [ $default_vcard_cat ], + 'impp' => [], + 'impp_type' => [ $default_vcard_cat ], + 'url' => [], + 'url_type' => [ $default_vcard_cat ] + ]; + + $defcard['adr'][] = [ + 0 => '', + 1 => '', + 2 => $address, + 3 => $locality, + 4 => $region, + 5 => $postal_code, + 6 => $country_name + ]; + - $profile_vcard = update_vcard($_REQUEST,$orig_vcard); + $profile_vcard = update_vcard($defcard,$orig_vcard); require_once('include/text.php'); diff --git a/include/connections.php b/include/connections.php index 31e941e95..8daa008c9 100644 --- a/include/connections.php +++ b/include/connections.php @@ -632,6 +632,9 @@ function random_profile() { function update_vcard($arr,$vcard = null) { + + // logger('update_vcard: ' . print_r($arr,true)); + $fn = $arr['fn']; @@ -816,8 +819,10 @@ function get_vcard_array($vc,$id) { $type = (($adr['TYPE']) ? vcard_translate_type((string)$adr['TYPE']) : ''); $adrs[] = [ 'type' => $type, - 'address' => escape_tags($adr->getParts()) + 'address' => $adr->getParts() ]; + $last_entry = end($adrs); + array_walk($adrs[$last_entry],'array_escape_tags'); } } diff --git a/include/text.php b/include/text.php index bc1eff7db..f5b1803c2 100644 --- a/include/text.php +++ b/include/text.php @@ -3128,4 +3128,8 @@ function cleanup_bbcode($body) { function array_trim(&$v,$k) { $v = trim($v); +} + +function array_escape_tags(&$v,$k) { + $v = escape_tags($v); }
\ No newline at end of file |