diff --git a/boot.php b/boot.php
index 42767845c..e9303211a 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');
diff --git a/include/ForumManager.php b/include/ForumManager.php
index 17a6b6730..9e3c3b9d7 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 cae045d87..3a16c187c 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 7b720fb6c..b48aba448 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 a391ea8c7..22fdbb5e5 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 943763a51..a8b7577e0 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 ef5dce826..b08ab200e 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 73cb0eba2..1123c3437 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 0ed2c31c3..40cfe31fa 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 67db5d0d9..75cb65c9a 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);