forked from eileenmcnaughton/nz.co.fuzion.extendedreport
-
Notifications
You must be signed in to change notification settings - Fork 0
/
extendedreport.php
executable file
·179 lines (159 loc) · 5 KB
/
extendedreport.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<?php
require_once 'extendedreport.civix.php';
use CRM_Extendedreport_ExtensionUtil as E;
/**
* Implementation of hook_civicrm_config
*/
function extendedreport_civicrm_config(&$config) {
_extendedreport_civix_civicrm_config($config);
}
/**
* Implementation of hook_civicrm_xmlMenu
*
* @param $files array(string)
*/
function extendedreport_civicrm_xmlMenu(&$files) {
_extendedreport_civix_civicrm_xmlMenu($files);
}
/**
* Implementation of hook_civicrm_install
*/
function extendedreport_civicrm_install() {
return _extendedreport_civix_civicrm_install();
}
/**
* Implementation of hook_civicrm_uninstall
*/
function extendedreport_civicrm_uninstall() {
return _extendedreport_civix_civicrm_uninstall();
}
/**
* Implementation of hook_civicrm_enable
*/
function extendedreport_civicrm_enable() {
return _extendedreport_civix_civicrm_enable();
}
/**
* Implementation of hook_civicrm_disable
*/
function extendedreport_civicrm_disable() {
return _extendedreport_civix_civicrm_disable();
}
/**
* Implements hook_civicrm_upgrade().
*
* @param $op string, the type of operation being performed; 'check' or 'enqueue'
* @param $queue CRM_Queue_Queue, (for 'enqueue') the modifiable list of pending up upgrade tasks
*
* @return mixed based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
* for 'enqueue', returns void
*/
function extendedreport_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
return _extendedreport_civix_civicrm_upgrade($op, $queue);
}
/**
* Implements hook_civicrm_angularModules().
*
* Generate a list of Angular modules.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_caseTypes
*/
function extendedreport_civicrm_angularModules(&$angularModules) {
_extendedreport_civix_civicrm_angularModules($angularModules);
}
/**
* Implements hook_civicrm_managed().
*
* Generate a list of entities to create/deactivate/delete when this module
* is installed, disabled, uninstalled.
*/
function extendedreport_civicrm_managed(&$entities) {
return _extendedreport_civix_civicrm_managed($entities);
}
/**
* Check version is at least as high as the one passed.
*
* @param string $version
*
* @return bool
*/
function extendedreport_version_at_least($version) {
$codeVersion = explode('.', CRM_Utils_System::version());
if (version_compare($codeVersion[0] . '.' . $codeVersion[1], $version) >= 0) {
return TRUE;
}
return FALSE;
}
function extendedreport_civicrm_tabset($tabsetName, &$tabs, $context) {
$reports = civicrm_api3('ReportInstance', 'get', ['form_values' => ['LIKE' => '%contact_dashboard_tab";s:1:"1";%']]);
if (!isset($context['contact_id'])) {
return;
}
foreach ($reports['values'] as $report) {
$tabs['report_' . $report['id']] = [
'title' => ts($report['title']),
'id' => 'report_' . $report['id'],
'url' => CRM_Utils_System::url('civicrm/report/instance/' . $report['id'], [
'log_civicrm_address_op' => 'in',
'contact_id_value' => $context['contact_id'],
'contact_id' => $context['contact_id'],
'output' => 'html',
'force' => 1,
'section' => 2,
]
),
'weight' => 70,
];
}
}
/**
* @param $op
* @param $objectName
* @param $objectId
* @param $objectRef
*/
function extendedreport_civicrm_post($op, $objectName, $objectId, &$objectRef) {
if ($objectName === 'ReportInstance') {
CRM_Extendedreport_Page_Inline_ExtendedReportlets::flushReports();
}
}
/**
* @param string $formName
* @param CRM_Extendedreport_Form_Report_ExtendedReport $form
*/
function extendedreport_civicrm_preProcess($formName, &$form) {
if (is_subclass_of($form, 'CRM_Extendedreport_Form_Report_ExtendedReport') && $form->getInstanceID()) {
CRM_Core_Resources::singleton()->addScript("cj('.crm-report-criteria').append(
'<p><a href=\"" . CRM_Utils_System::url('civicrm/a/#/exreport/report/' . $form->getInstanceID()) . "\">Advanced Report configuration</a> provides options to re-order columnns, change titles & fallback to another field on empty.</p>')");
}
}
/**
* Implements hook_civicrm_contactSummaryBlocks().
*
* @link https://github.com/civicrm/org.civicrm.contactlayout
*/
function extendedreport_civicrm_contactSummaryBlocks(&$blocks) {
$reports = CRM_Extendedreport_Page_Inline_ExtendedReportlets::getReportsToDisplay();
if (empty($reports)) {
return;
}
// Provide our own group for this block to visually distinguish it on the contact summary editor palette.
$blocks += [
'extendedreports' => [
'title' => ts('Extended report'),
'icon' => 'fa-table',
'blocks' => [],
],
];
foreach ($reports as $report) {
$blocks['extendedreports']['blocks']['report_' . $report['id']] = [
'id' => 'report_' . $report['id'],
'icon' => 'crm-i fa-bar-chart',
'title' => $report['title'],
'tpl_file' => 'CRM/Extendedreport/Page/Inline/ExtendedReport.tpl',
'edit' => FALSE,
'report_id' => $report['id'],
'collapsible' => TRUE,
];
}
}