Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Extensions
mosaicomsgtpl
Commits
b6071d23
Commit
b6071d23
authored
Jan 17, 2021
by
Seamus Lee
Browse files
Regenerate auto generated civix files
parent
6547067c
Changes
2
Hide whitespace changes
Inline
Side-by-side
CRM/Mosaicomsgtpl/Upgrader/Base.php
View file @
b6071d23
...
...
@@ -9,9 +9,9 @@ use CRM_Mosaicomsgtpl_ExtensionUtil as E;
class
CRM_Mosaicomsgtpl_Upgrader_Base
{
/**
* @var
varies, subclass of ttis
* @var
CRM_Mosaicomsgtpl_Upgrader_Base
*/
static
$instance
;
public
static
$instance
;
/**
* @var CRM_Queue_TaskContext
...
...
@@ -19,22 +19,25 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
protected
$ctx
;
/**
* @var string, eg 'com.example.myextension'
* @var string
* eg 'com.example.myextension'
*/
protected
$extensionName
;
/**
* @var string, full path to the extension's source tree
* @var string
* full path to the extension's source tree
*/
protected
$extensionDir
;
/**
* @var array(revisionNumber) sorted numerically
* @var array
* sorted numerically
*/
private
$revisions
;
/**
* @var bool
ean
* @var bool
* Flag to clean up extension revision data in civicrm_setting
*/
private
$revisionStorageIsDeprecated
=
FALSE
;
...
...
@@ -42,12 +45,11 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
/**
* Obtain a reference to the active upgrade handler.
*/
static
publ
ic
function
instance
()
{
public
stat
ic
function
instance
()
{
if
(
!
self
::
$instance
)
{
// FIXME auto-generate
self
::
$instance
=
new
CRM_Mosaicomsgtpl_Upgrader
(
'org.civicrm.mosaicomsgtpl'
,
real
path
(
__DIR__
.
'/../../../'
)
E
::
path
()
);
}
return
self
::
$instance
;
...
...
@@ -59,19 +61,25 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
* Note: Each upgrader instance should only be associated with one
* task-context; otherwise, this will be non-reentrant.
*
*
@code
*
```
* CRM_Mosaicomsgtpl_Upgrader_Base::_queueAdapter($ctx, 'methodName', 'arg1', 'arg2');
*
@endcode
*
```
*/
static
publ
ic
function
_queueAdapter
()
{
public
stat
ic
function
_queueAdapter
()
{
$instance
=
self
::
instance
();
$args
=
func_get_args
();
$instance
->
ctx
=
array_shift
(
$args
);
$instance
->
queue
=
$instance
->
ctx
->
queue
;
$method
=
array_shift
(
$args
);
return
call_user_func_array
(
array
(
$instance
,
$method
)
,
$args
);
return
call_user_func_array
(
[
$instance
,
$method
]
,
$args
);
}
/**
* CRM_Mosaicomsgtpl_Upgrader_Base constructor.
*
* @param $extensionName
* @param $extensionDir
*/
public
function
__construct
(
$extensionName
,
$extensionDir
)
{
$this
->
extensionName
=
$extensionName
;
$this
->
extensionDir
=
$extensionDir
;
...
...
@@ -82,7 +90,8 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
/**
* Run a CustomData file.
*
* @param string $relativePath the CustomData XML file path (relative to this extension's dir)
* @param string $relativePath
* the CustomData XML file path (relative to this extension's dir)
* @return bool
*/
public
function
executeCustomDataFile
(
$relativePath
)
{
...
...
@@ -93,11 +102,12 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
/**
* Run a CustomData file
*
* @param string $xml_file the CustomData XML file path (absolute path)
* @param string $xml_file
* the CustomData XML file path (absolute path)
*
* @return bool
*/
protected
static
function
executeCustomDataFileByAbsPath
(
$xml_file
)
{
protected
function
executeCustomDataFileByAbsPath
(
$xml_file
)
{
$import
=
new
CRM_Utils_Migrate_Import
();
$import
->
run
(
$xml_file
);
return
TRUE
;
...
...
@@ -106,7 +116,8 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
/**
* Run a SQL file.
*
* @param string $relativePath the SQL file path (relative to this extension's dir)
* @param string $relativePath
* the SQL file path (relative to this extension's dir)
*
* @return bool
*/
...
...
@@ -119,10 +130,14 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
}
/**
* Run the sql commands in the specified file.
*
* @param string $tplFile
* The SQL file path (relative to this extension's dir).
* Ex: "sql/mydata.mysql.tpl".
*
* @return bool
* @throws \CRM_Core_Exception
*/
public
function
executeSqlTemplate
(
$tplFile
)
{
// Assign multilingual variable to Smarty.
...
...
@@ -141,17 +156,19 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
* Run one SQL query.
*
* This is just a wrapper for CRM_Core_DAO::executeSql, but it
* provides syntatic sugar for queueing several tasks that
* provides synta
c
tic sugar for queueing several tasks that
* run different queries
*
* @return bool
*/
public
function
executeSql
(
$query
,
$params
=
array
()
)
{
public
function
executeSql
(
$query
,
$params
=
[]
)
{
// FIXME verify that we raise an exception on error
CRM_Core_DAO
::
executeQuery
(
$query
,
$params
);
return
TRUE
;
}
/**
* Syntatic sugar for enqueuing a task which calls a function in this class.
* Synta
c
tic sugar for enqueuing a task which calls a function in this class.
*
* The task is weighted so that it is processed
* as part of the currently-pending revision.
...
...
@@ -163,11 +180,11 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
$args
=
func_get_args
();
$title
=
array_shift
(
$args
);
$task
=
new
CRM_Queue_Task
(
array
(
get_class
(
$this
),
'_queueAdapter'
)
,
[
get_class
(
$this
),
'_queueAdapter'
]
,
$args
,
$title
);
return
$this
->
queue
->
createItem
(
$task
,
array
(
'weight'
=>
-
1
)
);
return
$this
->
queue
->
createItem
(
$task
,
[
'weight'
=>
-
1
]
);
}
// ******** Revision-tracking helpers ********
...
...
@@ -193,6 +210,8 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
/**
* Add any pending revisions to the queue.
*
* @param CRM_Queue_Queue $queue
*/
public
function
enqueuePendingRevisions
(
CRM_Queue_Queue
$queue
)
{
$this
->
queue
=
$queue
;
...
...
@@ -200,23 +219,23 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
$currentRevision
=
$this
->
getCurrentRevision
();
foreach
(
$this
->
getRevisions
()
as
$revision
)
{
if
(
$revision
>
$currentRevision
)
{
$title
=
ts
(
'Upgrade %1 to revision %2'
,
array
(
$title
=
E
::
ts
(
'Upgrade %1 to revision %2'
,
[
1
=>
$this
->
extensionName
,
2
=>
$revision
,
)
);
]
);
// note: don't use addTask() because it sets weight=-1
$task
=
new
CRM_Queue_Task
(
array
(
get_class
(
$this
),
'_queueAdapter'
)
,
array
(
'upgrade_'
.
$revision
)
,
[
get_class
(
$this
),
'_queueAdapter'
]
,
[
'upgrade_'
.
$revision
]
,
$title
);
$this
->
queue
->
createItem
(
$task
);
$task
=
new
CRM_Queue_Task
(
array
(
get_class
(
$this
),
'_queueAdapter'
)
,
array
(
'setCurrentRevision'
,
$revision
)
,
[
get_class
(
$this
),
'_queueAdapter'
]
,
[
'setCurrentRevision'
,
$revision
]
,
$title
);
$this
->
queue
->
createItem
(
$task
);
...
...
@@ -227,11 +246,12 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
/**
* Get a list of revisions.
*
* @return array(revisionNumbers) sorted numerically
* @return array
* revisionNumbers sorted numerically
*/
public
function
getRevisions
()
{
if
(
!
is_array
(
$this
->
revisions
))
{
$this
->
revisions
=
array
()
;
$this
->
revisions
=
[]
;
$clazz
=
new
ReflectionClass
(
get_class
(
$this
));
$methods
=
$clazz
->
getMethods
();
...
...
@@ -256,7 +276,7 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
private
function
getCurrentRevisionDeprecated
()
{
$key
=
$this
->
extensionName
.
':version'
;
if
(
$revision
=
CRM_Core_BAO_Setting
::
getItem
(
'Extension'
,
$key
))
{
if
(
$revision
=
\
Civi
::
settings
()
->
get
(
$key
))
{
$this
->
revisionStorageIsDeprecated
=
TRUE
;
}
return
$revision
;
...
...
@@ -281,7 +301,7 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
// ******** Hook delegates ********
/**
* @see https://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_install
* @see https://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_install
*/
public
function
onInstall
()
{
$files
=
glob
(
$this
->
extensionDir
.
'/sql/*_install.sql'
);
...
...
@@ -302,26 +322,26 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
$this
->
executeCustomDataFileByAbsPath
(
$file
);
}
}
if
(
is_callable
(
array
(
$this
,
'install'
)
))
{
if
(
is_callable
(
[
$this
,
'install'
]
))
{
$this
->
install
();
}
}
/**
* @see https://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_postInstall
* @see https://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_postInstall
*/
public
function
onPostInstall
()
{
$revisions
=
$this
->
getRevisions
();
if
(
!
empty
(
$revisions
))
{
$this
->
setCurrentRevision
(
max
(
$revisions
));
}
if
(
is_callable
(
array
(
$this
,
'postInstall'
)
))
{
if
(
is_callable
(
[
$this
,
'postInstall'
]
))
{
$this
->
postInstall
();
}
}
/**
* @see https://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_uninstall
* @see https://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_uninstall
*/
public
function
onUninstall
()
{
$files
=
glob
(
$this
->
extensionDir
.
'/sql/*_uninstall.mysql.tpl'
);
...
...
@@ -330,7 +350,7 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
$this
->
executeSqlTemplate
(
$file
);
}
}
if
(
is_callable
(
array
(
$this
,
'uninstall'
)
))
{
if
(
is_callable
(
[
$this
,
'uninstall'
]
))
{
$this
->
uninstall
();
}
$files
=
glob
(
$this
->
extensionDir
.
'/sql/*_uninstall.sql'
);
...
...
@@ -342,21 +362,21 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
}
/**
* @see https://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_enable
* @see https://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_enable
*/
public
function
onEnable
()
{
// stub for possible future use
if
(
is_callable
(
array
(
$this
,
'enable'
)
))
{
if
(
is_callable
(
[
$this
,
'enable'
]
))
{
$this
->
enable
();
}
}
/**
* @see https://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_disable
* @see https://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_disable
*/
public
function
onDisable
()
{
// stub for possible future use
if
(
is_callable
(
array
(
$this
,
'disable'
)
))
{
if
(
is_callable
(
[
$this
,
'disable'
]
))
{
$this
->
disable
();
}
}
...
...
@@ -364,7 +384,7 @@ class CRM_Mosaicomsgtpl_Upgrader_Base {
public
function
onUpgrade
(
$op
,
CRM_Queue_Queue
$queue
=
NULL
)
{
switch
(
$op
)
{
case
'check'
:
return
array
(
$this
->
hasPendingRevisions
()
)
;
return
[
$this
->
hasPendingRevisions
()
]
;
case
'enqueue'
:
return
$this
->
enqueuePendingRevisions
(
$queue
);
...
...
mosaicomsgtpl.civix.php
View file @
b6071d23
...
...
@@ -7,9 +7,9 @@
* extension.
*/
class
CRM_Mosaicomsgtpl_ExtensionUtil
{
const
SHORT_NAME
=
"
mosaicomsgtpl
"
;
const
LONG_NAME
=
"
org.civicrm.mosaicomsgtpl
"
;
const
CLASS_PREFIX
=
"
CRM_Mosaicomsgtpl
"
;
const
SHORT_NAME
=
'
mosaicomsgtpl
'
;
const
LONG_NAME
=
'
org.civicrm.mosaicomsgtpl
'
;
const
CLASS_PREFIX
=
'
CRM_Mosaicomsgtpl
'
;
/**
* Translate a string using the extension's domain.
...
...
@@ -24,9 +24,9 @@ class CRM_Mosaicomsgtpl_ExtensionUtil {
* Translated text.
* @see ts
*/
public
static
function
ts
(
$text
,
$params
=
array
()
)
{
public
static
function
ts
(
$text
,
$params
=
[]
)
{
if
(
!
array_key_exists
(
'domain'
,
$params
))
{
$params
[
'domain'
]
=
array
(
self
::
LONG_NAME
,
NULL
)
;
$params
[
'domain'
]
=
[
self
::
LONG_NAME
,
NULL
]
;
}
return
ts
(
$text
,
$params
);
}
...
...
@@ -82,7 +82,7 @@ use CRM_Mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_config
(
&
$config
=
NULL
)
{
static
$configured
=
FALSE
;
...
...
@@ -100,7 +100,7 @@ function _mosaicomsgtpl_civix_civicrm_config(&$config = NULL) {
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
();
...
...
@@ -112,7 +112,7 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_xmlMenu
(
&
$files
)
{
foreach
(
_mosaicomsgtpl_civix_glob
(
__DIR__
.
'/xml/Menu/*.xml'
)
as
$file
)
{
...
...
@@ -123,7 +123,7 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_install
()
{
_mosaicomsgtpl_civix_civicrm_config
();
...
...
@@ -135,12 +135,12 @@ function _mosaicomsgtpl_civix_civicrm_install() {
/**
* Implements hook_civicrm_postInstall().
*
* @link http://
wiki
.civicrm.org/
confluence/display/CRMDOC
/hook_civicrm_postInstall
* @link http
s
://
docs
.civicrm.org/
dev/en/latest/hooks
/hook_civicrm_postInstall
*/
function
_mosaicomsgtpl_civix_civicrm_postInstall
()
{
_mosaicomsgtpl_civix_civicrm_config
();
if
(
$upgrader
=
_mosaicomsgtpl_civix_upgrader
())
{
if
(
is_callable
(
array
(
$upgrader
,
'onPostInstall'
)
))
{
if
(
is_callable
(
[
$upgrader
,
'onPostInstall'
]
))
{
$upgrader
->
onPostInstall
();
}
}
...
...
@@ -149,7 +149,7 @@ function _mosaicomsgtpl_civix_civicrm_postInstall() {
/**
* 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
_mosaicomsgtpl_civix_civicrm_uninstall
()
{
_mosaicomsgtpl_civix_civicrm_config
();
...
...
@@ -161,12 +161,12 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_enable
()
{
_mosaicomsgtpl_civix_civicrm_config
();
if
(
$upgrader
=
_mosaicomsgtpl_civix_upgrader
())
{
if
(
is_callable
(
array
(
$upgrader
,
'onEnable'
)
))
{
if
(
is_callable
(
[
$upgrader
,
'onEnable'
]
))
{
$upgrader
->
onEnable
();
}
}
...
...
@@ -175,13 +175,13 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_disable
()
{
_mosaicomsgtpl_civix_civicrm_config
();
if
(
$upgrader
=
_mosaicomsgtpl_civix_upgrader
())
{
if
(
is_callable
(
array
(
$upgrader
,
'onDisable'
)
))
{
if
(
is_callable
(
[
$upgrader
,
'onDisable'
]
))
{
$upgrader
->
onDisable
();
}
}
...
...
@@ -193,10 +193,11 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_upgrade
(
$op
,
CRM_Queue_Queue
$queue
=
NULL
)
{
if
(
$upgrader
=
_mosaicomsgtpl_civix_upgrader
())
{
...
...
@@ -217,22 +218,23 @@ function _mosaicomsgtpl_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()
*
* @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
_mosaicomsgtpl_civix_find_files
(
$dir
,
$pattern
)
{
if
(
is_callable
(
array
(
'CRM_Utils_File'
,
'findFiles'
)
))
{
if
(
is_callable
(
[
'CRM_Utils_File'
,
'findFiles'
]
))
{
return
CRM_Utils_File
::
findFiles
(
$dir
,
$pattern
);
}
$todos
=
array
(
$dir
)
;
$result
=
array
()
;
$todos
=
[
$dir
]
;
$result
=
[]
;
while
(
!
empty
(
$todos
))
{
$subdir
=
array_shift
(
$todos
);
foreach
(
_mosaicomsgtpl_civix_glob
(
"
$subdir
/
$pattern
"
)
as
$match
)
{
...
...
@@ -243,7 +245,7 @@ function _mosaicomsgtpl_civix_find_files($dir, $pattern) {
if
(
$dh
=
opendir
(
$subdir
))
{
while
(
FALSE
!==
(
$entry
=
readdir
(
$dh
)))
{
$path
=
$subdir
.
DIRECTORY_SEPARATOR
.
$entry
;
if
(
$entry
{
0
}
==
'.'
)
{
if
(
$entry
[
0
]
==
'.'
)
{
}
elseif
(
is_dir
(
$path
))
{
$todos
[]
=
$path
;
...
...
@@ -254,25 +256,27 @@ function _mosaicomsgtpl_civix_find_files($dir, $pattern) {
}
return
$result
;
}
/**
* (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
_mosaicomsgtpl_civix_civicrm_managed
(
&
$entities
)
{
$mgdFiles
=
_mosaicomsgtpl_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'
]
=
E
::
LONG_NAME
;
}
$entities
[]
=
$e
;
if
(
empty
(
$e
[
'params'
][
'version'
]))
{
$e
[
'params'
][
'version'
]
=
'3'
;
}
$entities
[]
=
$e
;
}
}
}
...
...
@@ -284,7 +288,7 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_caseTypes
(
&
$caseTypes
)
{
if
(
!
is_dir
(
__DIR__
.
'/xml/case'
))
{
...
...
@@ -295,14 +299,13 @@ function _mosaicomsgtpl_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
(
$caseTypes
[
$name
]
=
[
'module'
=>
E
::
LONG_NAME
,
'name'
=>
$name
,
'file'
=>
$file
,
)
;
]
;
}
}
...
...
@@ -313,7 +316,7 @@ function _mosaicomsgtpl_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
_mosaicomsgtpl_civix_civicrm_angularModules
(
&
$angularModules
)
{
if
(
!
is_dir
(
__DIR__
.
'/ang'
))
{
...
...
@@ -331,6 +334,25 @@ function _mosaicomsgtpl_civix_civicrm_angularModules(&$angularModules) {
}
}
/**
* (Delegated) Implements hook_civicrm_themes().
*
* Find any and return any files matching "*.theme.php"
*/
function
_mosaicomsgtpl_civix_civicrm_themes
(
&
$themes
)
{
$files
=
_mosaicomsgtpl_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.
*
...
...
@@ -341,29 +363,34 @@ function _mosaicomsgtpl_civix_civicrm_angularModules(&$angularModules) {
*
* @link http://php.net/glob
* @param string $pattern
* @return array, possibly empty
*
* @return array
*/
function
_mosaicomsgtpl_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
_mosaicomsgtpl_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
{
...
...
@@ -374,9 +401,9 @@ function _mosaicomsgtpl_civix_insert_navigation_menu(&$menu, $path, $item) {
foreach
(
$menu
as
$key
=>
&
$entry
)
{
if
(
$entry
[
'attributes'
][
'name'
]
==
$first
)
{
if
(
!
isset
(
$entry
[
'child'
]))
{
$entry
[
'child'
]
=
array
()
;
$entry
[
'child'
]
=
[]
;
}
$found
=
_mosaicomsgtpl_civix_insert_navigation_menu
(
$entry
[
'child'
],
implode
(
'/'
,
$path
),
$item
,
$key
);
$found
=
_mosaicomsgtpl_civix_insert_navigation_menu
(
$entry
[
'child'
],
implode
(
'/'
,
$path
),
$item
);
}
}
return
$found
;
...
...
@@ -387,7 +414,7 @@ function _mosaicomsgtpl_civix_insert_navigation_menu(&$menu, $path, $item) {
* (Delegated) Implements hook_civicrm_navigationMenu().
*/
function
_mosaicomsgtpl_civix_navigationMenu
(
&
$nodes
)
{
if
(
!
is_callable
(
array
(
'CRM_Core_BAO_Navigation'
,
'fixNavigationMenu'
)
))
{
if
(
!
is_callable
(
[
'CRM_Core_BAO_Navigation'
,
'fixNavigationMenu'
]
))
{
_mosaicomsgtpl_civix_fixNavigationMenu
(
$nodes
);
}
}
...
...
@@ -429,17 +456,22 @@ function _mosaicomsgtpl_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $paren
/**