diff --git a/boot.php b/boot.php index 42767845c2..e1c7f6b119 100644 --- a/boot.php +++ b/boot.php @@ -940,7 +940,7 @@ class App { } else { $r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'", $common_filename); - if(! count($r)){ + if(! dba::is_result($r)){ $this->cached_profile_image[$avatar_image] = $avatar_image; } else { $this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']); @@ -1425,7 +1425,7 @@ function run_update_function($x) { function check_plugins(&$a) { $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); - if(count($r)) + if(dba::is_result($r)) $installed = $r; else $installed = array(); @@ -1756,7 +1756,7 @@ function current_theme(){ $r = q("select theme from user where uid = %d limit 1", intval($a->profile_uid) ); - if($r) + if(dba::is_result($r)) $page_theme = $r[0]['theme']; } @@ -1869,7 +1869,7 @@ function feed_birthday($uid,$tz) { intval($uid) ); - if($p && count($p)) { + if(dba::is_result($p)) { $tmp_dob = substr($p[0]['dob'],5); if(intval($tmp_dob)) { $y = datetime_convert($tz,$tz,'now','Y'); @@ -1901,6 +1901,31 @@ function is_site_admin() { return false; } +function load_contact_links($uid) { + + $a = get_app(); + + $ret = array(); + + if(! $uid || x($a->contacts,'empty')) + return; + + $r = q("SELECT `id`,`network`,`url`,`thumb`, `rel` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `thumb` != ''", + intval($uid) + ); + + if(dba::is_result($r)) { + foreach($r as $rr){ + $url = normalise_link($rr['url']); + $ret[$url] = $rr; + } + } else + $ret['empty'] = true; + + $a->contacts = $ret; + return; +} + /** * @brief Returns querystring as string from a mapped array. * diff --git a/include/ForumManager.php b/include/ForumManager.php index 17a6b6730b..9e3c3b9d70 100644 --- a/include/ForumManager.php +++ b/include/ForumManager.php @@ -86,7 +86,7 @@ class ForumManager { $total = count($contacts); $visible_forums = 10; - if(count($contacts)) { + if(dba::is_result($contacts)) { $id = 0; diff --git a/include/dba.php b/include/dba.php index cae045d874..3a16c187c7 100644 --- a/include/dba.php +++ b/include/dba.php @@ -230,6 +230,16 @@ class dba { } } + /** + * Checks if $array is a filled array with at least one entry. + * + * @param $array mixed A filled array with at least one entry + * @return Whether $array is a filled array + */ + public function is_result ($array) { + return (is_array($array) && count($array) > 0); + } + function __destruct() { if ($this->db) if($this->mysqli) @@ -340,4 +350,3 @@ function dbesc_array(&$arr) { function dba_timer() { return microtime(true); } - diff --git a/include/dba_pdo.php b/include/dba_pdo.php index 7b720fb6c1..b48aba4487 100644 --- a/include/dba_pdo.php +++ b/include/dba_pdo.php @@ -232,6 +232,16 @@ class dba { } } + /** + * Checks if $array is a filled array with at least one entry. + * + * @param $array mixed A filled array with at least one entry + * @return Whether $array is a filled array + */ + public function is_result ($array) { + return (is_array($array) && count($array) > 0); + } + function __destruct() { if ($this->db) \DDDBL\disconnect(); diff --git a/include/poller.php b/include/poller.php index a391ea8c75..22fdbb5e53 100644 --- a/include/poller.php +++ b/include/poller.php @@ -228,7 +228,7 @@ function poller_max_connections_reached() { function poller_kill_stale_workers() { $r = q("SELECT `pid`, `executed` FROM `workerqueue` WHERE `executed` != '0000-00-00 00:00:00'"); - if (!is_array($r) || count($r) == 0) { + if (!dba::is_result($r)) { // No processing here needed return; } diff --git a/index.php b/index.php index 943763a511..a8b7577e07 100644 --- a/index.php +++ b/index.php @@ -126,7 +126,7 @@ if (x($_SESSION,'authenticated') && !x($_SESSION,'language')) { // we didn't loaded user data yet, but we need user language $r = q("SELECT language FROM user WHERE uid=%d", intval($_SESSION['uid'])); $_SESSION['language'] = $lang; - if (count($r)>0) $_SESSION['language'] = $r[0]['language']; + if (dba::is_result($r)) $_SESSION['language'] = $r[0]['language']; } if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) { diff --git a/mod/message.php b/mod/message.php index ef5dce826e..b08ab200ec 100644 --- a/mod/message.php +++ b/mod/message.php @@ -9,7 +9,7 @@ function message_init(&$a) { $tabs = ''; if ($a->argc >1 && is_numeric($a->argv[1])) { - $tabs = render_messages(get_messages(local_user(),0,5), 'mail_list.tpl'); + $tabs = render_messages(get_messages(local_user(),0,5), 'mail_list.tpl'); } $new = array( @@ -373,11 +373,13 @@ function message_content(&$a) { intval(local_user()) ); - if(count($r)) $a->set_pager_total($r[0]['total']); + if (dba::is_result($r)) { + $a->set_pager_total($r[0]['total']); + } $r = get_messages(local_user(), $a->pager['start'], $a->pager['itemspage']); - if(! count($r)) { + if(! dba::is_result($r)) { info( t('No messages.') . EOL); return $o; } @@ -562,7 +564,7 @@ function get_messages($user, $lstart, $lend) { ); } -function render_messages($msg, $t) { +function render_messages(array $msg, $t) { $a = get_app(); diff --git a/mod/network.php b/mod/network.php index 73cb0eba28..1123c34371 100644 --- a/mod/network.php +++ b/mod/network.php @@ -704,7 +704,7 @@ function network_content(&$a, $update = 0) { $parents_str = ''; $date_offset = ""; - if(count($r)) { + if(dba::is_result($r)) { foreach($r as $rr) if(! in_array($rr['item_id'],$parents_arr)) $parents_arr[] = $rr['item_id']; diff --git a/mod/ping.php b/mod/ping.php index 0ed2c31c35..40cfe31fa5 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -32,6 +32,8 @@ function ping_init(&$a) { $dislikes = array(); $friends = array(); $posts = array(); + $regs = array(); + $mails = array(); $home = 0; $network = 0; @@ -49,7 +51,7 @@ function ping_init(&$a) { intval(local_user()), intval(local_user()) ); - if(count($r)) { + if(dba::is_result($r)) { $arr = array('items' => $r); call_hooks('network_ping', $arr); @@ -116,8 +118,6 @@ function ping_init(&$a) { $intro = count($intros1) + count($intros2); $intros = $intros1+$intros2; - - $myurl = $a->get_baseurl() . '/profile/' . $a->user['nickname'] ; $mails = q("SELECT * FROM `mail` WHERE `uid` = %d AND `seen` = 0 AND `from-url` != '%s' ", @@ -150,7 +150,7 @@ function ping_init(&$a) { dbesc(datetime_convert('UTC','UTC','now')) ); - if($ev && count($ev)) { + if(dba::is_result($ev)) { $all_events = intval($ev[0]['total']); if($all_events) { @@ -224,7 +224,7 @@ function ping_init(&$a) { $home\r\n"; if ($register!=0) echo "$register"; - if (count($groups_unseen)) { + if ( dba::is_result($groups_unseen) ) { echo ''; foreach ($groups_unseen as $it) if ($it['count'] > 0) @@ -233,7 +233,7 @@ function ping_init(&$a) { echo ""; } - if (count($forums_unseen)) { + if ( dba::is_result($forums_unseen) ) { echo ''; foreach ($forums_unseen as $it) if ($it['count'] > 0) @@ -250,8 +250,8 @@ function ping_init(&$a) { $birthdays_today\r\n"; - if(count($notifs) && (! $sysnotify)) { - foreach($notifs as $zz) { + if (dba::is_result($notifs) && (! $sysnotify)) { + foreach ($notifs as $zz) { if($zz['seen'] == 0) $sysnotify ++; } @@ -260,7 +260,7 @@ function ping_init(&$a) { echo ' '; // merge all notification types in one array - if ($intro>0){ + if ( dba::is_result($intros) ) { foreach ($intros as $i) { $n = array( 'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'], @@ -275,7 +275,7 @@ function ping_init(&$a) { } } - if ($mail>0){ + if ( dba::is_result($mails) ) { foreach ($mails as $i) { $n = array( 'href' => $a->get_baseurl().'/message/'.$i['id'], @@ -290,7 +290,7 @@ function ping_init(&$a) { } } - if ($register>0){ + if ( dba::is_result($regs) ) { foreach ($regs as $i) { $n = array( 'href' => $a->get_baseurl().'/admin/users/', @@ -304,6 +304,7 @@ function ping_init(&$a) { $notifs[] = $n; } } + // sort notifications by $[]['date'] $sort_function = function($a, $b) { $adate = date($a['date']); @@ -315,7 +316,7 @@ function ping_init(&$a) { }; usort($notifs, $sort_function); - if(count($notifs)) { + if( dba::is_result($notifs) ) { foreach($notifs as $n) { echo xmlize($n); } diff --git a/mod/profile.php b/mod/profile.php index 67db5d0d98..75cb65c9af 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -298,7 +298,7 @@ function profile_content(&$a, $update = 0) { $parents_arr = array(); $parents_str = ''; - if(count($r)) { + if (dba::is_result($r)) { foreach($r as $rr) $parents_arr[] = $rr['item_id']; $parents_str = implode(', ', $parents_arr);