<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 5 |
- +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2020 |
- +--------------------------------------------------------------------+
- | This file is a part of CiviCRM. |
- | |
- | CiviCRM is free software; you can copy, modify, and distribute it |
- | under the terms of the GNU Affero General Public License |
- | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | Copyright CiviCRM LLC. All rights reserved. |
| |
- | CiviCRM is distributed in the hope that it will be useful, but |
- | WITHOUT ANY WARRANTY; without even the implied warranty of |
- | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
- | See the GNU Affero General Public License for more details. |
- | |
- | You should have received a copy of the GNU Affero General Public |
- | License and the CiviCRM Licensing Exception along |
- | with this program; if not, contact CiviCRM LLC |
- | at info[AT]civicrm[DOT]org. If you have questions about the |
- | GNU Affero General Public License or the licensing of CiviCRM, |
- | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ | This work is published under the GNU AGPLv3 license with some |
+ | permitted exceptions and without any warranty. For full license |
+ | and copyright information, see https://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
$this->searchFieldMetadata = array_merge($this->searchFieldMetadata, $searchFieldMetadata);
}
+ /**
+ * Prepare for search by loading options from the url, handling force searches, retrieving form values.
+ *
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
+ */
+ public function preProcess() {
+ $this->loadStandardSearchOptionsFromUrl();
+ if ($this->_force) {
+ $this->handleForcedSearch();
+ }
+ $this->_formValues = $this->getFormValues();
+ }
+
/**
* This virtual function is used to set the default values of various form elements.
*
* @throws \CRM_Core_Exception
*/
public function setDefaultValues() {
- $defaults = (array) $this->_formValues;
+ // Use the form values stored to the form. Ideally 'formValues'
+ // would remain 'pure' & another array would be wrangled.
+ // We don't do that - so we want the version of formValues stored early on.
+ $defaults = (array) $this->get('formValues');
foreach (array_keys($this->getSearchFieldMetadata()) as $entity) {
$defaults = array_merge($this->getEntityDefaults($entity), $defaults);
}
*/
protected function setFormValues() {
$this->_formValues = $this->getFormValues();
+ $this->set('formValues', $this->_formValues);
$this->convertTextStringsToUseLikeOperator();
}
if (empty($_POST[$fieldName])) {
$value = CRM_Utils_Request::retrieveValue($fieldName, $this->getValidationTypeForField($entity, $fieldName), NULL, NULL, 'GET');
if ($value !== NULL) {
- $defaults[$fieldName] = $value;
+ if ($fieldSpec['html']['type'] === 'Select') {
+ $defaults[$fieldName] = explode(',', $value);
+ }
+ else {
+ $defaults[$fieldName] = $value;
+ }
}
if ($fieldSpec['type'] === CRM_Utils_Type::T_DATE || ($fieldSpec['type'] === CRM_Utils_Type::T_DATE + CRM_Utils_Type::T_TIME)) {
$low = CRM_Utils_Request::retrieveValue($fieldName . '_low', 'Timestamp', NULL, NULL, 'GET');
$title,
CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name')
);
- $this->searchFieldMetadata['Contact']['sort_name'] = ['name' => 'sort_name', 'title' => $title, 'type' => CRM_Utils_Type::T_STRING];
+ $this->searchFieldMetadata['Contact']['sort_name'] = array_merge(CRM_Contact_DAO_Contact::fields()['sort_name'], ['name' => 'sort_name', 'title' => $title, 'type' => CRM_Utils_Type::T_STRING]);
}
/**
}
+ /**
+ * Get the label for the group field.
+ *
+ * @return string
+ */
+ protected function getGroupLabel() {
+ return ts('Group(s)');
+ }
+
+ /**
+ * Get the label for the tag field.
+ *
+ * We do this in a function so the 'ts' wraps the whole string to allow
+ * better translation.
+ *
+ * @return string
+ */
+ protected function getTagLabel() {
+ return ts('Tag(s)');
+ }
+
/**
* we allow the controller to set force/reset externally, useful when we are being
* driven by the wizard framework
return (array) $this->get('formValues');
}
+ /**
+ * Get the string processed to determine sort order.
+ *
+ * This looks like 'sort_name_u' for Sort name ascending.
+ *
+ * @return string|null
+ */
+ protected function getSortID() {
+ if ($this->get(CRM_Utils_Sort::SORT_ID)) {
+ return CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID),
+ $this->get(CRM_Utils_Sort::SORT_DIRECTION)
+ );
+ }
+ return NULL;
+ }
+
/**
* Set the metadata for the form.
*
*/
protected function handleForcedSearch() {
$this->setSearchMetadata();
+ $this->addContactSearchFields();
$this->postProcess();
$this->set('force', 0);
}