diff --git a/src/Core/NotificationsManager.php b/src/Core/NotificationsManager.php index 9839f7147c..6efd17ddf2 100644 --- a/src/Core/NotificationsManager.php +++ b/src/Core/NotificationsManager.php @@ -1,11 +1,14 @@ a = get_app(); - } - /** * @brief set some extra note properties * @@ -51,15 +44,14 @@ class NotificationsManager $local_time = datetime_convert('UTC', date_default_timezone_get(), $n['date']); $n['timestamp'] = strtotime($local_time); $n['date_rel'] = relative_date($n['date']); - $n['msg_html'] = bbcode($n['msg'], false, false, false, false); - $n['msg_plain'] = explode("\n", trim(html2plain($n['msg_html'], 0)))[0]; + $n['msg_html'] = bbcode($n['msg'], false, false, false, false); + $n['msg_plain'] = explode("\n", trim(html2plain($n['msg_html'], 0)))[0]; $rets[] = $n; } return $rets; } - /** * @brief Get all notifications for local_user() * @@ -77,19 +69,19 @@ class NotificationsManager foreach ($filter as $column => $value) { $filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value)); } - if (count($filter_str)>0) { - $filter_sql = "AND ".implode(" AND ", $filter_str); + if (count($filter_str) > 0) { + $filter_sql = "AND " . implode(" AND ", $filter_str); } $aOrder = explode(" ", $order); $asOrder = array(); foreach ($aOrder as $o) { $dir = "asc"; - if ($o[0]==="-") { + if ($o[0] === "-") { $dir = "desc"; $o = substr($o, 1); } - if ($o[0]==="+") { + if ($o[0] === "+") { $dir = "asc"; $o = substr($o, 1); } @@ -98,12 +90,12 @@ class NotificationsManager $order_sql = implode(", ", $asOrder); if ($limit != "") { - $limit = " LIMIT ".$limit; + $limit = " LIMIT " . $limit; } - $r = q( - "SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit", - intval(local_user()) - ); + $r = q( + "SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit", + intval(local_user()) + ); if (DBM::is_result($r)) { return $this->_set_extra($r); @@ -175,37 +167,37 @@ class NotificationsManager $tabs = array( array( 'label' => t('System'), - 'url'=>'notifications/system', - 'sel'=> (($this->a->argv[1] == 'system') ? 'active' : ''), - 'id' => 'system-tab', + 'url' => 'notifications/system', + 'sel' => ((self::getApp()->argv[1] == 'system') ? 'active' : ''), + 'id' => 'system-tab', 'accesskey' => 'y', ), array( 'label' => t('Network'), - 'url'=>'notifications/network', - 'sel'=> (($this->a->argv[1] == 'network') ? 'active' : ''), - 'id' => 'network-tab', + 'url' => 'notifications/network', + 'sel' => ((self::getApp()->argv[1] == 'network') ? 'active' : ''), + 'id' => 'network-tab', 'accesskey' => 'w', ), array( 'label' => t('Personal'), - 'url'=>'notifications/personal', - 'sel'=> (($this->a->argv[1] == 'personal') ? 'active' : ''), - 'id' => 'personal-tab', + 'url' => 'notifications/personal', + 'sel' => ((self::getApp()->argv[1] == 'personal') ? 'active' : ''), + 'id' => 'personal-tab', 'accesskey' => 'r', ), array( 'label' => t('Home'), - 'url' => 'notifications/home', - 'sel'=> (($this->a->argv[1] == 'home') ? 'active' : ''), - 'id' => 'home-tab', + 'url' => 'notifications/home', + 'sel' => ((self::getApp()->argv[1] == 'home') ? 'active' : ''), + 'id' => 'home-tab', 'accesskey' => 'h', ), array( 'label' => t('Introductions'), - 'url' => 'notifications/intros', - 'sel'=> (($this->a->argv[1] == 'intros') ? 'active' : ''), - 'id' => 'intro-tab', + 'url' => 'notifications/intros', + 'sel' => ((self::getApp()->argv[1] == 'intros') ? 'active' : ''), + 'id' => 'intro-tab', 'accesskey' => 'i', ), ); @@ -219,14 +211,14 @@ class NotificationsManager * @param array $notifs The array from the db query * @param string $ident The notifications identifier (e.g. network) * @return array - * string 'label' => The type of the notification - * string 'link' => URL to the source - * string 'image' => The avatar image - * string 'url' => The profile url of the contact - * string 'text' => The notification text - * string 'when' => The date of the notification - * string 'ago' => T relative date of the notification - * bool 'seen' => Is the notification marked as "seen" + * string 'label' => The type of the notification + * string 'link' => URL to the source + * string 'image' => The avatar image + * string 'url' => The profile url of the contact + * string 'text' => The notification text + * string 'when' => The date of the notification + * string 'ago' => T relative date of the notification + * bool 'seen' => Is the notification marked as "seen" */ private function formatNotifs($notifs, $ident = "") { @@ -246,7 +238,7 @@ class NotificationsManager switch ($ident) { case 'system': $default_item_label = 'notify'; - $default_item_link = System::baseUrl(true).'/notify/view/'. $it['id']; + $default_item_link = System::baseUrl(true) . '/notify/view/' . $it['id']; $default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO); $default_item_url = $it['url']; $default_item_text = strip_tags(bbcode($it['msg'])); @@ -256,7 +248,7 @@ class NotificationsManager case 'home': $default_item_label = 'comment'; - $default_item_link = System::baseUrl(true).'/display/'.$it['pguid']; + $default_item_link = System::baseUrl(true) . '/display/' . $it['pguid']; $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); $default_item_url = $it['author-link']; $default_item_text = sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']); @@ -266,7 +258,7 @@ class NotificationsManager default: $default_item_label = (($it['id'] == $it['parent']) ? 'post' : 'comment'); - $default_item_link = System::baseUrl(true).'/display/'.$it['pguid']; + $default_item_link = System::baseUrl(true) . '/display/' . $it['pguid']; $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); $default_item_url = $it['author-link']; $default_item_text = (($it['id'] == $it['parent']) @@ -281,7 +273,7 @@ class NotificationsManager case ACTIVITY_LIKE: $notif = array( 'label' => 'like', - 'link' => System::baseUrl(true).'/display/'.$it['pguid'], + 'link' => System::baseUrl(true) . '/display/' . $it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'url' => $it['author-link'], 'text' => sprintf(t("%s liked %s's post"), $it['author-name'], $it['pname']), @@ -294,7 +286,7 @@ class NotificationsManager case ACTIVITY_DISLIKE: $notif = array( 'label' => 'dislike', - 'link' => System::baseUrl(true).'/display/'.$it['pguid'], + 'link' => System::baseUrl(true) . '/display/' . $it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'url' => $it['author-link'], 'text' => sprintf(t("%s disliked %s's post"), $it['author-name'], $it['pname']), @@ -307,7 +299,7 @@ class NotificationsManager case ACTIVITY_ATTEND: $notif = array( 'label' => 'attend', - 'link' => System::baseUrl(true).'/display/'.$it['pguid'], + 'link' => System::baseUrl(true) . '/display/' . $it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'url' => $it['author-link'], 'text' => sprintf(t("%s is attending %s's event"), $it['author-name'], $it['pname']), @@ -320,7 +312,7 @@ class NotificationsManager case ACTIVITY_ATTENDNO: $notif = array( 'label' => 'attendno', - 'link' => System::baseUrl(true).'/display/'.$it['pguid'], + 'link' => System::baseUrl(true) . '/display/' . $it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'url' => $it['author-link'], 'text' => sprintf(t("%s is not attending %s's event"), $it['author-name'], $it['pname']), @@ -333,7 +325,7 @@ class NotificationsManager case ACTIVITY_ATTENDMAYBE: $notif = array( 'label' => 'attendmaybe', - 'link' => System::baseUrl(true).'/display/'.$it['pguid'], + 'link' => System::baseUrl(true) . '/display/' . $it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'url' => $it['author-link'], 'text' => sprintf(t("%s may attend %s's event"), $it['author-name'], $it['pname']), @@ -344,13 +336,13 @@ class NotificationsManager break; case ACTIVITY_FRIEND: - $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">"; - $obj = parse_xml_string($xmlhead.$it['object']); + $xmlhead = "<" . "?xml version='1.0' encoding='UTF-8' ?" . ">"; + $obj = parse_xml_string($xmlhead . $it['object']); $it['fname'] = $obj->title; $notif = array( 'label' => 'friend', - 'link' => System::baseUrl(true).'/display/'.$it['pguid'], + 'link' => System::baseUrl(true) . '/display/' . $it['pguid'], 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'url' => $it['author-link'], 'text' => sprintf(t("%s is now friends with %s"), $it['author-name'], $it['fname']), @@ -383,7 +375,7 @@ class NotificationsManager /** * @brief Total number of network notifications * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * * @return int Number of network notifications */ @@ -403,7 +395,6 @@ class NotificationsManager $sql_seen", intval(local_user()) ); - if (DBM::is_result($r)) { return $r[0]['total']; } @@ -415,14 +406,14 @@ class NotificationsManager * @brief Get network notifications * * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * @param int $start Start the query at this point * @param int $limit Maximum number of query results * * @return array with - * string 'ident' => Notification identifier - * int 'total' => Total number of available network notifications - * array 'notifications' => Network notifications + * string 'ident' => Notification identifier + * int 'total' => Total number of available network notifications + * array 'notifications' => Network notifications */ public function networkNotifs($seen = 0, $start = 0, $limit = 80) { @@ -435,7 +426,6 @@ class NotificationsManager $sql_seen = " AND `item`.`unseen` = 1 "; } - $r = q( "SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`, `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`, @@ -449,16 +439,15 @@ class NotificationsManager intval($start), intval($limit) ); - if (DBM::is_result($r)) { $notifs = $this->formatNotifs($r, $ident); } - $arr = array ( + $arr = [ 'notifications' => $notifs, 'ident' => $ident, 'total' => $total, - ); + ]; return $arr; } @@ -466,7 +455,7 @@ class NotificationsManager /** * @brief Total number of system notifications * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * * @return int Number of system notifications */ @@ -482,7 +471,6 @@ class NotificationsManager "SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen", intval(local_user()) ); - if (DBM::is_result($r)) { return $r[0]['total']; } @@ -494,14 +482,14 @@ class NotificationsManager * @brief Get system notifications * * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * @param int $start Start the query at this point * @param int $limit Maximum number of query results * * @return array with - * string 'ident' => Notification identifier - * int 'total' => Total number of available system notifications - * array 'notifications' => System notifications + * string 'ident' => Notification identifier + * int 'total' => Total number of available system notifications + * array 'notifications' => System notifications */ public function systemNotifs($seen = 0, $start = 0, $limit = 80) { @@ -521,30 +509,29 @@ class NotificationsManager intval($start), intval($limit) ); - if (DBM::is_result($r)) { $notifs = $this->formatNotifs($r, $ident); } - $arr = array ( + $arr = [ 'notifications' => $notifs, 'ident' => $ident, 'total' => $total, - ); + ]; return $arr; } /** - * @brief Addional SQL query string for the personal notifications + * @brief Additional SQL query string for the personal notifications * - * @return string The additional sql query + * @return string The additional SQL query */ private function personalSqlExtra() { - $myurl = System::baseUrl(true) . '/profile/'. $this->a->user['nickname']; + $myurl = System::baseUrl(true) . '/profile/' . self::getApp()->user['nickname']; $myurl = substr($myurl, strpos($myurl, '://') + 3); - $myurl = str_replace(array('www.','.'), array('','\\.'), $myurl); + $myurl = str_replace(array('www.', '.'), array('', '\\.'), $myurl); $diasp_url = str_replace('/profile/', '/u/', $myurl); $sql_extra = sprintf( " AND ( `item`.`author-link` regexp '%s' OR `item`.`tag` regexp '%s' OR `item`.`tag` regexp '%s' ) ", @@ -559,7 +546,7 @@ class NotificationsManager /** * @brief Total number of personal notifications * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * * @return int Number of personal notifications */ @@ -581,7 +568,6 @@ class NotificationsManager AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ", intval(local_user()) ); - if (DBM::is_result($r)) { return $r[0]['total']; } @@ -593,14 +579,14 @@ class NotificationsManager * @brief Get personal notifications * * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * @param int $start Start the query at this point * @param int $limit Maximum number of query results * * @return array with - * string 'ident' => Notification identifier - * int 'total' => Total number of available personal notifications - * array 'notifications' => Personal notifications + * string 'ident' => Notification identifier + * int 'total' => Total number of available personal notifications + * array 'notifications' => Personal notifications */ public function personalNotifs($seen = 0, $start = 0, $limit = 80) { @@ -628,12 +614,11 @@ class NotificationsManager intval($start), intval($limit) ); - if (DBM::is_result($r)) { $notifs = $this->formatNotifs($r, $ident); } - $arr = array ( + $arr = array( 'notifications' => $notifs, 'ident' => $ident, 'total' => $total, @@ -645,7 +630,7 @@ class NotificationsManager /** * @brief Total number of home notifications * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * * @return int Number of home notifications */ @@ -664,7 +649,6 @@ class NotificationsManager $sql_seen", intval(local_user()) ); - if (DBM::is_result($r)) { return $r[0]['total']; } @@ -676,14 +660,14 @@ class NotificationsManager * @brief Get home notifications * * @param int|string $seen If 0 only include notifications into the query - * which aren't marked as "seen" + * which aren't marked as "seen" * @param int $start Start the query at this point * @param int $limit Maximum number of query results * * @return array with - * string 'ident' => Notification identifier - * int 'total' => Total number of available home notifications - * array 'notifications' => Home notifications + * string 'ident' => Notification identifier + * int 'total' => Total number of available home notifications + * array 'notifications' => Home notifications */ public function homeNotifs($seen = 0, $start = 0, $limit = 80) { @@ -709,16 +693,15 @@ class NotificationsManager intval($start), intval($limit) ); - if (DBM::is_result($r)) { $notifs = $this->formatNotifs($r, $ident); } - $arr = array ( + $arr = [ 'notifications' => $notifs, 'ident' => $ident, 'total' => $total, - ); + ]; return $arr; } @@ -726,7 +709,7 @@ class NotificationsManager /** * @brief Total number of introductions * @param bool $all If false only include introductions into the query - * which aren't marked as ignored + * which aren't marked as ignored * * @return int Number of introductions */ @@ -755,7 +738,7 @@ class NotificationsManager * @brief Get introductions * * @param bool $all If false only include introductions into the query - * which aren't marked as ignored + * which aren't marked as ignored * @param int $start Start the query at this point * @param int $limit Maximum number of query results * @@ -793,16 +776,15 @@ class NotificationsManager intval($start), intval($limit) ); - if (DBM::is_result($r)) { $notifs = $this->formatIntros($r); } - $arr = array ( + $arr = [ 'ident' => $ident, 'total' => $total, 'notifications' => $notifs, - ); + ]; return $arr; } @@ -820,10 +802,9 @@ class NotificationsManager foreach ($intros as $it) { // There are two kind of introduction. Contacts suggested by other contacts and normal connection requests. // We have to distinguish between these two because they use different data. - // Contact suggestions if ($it['fid']) { - $return_addr = bin2hex($this->a->user['nickname'] . '@' . $this->a->get_hostname() . (($this->a->path) ? '/' . $this->a->path : '')); + $return_addr = bin2hex(self::getApp()->user['nickname'] . '@' . self::getApp()->get_hostname() . ((self::getApp()->path) ? '/' . self::getApp()->path : '')); $intro = array( 'label' => 'friend_suggestion', @@ -839,7 +820,6 @@ class NotificationsManager 'knowyou' => $knowyou, 'note' => $it['note'], 'request' => $it['frequest'] . '?addr=' . $return_addr, - ); // Normal connection requests diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 4cec36c9ea..99183295b5 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -89,7 +89,6 @@ class Contact extends BaseObject return $return; } - /** * Creates the self-contact for the provided user id * @@ -432,19 +431,27 @@ class Contact extends BaseObject // Fetch contact data from the contact table for the given user $r = q("SELECT `id`, `id` AS `cid`, 0 AS `gid`, 0 AS `zid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`, `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, `self` - FROM `contact` WHERE `addr` = '%s' AND `uid` = %d", dbesc($addr), intval($uid)); - + FROM `contact` WHERE `addr` = '%s' AND `uid` = %d", + dbesc($addr), + intval($uid) + ); // Fetch the data from the contact table with "uid=0" (which is filled automatically) - if (!DBM::is_result($r)) + if (!DBM::is_result($r)) { $r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`, - `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self` - FROM `contact` WHERE `addr` = '%s' AND `uid` = 0", dbesc($addr)); + `keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self` + FROM `contact` WHERE `addr` = '%s' AND `uid` = 0", + dbesc($addr) + ); + } // Fetch the data from the gcontact table - if (!DBM::is_result($r)) + if (!DBM::is_result($r)) { $r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`, - `keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self` - FROM `gcontact` WHERE `addr` = '%s'", dbesc($addr)); + `keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self` + FROM `gcontact` WHERE `addr` = '%s'", + dbesc($addr) + ); + } if (!DBM::is_result($r)) { $data = Probe::uri($addr); @@ -540,19 +547,18 @@ class Contact extends BaseObject * Menu array: * "name" => [ "Label", "link", (bool)Should the link opened in a new tab? ] */ - $menu = array( - 'status' => array(t("View Status"), $status_link, true), - 'profile' => array(t("View Profile"), $profile_link, true), - 'photos' => array(t("View Photos"), $photos_link, true), - 'network' => array(t("Network Posts"), $posts_link, false), - 'edit' => array(t("View Contact"), $contact_url, false), - 'drop' => array(t("Drop Contact"), $contact_drop_link, false), - 'pm' => array(t("Send PM"), $pm_url, false), - 'poke' => array(t("Poke"), $poke_link, false), - ); + $menu = [ + 'status' => [t("View Status") , $status_link , true], + 'profile' => [t("View Profile") , $profile_link , true], + 'photos' => [t("View Photos") , $photos_link , true], + 'network' => [t("Network Posts"), $posts_link , false], + 'edit' => [t("View Contact") , $contact_url , false], + 'drop' => [t("Drop Contact") , $contact_drop_link, false], + 'pm' => [t("Send PM") , $pm_url , false], + 'poke' => [t("Poke") , $poke_link , false], + ]; - - $args = array('contact' => $contact, 'menu' => &$menu); + $args = ['contact' => $contact, 'menu' => &$menu]; call_hooks('contact_photo_menu', $args); @@ -593,7 +599,9 @@ class Contact extends BaseObject SELECT DISTINCT(`contact-id`) FROM `group_member` WHERE `uid` = %d - )", intval($uid), intval($uid) + )", + intval($uid), + intval($uid) ); return $r; @@ -612,13 +620,18 @@ class Contact extends BaseObject INNER JOIN `group` ON `group`.`id` = `group_member`.`gid` WHERE `group`.`uid` = %d ) - LIMIT %d, %d", intval($uid), intval($uid), intval($start), intval($count) + LIMIT %d, %d", + intval($uid), + intval($uid), + intval($start), + intval($count) ); + return $r; } /** - * @brief Fetch the contact id for a given url and user + * @brief Fetch the contact id for a given URL and user * * First lookup in the contact table to find a record matching either `url`, `nurl`, * `addr` or `alias`. @@ -627,7 +640,7 @@ class Contact extends BaseObject * If there's one, we check that it isn't time to update the picture else we * directly return the found contact id. * - * Second, we probe the provided $url wether it's http://server.tld/profile or + * Second, we probe the provided $url whether it's http://server.tld/profile or * nick@server.tld. We quit if we can't get any info back. * * Third, we create the contact record if it doesn't exist @@ -710,19 +723,36 @@ class Contact extends BaseObject $url = $data["url"]; if (!$contact_id) { - dba::insert( - 'contact', array('uid' => $uid, 'created' => datetime_convert(), 'url' => $data["url"], - 'nurl' => normalise_link($data["url"]), 'addr' => $data["addr"], - 'alias' => $data["alias"], 'notify' => $data["notify"], 'poll' => $data["poll"], - 'name' => $data["name"], 'nick' => $data["nick"], 'photo' => $data["photo"], - 'keywords' => $data["keywords"], 'location' => $data["location"], 'about' => $data["about"], - 'network' => $data["network"], 'pubkey' => $data["pubkey"], - 'rel' => CONTACT_IS_SHARING, 'priority' => $data["priority"], - 'batch' => $data["batch"], 'request' => $data["request"], - 'confirm' => $data["confirm"], 'poco' => $data["poco"], - 'name-date' => datetime_convert(), 'uri-date' => datetime_convert(), - 'avatar-date' => datetime_convert(), 'writable' => 1, 'blocked' => 0, - 'readonly' => 0, 'pending' => 0) + dba::insert('contact', [ + 'uid' => $uid, + 'created' => datetime_convert(), + 'url' => $data["url"], + 'nurl' => normalise_link($data["url"]), + 'addr' => $data["addr"], + 'alias' => $data["alias"], + 'notify' => $data["notify"], + 'poll' => $data["poll"], + 'name' => $data["name"], + 'nick' => $data["nick"], + 'photo' => $data["photo"], + 'keywords' => $data["keywords"], + 'location' => $data["location"], + 'about' => $data["about"], + 'network' => $data["network"], + 'pubkey' => $data["pubkey"], + 'rel' => CONTACT_IS_SHARING, + 'priority' => $data["priority"], + 'batch' => $data["batch"], + 'request' => $data["request"], + 'confirm' => $data["confirm"], + 'poco' => $data["poco"], + 'name-date' => datetime_convert(), + 'uri-date' => datetime_convert(), + 'avatar-date' => datetime_convert(), + 'writable' => 1, + 'blocked' => 0, + 'readonly' => 0, + 'pending' => 0] ); $s = dba::select('contact', ['id'], ['nurl' => normalise_link($data["url"]), 'uid' => $uid], ['order' => ['id'], 'limit' => 2]); @@ -750,8 +780,8 @@ class Contact extends BaseObject } if (count($contacts) > 1 && $uid == 0 && $contact_id != 0 && $data["url"] != "") { - dba::delete('contact', array("`nurl` = ? AND `uid` = 0 AND `id` != ? AND NOT `self`", - normalise_link($data["url"]), $contact_id)); + dba::delete('contact', ["`nurl` = ? AND `uid` = 0 AND `id` != ? AND NOT `self`", + normalise_link($data["url"]), $contact_id]); } } @@ -859,7 +889,9 @@ class Contact extends BaseObject // There are no posts with "uid = 0" with connector networks // This speeds up the query a lot $r = q("SELECT `network`, `id` AS `author-id`, `contact-type` FROM `contact` - WHERE `contact`.`nurl` = '%s' AND `contact`.`uid` = 0", dbesc(normalise_link($contact_url))); + WHERE `contact`.`nurl` = '%s' AND `contact`.`uid` = 0", + dbesc(normalise_link($contact_url)) + ); if (!DBM::is_result($r)) { return ''; @@ -881,7 +913,6 @@ class Contact extends BaseObject intval($a->pager['start']), intval($a->pager['itemspage']) ); - $o = conversation($a, $r, 'contact-posts', false); $o .= alt_pager($a, count($r)); @@ -918,6 +949,7 @@ class Contact extends BaseObject if (isset($contact["contact-type"])) { $type = $contact["contact-type"]; } + if (isset($contact["account-type"])) { $type = $contact["account-type"]; } @@ -964,10 +996,10 @@ class Contact extends BaseObject $return = dba::update('contact', ['blocked' => false], ['id' => $uid]); return $return; - } + } - /** - * @brief Updates the avatar links in a contact only if needed + /** + * @brief Updates the avatar links in a contact only if needed * * @param string $avatar Link to avatar picture * @param int $uid User id of contact owner @@ -1017,9 +1049,9 @@ class Contact extends BaseObject public static function updateFromProbe($id) { /* - Warning: Never ever fetch the public key via Probe::uri and write it into the contacts. - This will reliably kill your communication with Friendica contacts. - */ + Warning: Never ever fetch the public key via Probe::uri and write it into the contacts. + This will reliably kill your communication with Friendica contacts. + */ $fields = ['url', 'nurl', 'addr', 'alias', 'batch', 'notify', 'poll', 'poco', 'network']; $contact = dba::selectFirst('contact', $fields, ['id' => $id]); @@ -1052,16 +1084,15 @@ class Contact extends BaseObject } dba::update( - 'contact', - [ - 'url' => $ret['url'], - 'nurl' => normalise_link($ret['url']), - 'addr' => $ret['addr'], - 'alias' => $ret['alias'], - 'batch' => $ret['batch'], + 'contact', [ + 'url' => $ret['url'], + 'nurl' => normalise_link($ret['url']), + 'addr' => $ret['addr'], + 'alias' => $ret['alias'], + 'batch' => $ret['batch'], 'notify' => $ret['notify'], - 'poll' => $ret['poll'], - 'poco' => $ret['poco'] + 'poll' => $ret['poll'], + 'poco' => $ret['poco'] ], ['id' => $id] ); @@ -1077,7 +1108,7 @@ class Contact extends BaseObject * Currently if the contact is DFRN, interactive needs to be true, to redirect to the * dfrn_request page. * - * Otherwise this can be used to bulk add statusnet contacts, twitter contacts, etc. + * Otherwise this can be used to bulk add StatusNet contacts, Twitter contacts, etc. * * Returns an array * $return['success'] boolean true if successful @@ -1204,7 +1235,9 @@ class Contact extends BaseObject if (!DBM::is_result($r)) { $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `nurl` = '%s' AND `network` = '%s' LIMIT 1", - intval($uid), dbesc(normalise_link($url)), dbesc($ret['network']) + intval($uid), + dbesc(normalise_link($url)), + dbesc($ret['network']) ); } @@ -1218,33 +1251,30 @@ class Contact extends BaseObject $new_relation = ((in_array($ret['network'], array(NETWORK_MAIL))) ? CONTACT_IS_FRIEND : CONTACT_IS_SHARING); // create contact record - dba::insert( - 'contact', - [ - 'uid' => $uid, - 'created' => datetime_convert(), - 'url' => $ret['url'], - 'nurl' => normalise_link($ret['url']), - 'addr' => $ret['addr'], - 'alias' => $ret['alias'], - 'batch' => $ret['batch'], - 'notify' => $ret['notify'], - 'poll' => $ret['poll'], - 'poco' => $ret['poco'], - 'name' => $ret['name'], - 'nick' => $ret['nick'], - 'network' => $ret['network'], - 'pubkey' => $ret['pubkey'], - 'rel' => $new_relation, - 'priority' => $ret['priority'], - 'writable' => $writeable, - 'hidden' => $hidden, - 'blocked' => 0, - 'readonly' => 0, - 'pending' => 0, - 'subhub' => $subhub - ] - ); + dba::insert('contact', [ + 'uid' => $uid, + 'created' => datetime_convert(), + 'url' => $ret['url'], + 'nurl' => normalise_link($ret['url']), + 'addr' => $ret['addr'], + 'alias' => $ret['alias'], + 'batch' => $ret['batch'], + 'notify' => $ret['notify'], + 'poll' => $ret['poll'], + 'poco' => $ret['poco'], + 'name' => $ret['name'], + 'nick' => $ret['nick'], + 'network' => $ret['network'], + 'pubkey' => $ret['pubkey'], + 'rel' => $new_relation, + 'priority'=> $ret['priority'], + 'writable'=> $writeable, + 'hidden' => $hidden, + 'blocked' => 0, + 'readonly'=> 0, + 'pending' => 0, + 'subhub' => $subhub + ]); } $contact = dba::selectFirst('contact', [], ['url' => $ret['url'], 'network' => $ret['network'], 'uid' => $uid]); @@ -1266,8 +1296,8 @@ class Contact extends BaseObject Worker::add(PRIORITY_HIGH, "OnePoll", $contact_id, "force"); $r = q("SELECT `contact`.*, `user`.* FROM `contact` INNER JOIN `user` ON `contact`.`uid` = `user`.`uid` - WHERE `user`.`uid` = %d AND `contact`.`self` LIMIT 1", - intval($uid) + WHERE `user`.`uid` = %d AND `contact`.`self` LIMIT 1", + intval($uid) ); if (DBM::is_result($r)) {