f6b3374890b3f9f5fecf2b3ff460cb81fcae5c36
[civicrm-core.git] / CRM / Core / BAO / Query.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | CiviCRM version 5 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2019 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
26 */
27
28 /**
29 *
30 * @package CRM
31 * @copyright CiviCRM LLC (c) 2004-2019
32 * $Id$
33 *
34 */
35 class CRM_Core_BAO_Query {
36
37 /**
38 * @param CRM_Core_Form $form
39 * @param array $extends
40 */
41 public static function addCustomFormFields(&$form, $extends) {
42 $groupDetails = CRM_Core_BAO_CustomGroup::getGroupDetail(NULL, TRUE, $extends);
43 if ($groupDetails) {
44 $tplName = lcfirst($extends[0]) . 'GroupTree';
45 $form->assign($tplName, $groupDetails);
46 foreach ($groupDetails as $group) {
47 foreach ($group['fields'] as $field) {
48 $fieldId = $field['id'];
49 $elementName = 'custom_' . $fieldId;
50 if ($field['data_type'] == 'Date' && $field['is_search_range']) {
51 CRM_Core_Form_Date::buildDateRange($form, $elementName, 1, '_from', '_to', ts('From:'), FALSE);
52 }
53 else {
54 CRM_Core_BAO_CustomField::addQuickFormElement($form, $elementName, $fieldId, FALSE, TRUE);
55 }
56 }
57 }
58 }
59 }
60
61 /**
62 * Get legacy fields which we still maybe support.
63 *
64 * These are contribution specific but I think it's ok to have one list of legacy supported
65 * params in a central place.
66 *
67 * @return array
68 */
69 protected static function getLegacySupportedFields(): array {
70 // @todo enotices when these are hit so we can start to elimnate them.
71 $fieldAliases = [
72 'financial_type' => 'financial_type_id',
73 'contribution_page' => 'contribution_page_id',
74 'payment_instrument' => 'payment_instrument_id',
75 // or payment_instrument_id?
76 'contribution_payment_instrument' => 'contribution_payment_instrument_id',
77 'contribution_status' => 'contribution_status_id',
78 ];
79 return $fieldAliases;
80 }
81
82 /**
83 * Getter for the qill object.
84 *
85 * @return string
86 */
87 public function qill() {
88 return (isset($this->_qill)) ? $this->_qill : "";
89 }
90
91 /**
92 * Possibly unnecessary function.
93 *
94 * @param $row
95 * @param int $id
96 */
97 public static function searchAction(&$row, $id) {}
98
99 /**
100 * @param $tables
101 */
102 public static function tableNames(&$tables) {}
103
104 /**
105 * Get the name of the field.
106 *
107 * @param array $values
108 *
109 * @return string
110 */
111 protected static function getFieldName($values) {
112 $name = $values[0];
113 $fieldAliases = self::getLegacySupportedFields();
114 if (isset($fieldAliases[$name])) {
115 CRM_Core_Error::deprecatedFunctionWarning('These parameters should be standardised before we get here');
116 return $fieldAliases[$name];
117 }
118
119 return str_replace(['_high', '_low'], '', $name);
120 }
121
122 }