X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FMember%2FBAO%2FQuery.php;h=0fff4dc3cb54423534ed61f8d30e3c4843894173;hb=9d4d481e3d8bbf5f5655f257bc11f74eb1ae5808;hp=8c35a1fd6c12143aa2ef2e7467c4427ffd44d1b3;hpb=8f5237e851895597a6669ae9af81a21e91a01797;p=civicrm-core.git diff --git a/CRM/Member/BAO/Query.php b/CRM/Member/BAO/Query.php index 8c35a1fd6c..0fff4dc3cb 100644 --- a/CRM/Member/BAO/Query.php +++ b/CRM/Member/BAO/Query.php @@ -29,8 +29,6 @@ * * @package CRM * @copyright CiviCRM LLC (c) 2004-2015 - * $Id$ - * */ class CRM_Member_BAO_Query { @@ -46,8 +44,6 @@ class CRM_Member_BAO_Query { * If membership are involved, add the specific membership fields * * @param $query - * - * @return void */ public static function select(&$query) { // if membership mode add membership id @@ -88,7 +84,7 @@ class CRM_Member_BAO_Query { $query->_whereTables['civicrm_membership_status'] = 1; } - if (!empty($query->_returnProperties['status_id'])) { + if (!empty($query->_returnProperties['membership_status_id'])) { $query->_select['status_id'] = "civicrm_membership_status.id as status_id"; $query->_element['status_id'] = 1; $query->_tables['civicrm_membership_status'] = 1; @@ -201,8 +197,15 @@ class CRM_Member_BAO_Query { $query->_tables['civicrm_membership'] = $query->_whereTables['civicrm_membership'] = 1; return; - case 'membership_status': + // CRM-17011 These 2 variants appear in some smart groups saved at some time prior to 4.6.6. case 'member_status_id': + case 'member_membership_type_id': + if (is_array($value)) { + $op = 'IN'; + $value = array_keys($value); + } + case 'membership_status': + case 'membership_status_id': case 'membership_type': case 'membership_type_id': case 'member_id': @@ -216,7 +219,7 @@ class CRM_Member_BAO_Query { } else { $name = 'membership_type_id'; - $qillName = 'Memebership Type(s)'; + $qillName = 'Membership Type(s)'; } $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_membership.$name", $op, @@ -289,6 +292,9 @@ class CRM_Member_BAO_Query { return; case 'member_campaign_id': + if (CRM_Utils_Array::value($op, $value)) { + $value = $value[$op]; + } $campParams = array( 'op' => $op, 'campaign' => $value, @@ -390,12 +396,13 @@ class CRM_Member_BAO_Query { * @param CRM_Core_Form $form */ public static function buildSearchForm(&$form) { - $form->addSelect('status_id', - array('entity' => 'membership', 'multiple' => 'multiple', 'label' => ts('Memebership Status(s)'), 'option_url' => NULL, 'placeholder' => ts('- any -')) + $membershipStatus = CRM_Member_PseudoConstant::membershipStatus(NULL, NULL, 'label', FALSE, FALSE); + $form->add('select', 'membership_status_id', ts('Membership Status(s)'), $membershipStatus, FALSE, + array('id' => 'membership_status_id', 'multiple' => 'multiple', 'class' => 'crm-select2') ); $form->addSelect('membership_type_id', - array('entity' => 'membership', 'multiple' => 'multiple', 'label' => ts('Memebership Type(s)'), 'option_url' => NULL, 'placeholder' => ts('- any -')) + array('entity' => 'membership', 'multiple' => 'multiple', 'label' => ts('Membership Type(s)'), 'option_url' => NULL, 'placeholder' => ts('- any -')) ); $form->addElement('text', 'member_source', ts('Source'));