_grantIds = []; $values = $form->getSearchFormValues(); $form->_task = $values['task']; $tasks = CRM_Grant_Task::tasks(); if (!array_key_exists($form->_task, $tasks)) { CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.')); } $ids = []; if ($values['radio_ts'] == 'ts_sel') { foreach ($values as $name => $value) { if (substr($name, 0, CRM_Core_Form::CB_PREFIX_LEN) == CRM_Core_Form::CB_PREFIX) { $ids[] = substr($name, CRM_Core_Form::CB_PREFIX_LEN); } } } else { $queryParams = $form->get('queryParams'); $sortOrder = NULL; if ($form->get(CRM_Utils_Sort::SORT_ORDER)) { $sortOrder = $form->get(CRM_Utils_Sort::SORT_ORDER); } $query = new CRM_Contact_BAO_Query($queryParams, NULL, NULL, FALSE, FALSE, CRM_Contact_BAO_Query::MODE_GRANT ); $query->_distinctComponentClause = ' civicrm_grant.id'; $query->_groupByComponentClause = ' GROUP BY civicrm_grant.id '; $result = $query->searchQuery(0, 0, $sortOrder); while ($result->fetch()) { $ids[] = $result->grant_id; } } if (!empty($ids)) { $form->_componentClause = ' civicrm_grant.id IN ( ' . implode(',', $ids) . ' ) '; $form->assign('totalSelectedGrants', count($ids)); } $form->_grantIds = $form->_componentIds = $ids; $form->setNextUrl('grant'); } /** * Given the grant id, compute the contact id * since its used for things like send email */ public function setContactIDs() { $this->_contactIds = CRM_Core_DAO::getContactIDsFromComponent($this->_grantIds, 'civicrm_grant' ); } /** * Simple shell that derived classes can call to add buttons to. * the form with a customized title for the main Submit * * @param string $title * Title of the main button. * @param string $nextType * @param string $backType * * @param bool $submitOnce */ public function addDefaultButtons($title, $nextType = 'next', $backType = 'back', $submitOnce = FALSE) { $this->addButtons([ [ 'type' => $nextType, 'name' => $title, 'isDefault' => TRUE, ], [ 'type' => $backType, 'name' => ts('Cancel'), ], ]); } }