Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cc.tadpole.additionalreports
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
extensions
cc.tadpole.additionalreports
Commits
a31cb6e9
Verified
Commit
a31cb6e9
authored
3 years ago
by
Kevin Cristiano
Browse files
Options
Downloads
Patches
Plain Diff
php 7.4 update
Signed-off-by:
Kevin Cristiano
<
kcristiano@kcristiano.com
>
parent
47d92ca8
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
additionalreports.civix.php
+182
-77
182 additions, 77 deletions
additionalreports.civix.php
with
182 additions
and
77 deletions
additionalreports.civix.php
+
182
−
77
View file @
a31cb6e9
...
...
@@ -2,10 +2,87 @@
// AUTO-GENERATED FILE -- Civix may overwrite any changes made to this file
/**
* The ExtensionUtil class provides small stubs for accessing resources of this
* extension.
*/
class
CRM_Additionalreports_ExtensionUtil
{
const
SHORT_NAME
=
'additionalreports'
;
const
LONG_NAME
=
'cc.tadpole.additionalreports'
;
const
CLASS_PREFIX
=
'CRM_Additionalreports'
;
/**
* Translate a string using the extension's domain.
*
* If the extension doesn't have a specific translation
* for the string, fallback to the default translations.
*
* @param string $text
* Canonical message text (generally en_US).
* @param array $params
* @return string
* Translated text.
* @see ts
*/
public
static
function
ts
(
$text
,
$params
=
[])
{
if
(
!
array_key_exists
(
'domain'
,
$params
))
{
$params
[
'domain'
]
=
[
self
::
LONG_NAME
,
NULL
];
}
return
ts
(
$text
,
$params
);
}
/**
* Get the URL of a resource file (in this extension).
*
* @param string|NULL $file
* Ex: NULL.
* Ex: 'css/foo.css'.
* @return string
* Ex: 'http://example.org/sites/default/ext/org.example.foo'.
* Ex: 'http://example.org/sites/default/ext/org.example.foo/css/foo.css'.
*/
public
static
function
url
(
$file
=
NULL
)
{
if
(
$file
===
NULL
)
{
return
rtrim
(
CRM_Core_Resources
::
singleton
()
->
getUrl
(
self
::
LONG_NAME
),
'/'
);
}
return
CRM_Core_Resources
::
singleton
()
->
getUrl
(
self
::
LONG_NAME
,
$file
);
}
/**
* Get the path of a resource file (in this extension).
*
* @param string|NULL $file
* Ex: NULL.
* Ex: 'css/foo.css'.
* @return string
* Ex: '/var/www/example.org/sites/default/ext/org.example.foo'.
* Ex: '/var/www/example.org/sites/default/ext/org.example.foo/css/foo.css'.
*/
public
static
function
path
(
$file
=
NULL
)
{
// return CRM_Core_Resources::singleton()->getPath(self::LONG_NAME, $file);
return
__DIR__
.
(
$file
===
NULL
?
''
:
(
DIRECTORY_SEPARATOR
.
$file
));
}
/**
* Get the name of a class within this extension.
*
* @param string $suffix
* Ex: 'Page_HelloWorld' or 'Page\\HelloWorld'.
* @return string
* Ex: 'CRM_Foo_Page_HelloWorld'.
*/
public
static
function
findClass
(
$suffix
)
{
return
self
::
CLASS_PREFIX
.
'_'
.
str_replace
(
'\\'
,
'_'
,
$suffix
);
}
}
use
CRM_Additionalreports_ExtensionUtil
as
E
;
/**
* (Delegated) Implements hook_civicrm_config().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_config
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_config
*/
function
_additionalreports_civix_civicrm_config
(
&
$config
=
NULL
)
{
static
$configured
=
FALSE
;
...
...
@@ -19,14 +96,14 @@ function _additionalreports_civix_civicrm_config(&$config = NULL) {
$extRoot
=
dirname
(
__FILE__
)
.
DIRECTORY_SEPARATOR
;
$extDir
=
$extRoot
.
'templates'
;
if
(
is_array
(
$template
->
template_dir
)
)
{
array_unshift
(
$template
->
template_dir
,
$extDir
);
if
(
is_array
(
$template
->
template_dir
)
)
{
array_unshift
(
$template
->
template_dir
,
$extDir
);
}
else
{
$template
->
template_dir
=
array
(
$extDir
,
$template
->
template_dir
)
;
$template
->
template_dir
=
[
$extDir
,
$template
->
template_dir
]
;
}
$include_path
=
$extRoot
.
PATH_SEPARATOR
.
get_include_path
(
);
$include_path
=
$extRoot
.
PATH_SEPARATOR
.
get_include_path
();
set_include_path
(
$include_path
);
}
...
...
@@ -35,7 +112,7 @@ function _additionalreports_civix_civicrm_config(&$config = NULL) {
*
* @param $files array(string)
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_xmlMenu
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_xmlMenu
*/
function
_additionalreports_civix_civicrm_xmlMenu
(
&
$files
)
{
foreach
(
_additionalreports_civix_glob
(
__DIR__
.
'/xml/Menu/*.xml'
)
as
$file
)
{
...
...
@@ -46,7 +123,7 @@ function _additionalreports_civix_civicrm_xmlMenu(&$files) {
/**
* Implements hook_civicrm_install().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_install
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_install
*/
function
_additionalreports_civix_civicrm_install
()
{
_additionalreports_civix_civicrm_config
();
...
...
@@ -55,10 +132,24 @@ function _additionalreports_civix_civicrm_install() {
}
}
/**
* Implements hook_civicrm_postInstall().
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_postInstall
*/
function
_additionalreports_civix_civicrm_postInstall
()
{
_additionalreports_civix_civicrm_config
();
if
(
$upgrader
=
_additionalreports_civix_upgrader
())
{
if
(
is_callable
([
$upgrader
,
'onPostInstall'
]))
{
$upgrader
->
onPostInstall
();
}
}
}
/**
* Implements hook_civicrm_uninstall().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_uninstall
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_uninstall
*/
function
_additionalreports_civix_civicrm_uninstall
()
{
_additionalreports_civix_civicrm_config
();
...
...
@@ -70,12 +161,12 @@ function _additionalreports_civix_civicrm_uninstall() {
/**
* (Delegated) Implements hook_civicrm_enable().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_enable
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_enable
*/
function
_additionalreports_civix_civicrm_enable
()
{
_additionalreports_civix_civicrm_config
();
if
(
$upgrader
=
_additionalreports_civix_upgrader
())
{
if
(
is_callable
(
array
(
$upgrader
,
'onEnable'
)
))
{
if
(
is_callable
(
[
$upgrader
,
'onEnable'
]
))
{
$upgrader
->
onEnable
();
}
}
...
...
@@ -84,13 +175,13 @@ function _additionalreports_civix_civicrm_enable() {
/**
* (Delegated) Implements hook_civicrm_disable().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_disable
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_disable
* @return mixed
*/
function
_additionalreports_civix_civicrm_disable
()
{
_additionalreports_civix_civicrm_config
();
if
(
$upgrader
=
_additionalreports_civix_upgrader
())
{
if
(
is_callable
(
array
(
$upgrader
,
'onDisable'
)
))
{
if
(
is_callable
(
[
$upgrader
,
'onDisable'
]
))
{
$upgrader
->
onDisable
();
}
}
...
...
@@ -102,10 +193,11 @@ function _additionalreports_civix_civicrm_disable() {
* @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
* @return mixed
* based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
* for 'enqueue', returns void
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_upgrade
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_upgrade
*/
function
_additionalreports_civix_civicrm_upgrade
(
$op
,
CRM_Queue_Queue
$queue
=
NULL
)
{
if
(
$upgrader
=
_additionalreports_civix_upgrader
())
{
...
...
@@ -117,7 +209,7 @@ function _additionalreports_civix_civicrm_upgrade($op, CRM_Queue_Queue $queue =
* @return CRM_Additionalreports_Upgrader
*/
function
_additionalreports_civix_upgrader
()
{
if
(
!
file_exists
(
__DIR__
.
'/CRM/Additionalreports/Upgrader.php'
))
{
if
(
!
file_exists
(
__DIR__
.
'/CRM/Additionalreports/Upgrader.php'
))
{
return
NULL
;
}
else
{
...
...
@@ -126,56 +218,39 @@ function _additionalreports_civix_upgrader() {
}
/**
* Search directory tree for files which match a glob pattern
* Search directory tree for files which match a glob pattern
.
*
* Note: Dot-directories (like "..", ".git", or ".svn") will be ignored.
* Note: In Civi 4.3+, delegate to CRM_Utils_File::findFiles()
* Note: Delegate to CRM_Utils_File::findFiles(), this function kept only
* for backward compatibility of extension code that uses it.
*
* @param $dir string, base dir
* @param $pattern string, glob pattern, eg "*.txt"
* @return array(string)
* @param string $dir base dir
* @param string $pattern , glob pattern, eg "*.txt"
*
* @return array
*/
function
_additionalreports_civix_find_files
(
$dir
,
$pattern
)
{
if
(
is_callable
(
array
(
'CRM_Utils_File'
,
'findFiles'
)))
{
return
CRM_Utils_File
::
findFiles
(
$dir
,
$pattern
);
}
$todos
=
array
(
$dir
);
$result
=
array
();
while
(
!
empty
(
$todos
))
{
$subdir
=
array_shift
(
$todos
);
foreach
(
_additionalreports_civix_glob
(
"
$subdir
/
$pattern
"
)
as
$match
)
{
if
(
!
is_dir
(
$match
))
{
$result
[]
=
$match
;
}
}
if
(
$dh
=
opendir
(
$subdir
))
{
while
(
FALSE
!==
(
$entry
=
readdir
(
$dh
)))
{
$path
=
$subdir
.
DIRECTORY_SEPARATOR
.
$entry
;
if
(
$entry
{
0
}
==
'.'
)
{
}
elseif
(
is_dir
(
$path
))
{
$todos
[]
=
$path
;
}
}
closedir
(
$dh
);
}
}
return
$result
;
return
CRM_Utils_File
::
findFiles
(
$dir
,
$pattern
);
}
/**
* (Delegated) Implements hook_civicrm_managed().
*
* Find any *.mgd.php files, merge their content, and return.
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_managed
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_managed
*/
function
_additionalreports_civix_civicrm_managed
(
&
$entities
)
{
$mgdFiles
=
_additionalreports_civix_find_files
(
__DIR__
,
'*.mgd.php'
);
sort
(
$mgdFiles
);
foreach
(
$mgdFiles
as
$file
)
{
$es
=
include
$file
;
foreach
(
$es
as
$e
)
{
if
(
empty
(
$e
[
'module'
]))
{
$e
[
'module'
]
=
'cc.tadpole.additionalreports'
;
$e
[
'module'
]
=
E
::
LONG_NAME
;
}
if
(
empty
(
$e
[
'params'
][
'version'
]))
{
$e
[
'params'
][
'version'
]
=
'3'
;
}
$entities
[]
=
$e
;
}
...
...
@@ -189,7 +264,7 @@ function _additionalreports_civix_civicrm_managed(&$entities) {
*
* Note: This hook only runs in CiviCRM 4.4+.
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_caseTypes
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_caseTypes
*/
function
_additionalreports_civix_civicrm_caseTypes
(
&
$caseTypes
)
{
if
(
!
is_dir
(
__DIR__
.
'/xml/case'
))
{
...
...
@@ -200,14 +275,13 @@ function _additionalreports_civix_civicrm_caseTypes(&$caseTypes) {
$name
=
preg_replace
(
'/\.xml$/'
,
''
,
basename
(
$file
));
if
(
$name
!=
CRM_Case_XMLProcessor
::
mungeCaseType
(
$name
))
{
$errorMessage
=
sprintf
(
"Case-type file name is malformed (%s vs %s)"
,
$name
,
CRM_Case_XMLProcessor
::
mungeCaseType
(
$name
));
CRM_Core_Error
::
fatal
(
$errorMessage
);
// throw new CRM_Core_Exception($errorMessage);
throw
new
CRM_Core_Exception
(
$errorMessage
);
}
$caseTypes
[
$name
]
=
array
(
'module'
=>
'cc.tadpole.additionalreports'
,
$caseTypes
[
$name
]
=
[
'module'
=>
E
::
LONG_NAME
,
'name'
=>
$name
,
'file'
=>
$file
,
)
;
]
;
}
}
...
...
@@ -218,7 +292,7 @@ function _additionalreports_civix_civicrm_caseTypes(&$caseTypes) {
*
* Note: This hook only runs in CiviCRM 4.5+.
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_angularModules
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_angularModules
*/
function
_additionalreports_civix_civicrm_angularModules
(
&
$angularModules
)
{
if
(
!
is_dir
(
__DIR__
.
'/ang'
))
{
...
...
@@ -230,12 +304,31 @@ function _additionalreports_civix_civicrm_angularModules(&$angularModules) {
$name
=
preg_replace
(
':\.ang\.php$:'
,
''
,
basename
(
$file
));
$module
=
include
$file
;
if
(
empty
(
$module
[
'ext'
]))
{
$module
[
'ext'
]
=
'cc.tadpole.additionalreports'
;
$module
[
'ext'
]
=
E
::
LONG_NAME
;
}
$angularModules
[
$name
]
=
$module
;
}
}
/**
* (Delegated) Implements hook_civicrm_themes().
*
* Find any and return any files matching "*.theme.php"
*/
function
_additionalreports_civix_civicrm_themes
(
&
$themes
)
{
$files
=
_additionalreports_civix_glob
(
__DIR__
.
'/*.theme.php'
);
foreach
(
$files
as
$file
)
{
$themeMeta
=
include
$file
;
if
(
empty
(
$themeMeta
[
'name'
]))
{
$themeMeta
[
'name'
]
=
preg_replace
(
':\.theme\.php$:'
,
''
,
basename
(
$file
));
}
if
(
empty
(
$themeMeta
[
'ext'
]))
{
$themeMeta
[
'ext'
]
=
E
::
LONG_NAME
;
}
$themes
[
$themeMeta
[
'name'
]]
=
$themeMeta
;
}
}
/**
* Glob wrapper which is guaranteed to return an array.
*
...
...
@@ -246,40 +339,47 @@ function _additionalreports_civix_civicrm_angularModules(&$angularModules) {
*
* @link http://php.net/glob
* @param string $pattern
* @return array, possibly empty
*
* @return array
*/
function
_additionalreports_civix_glob
(
$pattern
)
{
$result
=
glob
(
$pattern
);
return
is_array
(
$result
)
?
$result
:
array
()
;
return
is_array
(
$result
)
?
$result
:
[]
;
}
/**
* Inserts a navigation menu item at a given place in the hierarchy.
*
* @param array $menu - menu hierarchy
* @param string $path - path where insertion should happen (ie. Administer/System Settings)
* @param array $item - menu you need to insert (parent/child attributes will be filled for you)
* @param string $path - path to parent of this item, e.g. 'my_extension/submenu'
* 'Mailing', or 'Administer/System Settings'
* @param array $item - the item to insert (parent/child attributes will be
* filled for you)
*
* @return bool
*/
function
_additionalreports_civix_insert_navigation_menu
(
&
$menu
,
$path
,
$item
)
{
// If we are done going down the path, insert menu
if
(
empty
(
$path
))
{
$menu
[]
=
array
(
'attributes'
=>
array_merge
(
array
(
$menu
[]
=
[
'attributes'
=>
array_merge
(
[
'label'
=>
CRM_Utils_Array
::
value
(
'name'
,
$item
),
'active'
=>
1
,
)
,
$item
),
)
;
]
,
$item
),
]
;
return
TRUE
;
}
else
{
// Find an recurse into the next level down
$found
=
false
;
$found
=
FALSE
;
$path
=
explode
(
'/'
,
$path
);
$first
=
array_shift
(
$path
);
foreach
(
$menu
as
$key
=>
&
$entry
)
{
if
(
$entry
[
'attributes'
][
'name'
]
==
$first
)
{
if
(
!
$entry
[
'child'
])
$entry
[
'child'
]
=
array
();
$found
=
_additionalreports_civix_insert_navigation_menu
(
$entry
[
'child'
],
implode
(
'/'
,
$path
),
$item
,
$key
);
if
(
!
isset
(
$entry
[
'child'
]))
{
$entry
[
'child'
]
=
[];
}
$found
=
_additionalreports_civix_insert_navigation_menu
(
$entry
[
'child'
],
implode
(
'/'
,
$path
),
$item
);
}
}
return
$found
;
...
...
@@ -290,7 +390,7 @@ function _additionalreports_civix_insert_navigation_menu(&$menu, $path, $item) {
* (Delegated) Implements hook_civicrm_navigationMenu().
*/
function
_additionalreports_civix_navigationMenu
(
&
$nodes
)
{
if
(
!
is_callable
(
array
(
'CRM_Core_BAO_Navigation'
,
'fixNavigationMenu'
)
))
{
if
(
!
is_callable
(
[
'CRM_Core_BAO_Navigation'
,
'fixNavigationMenu'
]
))
{
_additionalreports_civix_fixNavigationMenu
(
$nodes
);
}
}
...
...
@@ -305,7 +405,7 @@ function _additionalreports_civix_fixNavigationMenu(&$nodes) {
if
(
$key
===
'navID'
)
{
$maxNavID
=
max
(
$maxNavID
,
$item
);
}
});
});
_additionalreports_civix_fixNavigationMenuItems
(
$nodes
,
$maxNavID
,
NULL
);
}
...
...
@@ -332,17 +432,22 @@ function _additionalreports_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $p
/**
* (Delegated) Implements hook_civicrm_alterSettingsFolders().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_alterSettingsFolders
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_alterSettingsFolders
*/
function
_additionalreports_civix_civicrm_alterSettingsFolders
(
&
$metaDataFolders
=
NULL
)
{
static
$configured
=
FALSE
;
if
(
$configured
)
{
return
;
}
$configured
=
TRUE
;
$settingsDir
=
__DIR__
.
DIRECTORY_SEPARATOR
.
'settings'
;
if
(
is_dir
(
$settingsDir
)
&&
!
in_array
(
$settingsDir
,
$metaDataFolders
))
{
if
(
!
in_array
(
$settingsDir
,
$metaDataFolders
)
&&
is_dir
(
$settingsDir
)
)
{
$metaDataFolders
[]
=
$settingsDir
;
}
}
/**
* (Delegated) Implements hook_civicrm_entityTypes().
*
* Find any *.entityType.php files, merge their content, and return.
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_entityTypes
*/
function
_additionalreports_civix_civicrm_entityTypes
(
&
$entityTypes
)
{
$entityTypes
=
array_merge
(
$entityTypes
,
[]);
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment