예제 #1
0
function getDbaseResults($query)
{
    return Dbase::getResults($query);
}
예제 #2
0
 static function getEntities($params, $return_object = true, $return_array = false, $return_password = false, $logged_in_user_guid = false)
 {
     // if (class_exists("SocialApparatus\Debug")) {
     //     new Debug("getEntities", $params);
     // }
     if (!isset($params['type'])) {
         return false;
     }
     $results_array = array();
     $return = array();
     $reverse = NULL;
     $args = NULL;
     $defaults = array("limit" => false, "offset" => 0, "order_by" => false, "order_reverse" => false, "ignore_access" => false);
     $params = array_merge($defaults, $params);
     if ($params['order_by']) {
         if ($params['order_reverse']) {
             $reverse = " DESC";
         } else {
             $reverse = " ASC";
         }
     }
     $count = isset($params['count']) ? $params['count'] : false;
     if ($count) {
         $select = "count(*)";
     } else {
         $select = "*";
     }
     $type = strtolower($params['type']);
     $query = "SELECT {$select} FROM `{$type}`";
     if (isset($params['metadata_name']) && isset($params['metadata_value'])) {
         if (is_array($params['metadata_value']) || is_bool($params['metadata_value']) || is_object($params['metadata_value'])) {
             $params['metadata_value'] = serialize($params['metadata_value']);
         }
         $operand = isset($params['operand']) ? $params['operand'] : "=";
         if ($params['metadata_value'] == 'NULL' || $operand == "IN" || $operand == "NOT IN") {
             $query .= " WHERE `{$params['metadata_name']}` {$operand} {$params['metadata_value']}";
         } else {
             $query .= " WHERE `{$params['metadata_name']}` {$operand} '{$params['metadata_value']}'";
         }
     }
     $where = strpos($query, "WHERE") > 0 ? " AND " : " WHERE ";
     if (isset($params['metadata_name_value_pairs'])) {
         $query .= $where . "(";
         $metadata_name_value_pairs_operand = isset($params['metadata_name_value_pairs_operand']) ? $params['metadata_name_value_pairs_operand'] : "AND";
         foreach ($params['metadata_name_value_pairs'] as $pair) {
             $operand = isset($pair['operand']) ? $pair['operand'] : "=";
             if (is_array($pair['value']) || is_bool($pair['value']) || is_object($pair['value'])) {
                 $pair['value'] = serialize($pair['value']);
             }
             if ($pair['value'] != "NULL" && ($operand != "IN" && $operand != "NOT IN")) {
                 $args .= "`{$pair['name']}` {$operand} '{$pair['value']}' {$metadata_name_value_pairs_operand} ";
             } else {
                 $args .= "`{$pair['name']}` {$operand} {$pair['value']} {$metadata_name_value_pairs_operand} ";
             }
         }
         $query .= substr($args, 0, -(strlen($metadata_name_value_pairs_operand) + 2));
         $query .= ")";
     }
     if ($params['order_by']) {
         $query .= " ORDER BY `{$params['order_by']}` {$reverse}";
     }
     if ($params['limit']) {
         $query .= " LIMIT {$params['offset']},{$params['limit']}";
     }
     $results = Dbase::getResults($query);
     if ($count && $results) {
         $row = $results->fetch_assoc();
         $num_rows = $row['count(*)'];
         return $num_rows;
     } elseif ($count && !$results) {
         return 0;
     }
     if ($results && $results->num_rows > 0) {
         if (function_exists("mysqli_fetch_all") && defined("MYSQL_ASSOC")) {
             $results_array = mysqli_fetch_all($results, MYSQL_ASSOC);
         } else {
             while ($row = $results->fetch_assoc()) {
                 $results_array[] = $row;
             }
         }
         if ($return_array) {
             if (!$return_password) {
                 $new_results_array = array();
                 foreach ($results_array as $array) {
                     unset($array['password']);
                     $new_results_array[] = $array;
                 }
                 $results_array = $new_results_array;
             }
             foreach ($results_array as $key => $result) {
                 if (!loggedInUserCanViewEntityGuid($result['guid'], false, $logged_in_user_guid) && !getIgnoreAccess()) {
                     unset($results_array[$key]);
                 }
             }
             return $results_array;
         }
         foreach ($results_array as $result) {
             if ($return_object) {
                 $entity = getEntity($result['guid'], false, $return_password, $logged_in_user_guid);
                 if ($entity) {
                     $return[] = $entity;
                 }
             } else {
                 $return[] = $result['guid'];
             }
         }
         return $return;
     }
     return false;
 }