Added more changes
This commit is contained in:
60
CRM/EntityTemplates/BAO/EntityTemplates.php
Normal file
60
CRM/EntityTemplates/BAO/EntityTemplates.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
class CRM_EntityTemplates_BAO_EntityTemplates extends CRM_Core_DAO_EntityTemplates {
|
||||
|
||||
/**
|
||||
* Build Fiscal year option list.
|
||||
*
|
||||
*/
|
||||
public static function getEntityTypes() {
|
||||
$result = civicrm_api3('OptionValue', 'get', [
|
||||
'return' => ["value"],
|
||||
'option_group_id' => "entity_template_for",
|
||||
'options' => ['limit' => 0],
|
||||
]);
|
||||
return array_column($result['values'], 'value', 'value');
|
||||
}
|
||||
|
||||
public static function create($params) {
|
||||
|
||||
if (empty($params['entity_table'])) {
|
||||
throw new CRM_Core_Exception(ts('Entity Table is mandatory.'));
|
||||
}
|
||||
try {
|
||||
$optionValueName = civicrm_api3('OptionValue', 'getvalue', [
|
||||
'option_group_id' => "entity_template_for",
|
||||
'value' => $params['entity_table'],
|
||||
'return' => 'name',
|
||||
]);
|
||||
}
|
||||
catch (CiviCRM_API3_Exception $e) {
|
||||
throw new CRM_Core_Exception(ts('Invalid Entity Type.'));
|
||||
}
|
||||
|
||||
if (empty($params['form_values'])) {
|
||||
return;
|
||||
}
|
||||
$params['form_values'] = serialize($params['form_values']);
|
||||
|
||||
if (!empty($params['id'])) {
|
||||
CRM_Utils_Hook::pre('edit', 'EntityTemplates', $params['id'], $params);
|
||||
}
|
||||
else {
|
||||
CRM_Utils_Hook::pre('create', 'EntityTemplates', NULL, $params);
|
||||
}
|
||||
|
||||
$entityTemplates = new CRM_EntityTemplates_BAO_EntityTemplates();
|
||||
$entityTemplates->copyValues($params);
|
||||
$entityTemplates->save();
|
||||
|
||||
if (!empty($params['id'])) {
|
||||
CRM_Utils_Hook::post('edit', 'EntityTemplates', $entityTemplates->id, $entityTemplates);
|
||||
}
|
||||
else {
|
||||
CRM_Utils_Hook::post('create', 'EntityTemplates', $entityTemplates->id, $entityTemplates);
|
||||
}
|
||||
|
||||
return $entityTemplates;
|
||||
}
|
||||
|
||||
}
|
@ -2,6 +2,13 @@
|
||||
|
||||
class CRM_EntityTemplates_Page_EntityTemplates extends CRM_Core_Page_Basic {
|
||||
|
||||
/**
|
||||
* The action links that we need to display for the browse screen.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
static $_links = NULL;
|
||||
|
||||
/**
|
||||
* Get BAO Name.
|
||||
*
|
||||
@ -19,7 +26,23 @@ class CRM_EntityTemplates_Page_EntityTemplates extends CRM_Core_Page_Basic {
|
||||
* (reference) of action links
|
||||
*/
|
||||
public function &links() {
|
||||
return [];
|
||||
if (!(self::$_links)) {
|
||||
self::$_links = [
|
||||
CRM_Core_Action::UPDATE => [
|
||||
'name' => ts('Edit'),
|
||||
'url' => '%%url%%',
|
||||
'qs' => '%%query%%&isTemplate=1&templateId=%%id%%',
|
||||
'title' => ts('Edit template'),
|
||||
],
|
||||
CRM_Core_Action::DELETE => [
|
||||
'name' => ts('Delete'),
|
||||
'url' => 'civicrm/entity/templates',
|
||||
'qs' => 'action=delete&id=%%id%%',
|
||||
'title' => ts('Delete template'),
|
||||
],
|
||||
];
|
||||
}
|
||||
return self::$_links;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -31,11 +54,25 @@ class CRM_EntityTemplates_Page_EntityTemplates extends CRM_Core_Page_Basic {
|
||||
if (!CRM_Core_Permission::check('administer CiviCRM')) {
|
||||
return CRM_Utils_System::permissionDenied();
|
||||
}
|
||||
$entityType = CRM_Utils_Request::retrieve('entityType', 'Positive');
|
||||
$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);
|
||||
$entityTypeOptions = '';
|
||||
foreach ($entityTypes as $key => $value) {
|
||||
$extra = '';
|
||||
@ -45,6 +82,36 @@ class CRM_EntityTemplates_Page_EntityTemplates extends CRM_Core_Page_Basic {
|
||||
$entityTypeOptions .= "<option value='{$key}' {$extra}>{$value}</option>";
|
||||
}
|
||||
$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[] = [
|
||||
'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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user