Merge pull request #2135 from pratik-joshi/CRM-13861
[civicrm-core.git] / CRM / Contact / BAO / Group.php
index 5fd504daeda6195a7e9a6918f67950dc656a35b1..fb680b7b87138cf69613b799f0c966c80d8f48d1 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
   +--------------------------------------------------------------------+
-  | CiviCRM version 4.3                                                |
+  | CiviCRM version 4.4                                                |
   +--------------------------------------------------------------------+
   | Copyright CiviCRM LLC (c) 2004-2013                                |
   +--------------------------------------------------------------------+
@@ -241,13 +241,23 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
     $rowCount = NULL
   ) {
     $dao = new CRM_Contact_DAO_Group();
-    $dao->is_active = 1;
+    if (!isset($params['is_active'])) {
+      $dao->is_active = 1;
+    }
     if ($params) {
       foreach ($params as $k => $v) {
         if ($k == 'name' || $k == 'title') {
           $dao->whereAdd($k . ' LIKE "' . CRM_Core_DAO::escapeString($v) . '"');
         }
+        elseif ($k == 'group_type') {
+          foreach ((array) $v as $type) {
+            $dao->whereAdd($k . " LIKE '%" . CRM_Core_DAO::VALUE_SEPARATOR . (int) $type . CRM_Core_DAO::VALUE_SEPARATOR . "%'");
+          }
+        }
         elseif (is_array($v)) {
+          foreach ($v as &$num) {
+            $num = (int) $num;
+          }
           $dao->whereAdd($k . ' IN (' . implode(',', $v) . ')');
         }
         else {
@@ -728,8 +738,8 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
     }
 
     $orderBy = ' ORDER BY groups.title asc';
-    if (CRM_Utils_Array::value('sort', $params)) {
-      $orderBy = ' ORDER BY ' . CRM_Utils_Array::value('sort', $params);
+    if (!empty($params['sort'])) {
+      $orderBy = ' ORDER BY ' . CRM_Utils_Type::escape($params['sort'], 'String');
     }
 
     $select = $from = $where = "";