aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Module/Profiles.php34
-rw-r--r--include/connections.php7
-rw-r--r--include/text.php4
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