[ 'name' => ts('Edit'), 'url' => '%%url%%', 'qs' => '%%query%%&templateId=%%id%%', 'title' => ts('Edit template'), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/entity/templates', 'qs' => 'action=delete&id=%%id%%', 'ref' => 'delete-entity-template', 'title' => ts('Delete template'), ], ]; } return self::$_links; } /** * Browse all Grant Budget. */ public function browse() { //check permission if (!CRM_Core_Permission::check('administer CiviCRM')) { return CRM_Utils_System::permissionDenied(); } $entityType = CRM_Utils_Request::retrieve('entityType', 'String'); $entityTypes = CRM_EntityTemplates_BAO_EntityTemplates::getEntityTypes(); if (empty($entityType)) { $entityType = key($entityTypes); } try { $optionValueName = civicrm_api3('OptionValue', 'getvalue', [ 'option_group_id' => "entity_template_for", 'value' => $entityType, 'return' => 'name', ]); } catch (CiviCRM_API3_Exception $e) { CRM_Core_Error::statusBounce( ts('Invalid Entity type.'), CRM_Utils_System::url('civicrm', "reset=1") ); } list($url, $query) = explode('?', $optionValueName); $query .= "&entityTemplate={$entityType}"; $entityTypeOptions = ''; foreach ($entityTypes as $key => $value) { $extra = ''; if ($key == $entityType) { $extra = 'selected="selected"'; } $entityTypeOptions .= ""; } $this->assign('entityTypeOptions', $entityTypeOptions); $results = civicrm_api3('EntityTemplates', 'get', [ 'entity_table' => $entityType, 'return' => ['title', 'id'], ]); $rows = []; $action = array_sum(array_keys($this->links())); foreach ($results['values'] as $values) { $rows[] = [ 'id' => $values['id'], 'title' => $values['title'], 'links' => CRM_Core_Action::formLink( self::links(), $action, [ 'id' => $values['id'], 'url' => $url, 'query' => $query, ], ts('more'), FALSE, 'entitytemplates.manage.action', 'EntityTemplates', $values['id'] ), ]; } $this->assign('rows', $rows); $this->assign('url', $url); $this->assign('query', $query); $this->assign('entityType', $entityType); } /** * Get edit form name. * * @return string * name of this page. */ public function editName() { return ts('Entity Templates'); } /** * Get name of edit form. * * @return string * Classname of edit form. */ public function editForm() { return 'CRM_EntityTemplates_Page_EntityTemplates'; } /** * Get user context. * * @param null $mode * * @return string * user context. */ public function userContext($mode = NULL) { return 'civicrm/grant/annual/budgets'; } }