diff --git a/CRM/SoftCredit/SoftCreditQueryObject.php b/CRM/SoftCredit/SoftCreditQueryObject.php new file mode 100644 index 0000000..1cb7f68 --- /dev/null +++ b/CRM/SoftCredit/SoftCreditQueryObject.php @@ -0,0 +1,80 @@ +_paramLookup['soft_credit_name'])) { + return; + } + if (!in_array(CRM_Contribute_BAO_Query::$_contribOrSoftCredit, array("only_scredits", "both_related", "both"))) { + return; + } + list($name, $op, $value, $grouping, $wildcard) = reset($query->_paramLookup['soft_credit_name']); + if ($value) { + $query->_where[$grouping][] = "civicrm_contact_d.sort_name LIKE '%{$value}%'"; + $query->_whereTables['civicrm_contribution_soft_contact'] = 1; + $query->_tables['civicrm_contribution_soft_contact'] = 1; + $query->_qill[$grouping][] = ts("%1 %2 - '%3'", [1 => 'Soft Creditee\'s name', 2 => 'LIKE', 3 => $value]); + } + } + + /** + * @param string $name + * @param $mode + * @param $side + * + */ + public function from($name, $mode, $side) { + } + + /** + * @param $tables + * + */ + public function setTableDependency(&$tables) { + } + + public function getPanesMapper(&$panes) { + } + + /** + * @param $panes + * + */ + public function registerAdvancedSearchPane(&$panes) { + } + + /** + * @param CRM_Core_Form $form + * @param $type + * + */ + public function buildAdvancedSearchPaneForm(&$form, $type) { + } + + /** + * @param $paneTemplatePathArray + * @param $type + * + */ + public function setAdvancedSearchPaneTemplatePath(&$paneTemplatePathArray, $type) { + } + +} diff --git a/softcreditcustomfields.php b/softcreditcustomfields.php index 3e6465f..71fbaef 100644 --- a/softcreditcustomfields.php +++ b/softcreditcustomfields.php @@ -171,6 +171,7 @@ function softcreditcustomfields_civicrm_buildForm($formName, &$form) { || ('CRM_Contact_Form_Search_Advanced' == $formName && ('CiviContribute' == $form->_searchPane || $form->_flagSubmitted)) ) { CRM_Contribute_BAO_Query::addCustomFormFields($form, ['ContributionSoft']); + $form->add('text', 'soft_credit_name', ts('Soft Creditee\'s name')); if ('CRM_Contact_Form_Search_Advanced' == $formName && 'CiviContribute' != $form->_searchPane) { return; } @@ -323,3 +324,14 @@ function softcreditcustomfields_civicrm_postProcess($formName, &$form) { } } } + +/** + * Implements hook_civicrm_queryObjects(). + * + * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_queryObjects + */ +function softcreditcustomfields_civicrm_queryObjects(&$queryObjects, $type) { + if ($type == 'Contact') { + $queryObjects[] = new CRM_SoftCredit_SoftCreditQueryObject(); + } +} diff --git a/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl b/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl index 9d0f0af..b59a992 100644 --- a/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl +++ b/templates/CRM/Contribute/Form/Search/SoftCredit-Search.tpl @@ -1,12 +1,20 @@ +{if $form.soft_credit_name} +