- q("UPDATE `contact` SET `name` = '%s', `nick` = '%s', `url` = '%s', `addr` = '%s',
- `notify` = '%s', `poll` = '%s', `alias` = '%s', `success_update` = '%s'
- WHERE `nurl` = '%s' AND NOT `self` AND `uid` = 0",
- dbesc($data["name"]),
- dbesc($data["nick"]),
- dbesc($data["url"]),
- dbesc($data["addr"]),
- dbesc($data["notify"]),
- dbesc($data["poll"]),
- dbesc($data["alias"]),
- dbesc(datetime_convert()),
- dbesc(normalise_link($data['url']))
- );
+ $fields = array('name' => $data['name'],
+ 'nick' => $data['nick'],
+ 'url' => $data['url'],
+ 'addr' => $data['addr'],
+ 'photo' => $data['photo'],
+ 'keywords' => $data['keywords'],
+ 'location' => $data['location'],
+ 'about' => $data['about'],
+ 'notify' => $data['notify'],
+ 'network' => $data['network'],
+ 'server_url' => $data['baseurl']);
+
+ $fieldnames = array();
+
+ foreach ($fields AS $key => $val) {
+ if (empty($val)) {
+ unset($fields[$key]);
+ } else {
+ $fieldnames[] = $key;
+ }
+ }
+
+ $fields['updated'] = DBM::date();
+
+ $condition = array('nurl' => normalise_link($data["url"]));
+
+ $old_fields = dba::select('gcontact', $fieldnames, $condition, array('limit' => 1));
+
+ dba::update('gcontact', $fields, $condition, $old_fields);
+
+ $fields = array('name' => $data['name'],
+ 'nick' => $data['nick'],
+ 'url' => $data['url'],
+ 'addr' => $data['addr'],
+ 'alias' => $data['alias'],
+ 'keywords' => $data['keywords'],
+ 'location' => $data['location'],
+ 'about' => $data['about'],
+ 'batch' => $data['batch'],
+ 'notify' => $data['notify'],
+ 'poll' => $data['poll'],
+ 'request' => $data['request'],
+ 'confirm' => $data['confirm'],
+ 'poco' => $data['poco'],
+ 'network' => $data['network'],
+ 'success_update' => DBM::date());
+
+ $fieldnames = array();
+
+ foreach ($fields AS $key => $val) {
+ if (empty($val)) {
+ unset($fields[$key]);
+ } else {
+ $fieldnames[] = $key;
+ }
+ }
+
+ $condition = array('nurl' => normalise_link($data["url"]), 'self' => false, 'uid' => 0);
+
+ $old_fields = dba::select('contact', $fieldnames, $condition, array('limit' => 1));
+
+ dba::update('contact', $fields, $condition, $old_fields);