forked from CiviWare/com.dpci.constituentsonly
		
	fix for profile search
This commit is contained in:
		@@ -1,23 +0,0 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
class CRM_ConstituentsOnly_BAO_APIWrapper implements API_Wrapper {
 | 
			
		||||
  /**
 | 
			
		||||
   * the wrapper contains a method that allows you to alter the parameters of the api request (including the action and the entity)
 | 
			
		||||
   */
 | 
			
		||||
  public function fromApiInput($apiRequest) {
 | 
			
		||||
    $params = &$apiRequest['params'];
 | 
			
		||||
 | 
			
		||||
    if (!array_key_exists('do_not_trade', $params['params'])) {
 | 
			
		||||
      $params['params']['do_not_trade'] = '0 AND (contact_a.do_not_trade IS NULL OR contact_a.do_not_trade = 0)';
 | 
			
		||||
    }
 | 
			
		||||
    return $apiRequest;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * alter the result before returning it to the caller.
 | 
			
		||||
   */
 | 
			
		||||
  public function toApiOutput($apiRequest, $result) {
 | 
			
		||||
    return $result;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -9,6 +9,26 @@ class CRM_ConstituentsOnly_BAO_Query extends CRM_Contact_BAO_Query_Interface {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public function select(&$query) {
 | 
			
		||||
    // hack for profile search
 | 
			
		||||
    $url = CRM_Utils_Array::value('q', $_GET);
 | 
			
		||||
    if ($url == 'civicrm/profile') {
 | 
			
		||||
      if (empty($query->_params)) {
 | 
			
		||||
        $query->_params[] = [
 | 
			
		||||
          'entryURL',
 | 
			
		||||
          '=',
 | 
			
		||||
          0,
 | 
			
		||||
          0,
 | 
			
		||||
          1,
 | 
			
		||||
        ];
 | 
			
		||||
      }
 | 
			
		||||
      $query->_paramLookup['entryURL'] = [
 | 
			
		||||
        'entryURL',
 | 
			
		||||
        '=',
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        1,
 | 
			
		||||
      ];
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
@@ -21,6 +41,7 @@ class CRM_ConstituentsOnly_BAO_Query extends CRM_Contact_BAO_Query_Interface {
 | 
			
		||||
    if (empty($query->_paramLookup['entryURL'])) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (CRM_Utils_Array::value('civicrm_contact', $query->_tables)) {
 | 
			
		||||
      $query->_where[0][] = "( contact_a.do_not_trade IS NULL OR contact_a.do_not_trade = 0)";
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -134,17 +134,6 @@ function constituentsonly_civicrm_queryObjects(&$queryObjects, $type) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Implements hook_civicrm_apiWrappers().
 | 
			
		||||
 *
 | 
			
		||||
 * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_apiWrappers
 | 
			
		||||
 */
 | 
			
		||||
function constituentsonly_civicrm_apiWrappers(&$wrappers, $apiRequest) {
 | 
			
		||||
  if ($apiRequest['entity'] == 'Contact' && strtolower($apiRequest['action']) == 'getlist') {
 | 
			
		||||
    $wrappers[] = new CRM_ConstituentsOnly_BAO_APIWrapper();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Implements hook_civicrm_contactListQuery().
 | 
			
		||||
 *
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user