<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
$paneNames[$pane['title']] = $pane['name'];
}
- $this->_paneTemplatePath = array();
+ $hookPanes = array();
+ CRM_Contact_BAO_Query_Hook::singleton()->registerAdvancedSearchPane($hookPanes);
+ $paneNames = array_merge($paneNames, $hookPanes);
+ $this->_paneTemplatePath = array();
foreach ($paneNames as $name => $type) {
- if (!$this->_searchOptions[$type]) {
+ if (!array_key_exists($type, $this->_searchOptions) && !in_array($type, $hookPanes)) {
continue;
}
) {
$allPanes[$name]['open'] = 'true';
-
if (CRM_Utils_Array::value($type, $components)) {
$c = $components[$type];
$this->add('hidden', "hidden_$type", 1);
$c->buildAdvancedSearchPaneForm($this);
$this->_paneTemplatePath[$type] = $c->getAdvancedSearchPaneTemplatePath();
}
+ else if (in_array($type, $hookPanes)) {
+ CRM_Contact_BAO_Query_Hook::singleton()->buildAdvancedSearchPaneForm($this, $type);
+ CRM_Contact_BAO_Query_Hook::singleton()->setAdvancedSearchPaneTemplatePath($this->_paneTemplatePath, $type);
+ }
else {
- eval('CRM_Contact_Form_Search_Criteria::' . $type . '( $this );');
+ CRM_Contact_Form_Search_Criteria::$type($this);
$template = ucfirst($type);
$this->_paneTemplatePath[$type] = "CRM/Contact/Form/Search/Criteria/{$template}.tpl";
}
// we dont want to store the sortByCharacter in the formValue, it is more like
// a filter on the result set
// this filter is reset if we click on the search button
- if ($this->_sortByCharacter !== NULL
- && empty($_POST)
- ) {
+ if ($this->_sortByCharacter !== NULL && empty($_POST)) {
if (strtolower($this->_sortByCharacter) == 'all') {
$this->_formValues['sortByCharacter'] = NULL;
}
$this->_formValues['sortByCharacter'] = $this->_sortByCharacter;
}
}
+ else {
+ $this->_sortByCharacter = NULL;
+ }
CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
/**
* normalize default values for multiselect plugins
*
- * @return void
+ * @param $defaults array
+ * @return array
* @access private
*/
function normalizeDefaultValues(&$defaults) {