static function details($csID, $ssID = null, $gID = null)
 {
     $error = array(null, null, null);
     if (!$csID && !$ssID && !$gID) {
         return $error;
     }
     $customSearchID = $csID;
     $formValues = array();
     if ($ssID || $gID) {
         if ($gID) {
             $ssID = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $gID, 'saved_search_id');
         }
         $formValues = CRM_Contact_BAO_SavedSearch::getFormValues($ssID);
         $customSearchID = CRM_Utils_Array::value('customSearchID', $formValues);
     }
     if (!$customSearchID) {
         return $error;
     }
     // check that the csid exists in the db along with the right file
     // and implements the right interface
     require_once 'CRM/Core/OptionGroup.php';
     $customSearchClass = CRM_Core_OptionGroup::getLabel('custom_search', $customSearchID);
     if (!$customSearchClass) {
         return $error;
     }
     require_once 'CRM/Core/Extensions.php';
     $ext = new CRM_Core_Extensions();
     if (!$ext->isExtensionKey($customSearchClass)) {
         $customSearchFile = str_replace('_', DIRECTORY_SEPARATOR, $customSearchClass) . '.php';
     } else {
         $customSearchFile = $ext->keyToPath($customSearchClass);
         $customSearchClass = $ext->keyToClass($customSearchClass);
     }
     $error = (include_once $customSearchFile);
     if ($error == false) {
         CRM_Core_Error::fatal('Custom search file: ' . $customSearchFile . ' does not exist. Please verify your custom search settings in CiviCRM administrative panel.');
     }
     return array($customSearchID, $customSearchClass, $formValues);
 }
示例#2
0
 /**
  * Class constructor
  *
  * @param array $formValues array of form values imported
  * @param array $params     array of parameters for query
  * @param int   $action - action of search basic or advanced.
  *
  * @return CRM_Contact_Selector
  * @access public
  */
 function __construct($customSearchClass, $formValues = null, $params = null, $returnProperties = null, $action = CRM_Core_Action::NONE, $includeContactIds = false, $searchChildGroups = true, $searchContext = 'search')
 {
     $this->_customSearchClass = $customSearchClass;
     $this->_formValues = $formValues;
     $this->_includeContactIds = $includeContactIds;
     require_once 'CRM/Core/Extensions.php';
     $ext = new CRM_Core_Extensions();
     if (!$ext->isExtensionKey($customSearchClass)) {
         if ($ext->isExtensionClass($customSearchClass)) {
             $customSearchFile = $ext->classToPath($customSearchClass);
             require_once $customSearchFile;
         } else {
             require_once str_replace('_', DIRECTORY_SEPARATOR, $customSearchClass) . '.php';
         }
         eval('$this->_search = new ' . $customSearchClass . '( $formValues );');
     } else {
         $customSearchFile = $ext->keyToPath($customSearchClass, 'search');
         require_once $customSearchFile;
         eval('$this->_search = new ' . $ext->keyToClass($customSearchClass, 'search') . '( $formValues );');
     }
 }