Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Extensions
automaticsoftcredit
Commits
371f8b48
Unverified
Commit
371f8b48
authored
Jul 08, 2022
by
JonGold
Browse files
civix upgrade v22.05
parent
7cdb1ddd
Changes
4
Hide whitespace changes
Inline
Side-by-side
automaticsoftcredit.civix.php
View file @
371f8b48
...
...
@@ -79,6 +79,14 @@ class CRM_Automaticsoftcredit_ExtensionUtil {
use
CRM_Automaticsoftcredit_ExtensionUtil
as
E
;
function
_automaticsoftcredit_civix_mixin_polyfill
()
{
if
(
!
class_exists
(
'CRM_Extension_MixInfo'
))
{
$polyfill
=
__DIR__
.
'/mixin/polyfill.php'
;
(
require
$polyfill
)(
E
::
LONG_NAME
,
E
::
SHORT_NAME
,
E
::
path
());
}
}
/**
* (Delegated) Implements hook_civicrm_config().
*
...
...
@@ -91,9 +99,9 @@ function _automaticsoftcredit_civix_civicrm_config(&$config = NULL) {
}
$configured
=
TRUE
;
$template
=
&
CRM_Core_Smarty
::
singleton
();
$template
=
CRM_Core_Smarty
::
singleton
();
$extRoot
=
dirname
(
__FILE
__
)
.
DIRECTORY_SEPARATOR
;
$extRoot
=
__DIR
__
.
DIRECTORY_SEPARATOR
;
$extDir
=
$extRoot
.
'templates'
;
if
(
is_array
(
$template
->
template_dir
))
{
...
...
@@ -105,19 +113,8 @@ function _automaticsoftcredit_civix_civicrm_config(&$config = NULL) {
$include_path
=
$extRoot
.
PATH_SEPARATOR
.
get_include_path
();
set_include_path
(
$include_path
);
}
/**
* (Delegated) Implements hook_civicrm_xmlMenu().
*
* @param $files array(string)
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_xmlMenu
*/
function
_automaticsoftcredit_civix_civicrm_xmlMenu
(
&
$files
)
{
foreach
(
_automaticsoftcredit_civix_glob
(
__DIR__
.
'/xml/Menu/*.xml'
)
as
$file
)
{
$files
[]
=
$file
;
}
_automaticsoftcredit_civix_mixin_polyfill
();
}
/**
...
...
@@ -130,6 +127,7 @@ function _automaticsoftcredit_civix_civicrm_install() {
if
(
$upgrader
=
_automaticsoftcredit_civix_upgrader
())
{
$upgrader
->
onInstall
();
}
_automaticsoftcredit_civix_mixin_polyfill
();
}
/**
...
...
@@ -170,6 +168,7 @@ function _automaticsoftcredit_civix_civicrm_enable() {
$upgrader
->
onEnable
();
}
}
_automaticsoftcredit_civix_mixin_polyfill
();
}
/**
...
...
@@ -217,136 +216,6 @@ function _automaticsoftcredit_civix_upgrader() {
}
}
/**
* Search directory tree for files which match a glob pattern.
*
* Note: Dot-directories (like "..", ".git", or ".svn") will be ignored.
* Note: Delegate to CRM_Utils_File::findFiles(), this function kept only
* for backward compatibility of extension code that uses it.
*
* @param string $dir base dir
* @param string $pattern , glob pattern, eg "*.txt"
*
* @return array
*/
function
_automaticsoftcredit_civix_find_files
(
$dir
,
$pattern
)
{
return
CRM_Utils_File
::
findFiles
(
$dir
,
$pattern
);
}
/**
* (Delegated) Implements hook_civicrm_managed().
*
* Find any *.mgd.php files, merge their content, and return.
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_managed
*/
function
_automaticsoftcredit_civix_civicrm_managed
(
&
$entities
)
{
$mgdFiles
=
_automaticsoftcredit_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
;
}
if
(
empty
(
$e
[
'params'
][
'version'
]))
{
$e
[
'params'
][
'version'
]
=
'3'
;
}
$entities
[]
=
$e
;
}
}
}
/**
* (Delegated) Implements hook_civicrm_caseTypes().
*
* Find any and return any files matching "xml/case/*.xml"
*
* Note: This hook only runs in CiviCRM 4.4+.
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_caseTypes
*/
function
_automaticsoftcredit_civix_civicrm_caseTypes
(
&
$caseTypes
)
{
if
(
!
is_dir
(
__DIR__
.
'/xml/case'
))
{
return
;
}
foreach
(
_automaticsoftcredit_civix_glob
(
__DIR__
.
'/xml/case/*.xml'
)
as
$file
)
{
$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
));
throw
new
CRM_Core_Exception
(
$errorMessage
);
}
$caseTypes
[
$name
]
=
[
'module'
=>
E
::
LONG_NAME
,
'name'
=>
$name
,
'file'
=>
$file
,
];
}
}
/**
* (Delegated) Implements hook_civicrm_angularModules().
*
* Find any and return any files matching "ang/*.ang.php"
*
* Note: This hook only runs in CiviCRM 4.5+.
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_angularModules
*/
function
_automaticsoftcredit_civix_civicrm_angularModules
(
&
$angularModules
)
{
if
(
!
is_dir
(
__DIR__
.
'/ang'
))
{
return
;
}
$files
=
_automaticsoftcredit_civix_glob
(
__DIR__
.
'/ang/*.ang.php'
);
foreach
(
$files
as
$file
)
{
$name
=
preg_replace
(
':\.ang\.php$:'
,
''
,
basename
(
$file
));
$module
=
include
$file
;
if
(
empty
(
$module
[
'ext'
]))
{
$module
[
'ext'
]
=
E
::
LONG_NAME
;
}
$angularModules
[
$name
]
=
$module
;
}
}
/**
* (Delegated) Implements hook_civicrm_themes().
*
* Find any and return any files matching "*.theme.php"
*/
function
_automaticsoftcredit_civix_civicrm_themes
(
&
$themes
)
{
$files
=
_automaticsoftcredit_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.
*
* The documentation for glob() says, "On some systems it is impossible to
* distinguish between empty match and an error." Anecdotally, the return
* result for an empty match is sometimes array() and sometimes FALSE.
* This wrapper provides consistency.
*
* @link http://php.net/glob
* @param string $pattern
*
* @return array
*/
function
_automaticsoftcredit_civix_glob
(
$pattern
)
{
$result
=
glob
(
$pattern
);
return
is_array
(
$result
)
?
$result
:
[];
}
/**
* Inserts a navigation menu item at a given place in the hierarchy.
*
...
...
@@ -429,18 +298,6 @@ function _automaticsoftcredit_civix_fixNavigationMenuItems(&$nodes, &$maxNavID,
}
}
/**
* (Delegated) Implements hook_civicrm_alterSettingsFolders().
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
*/
function
_automaticsoftcredit_civix_civicrm_alterSettingsFolders
(
&
$metaDataFolders
=
NULL
)
{
$settingsDir
=
__DIR__
.
DIRECTORY_SEPARATOR
.
'settings'
;
if
(
!
in_array
(
$settingsDir
,
$metaDataFolders
)
&&
is_dir
(
$settingsDir
))
{
$metaDataFolders
[]
=
$settingsDir
;
}
}
/**
* (Delegated) Implements hook_civicrm_entityTypes().
*
...
...
automaticsoftcredit.php
View file @
371f8b48
...
...
@@ -66,15 +66,6 @@ function automaticsoftcredit_civicrm_config(&$config) {
_automaticsoftcredit_civix_civicrm_config
(
$config
);
}
/**
* Implements hook_civicrm_xmlMenu().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_xmlMenu
*/
function
automaticsoftcredit_civicrm_xmlMenu
(
&
$files
)
{
_automaticsoftcredit_civix_civicrm_xmlMenu
(
$files
);
}
/**
* Implements hook_civicrm_install().
*
...
...
@@ -129,54 +120,6 @@ function automaticsoftcredit_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL)
return
_automaticsoftcredit_civix_civicrm_upgrade
(
$op
,
$queue
);
}
/**
* Implements hook_civicrm_managed().
*
* Generate a list of entities to create/deactivate/delete when this module
* is installed, disabled, uninstalled.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_managed
*/
function
automaticsoftcredit_civicrm_managed
(
&
$entities
)
{
_automaticsoftcredit_civix_civicrm_managed
(
$entities
);
}
/**
* Implements hook_civicrm_caseTypes().
*
* Generate a list of case-types.
*
* Note: This hook only runs in CiviCRM 4.4+.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_caseTypes
*/
function
automaticsoftcredit_civicrm_caseTypes
(
&
$caseTypes
)
{
_automaticsoftcredit_civix_civicrm_caseTypes
(
$caseTypes
);
}
/**
* Implements hook_civicrm_angularModules().
*
* Generate a list of Angular modules.
*
* Note: This hook only runs in CiviCRM 4.5+. It may
* use features only available in v4.6+.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_angularModules
*/
function
automaticsoftcredit_civicrm_angularModules
(
&
$angularModules
)
{
_automaticsoftcredit_civix_civicrm_angularModules
(
$angularModules
);
}
/**
* Implements hook_civicrm_alterSettingsFolders().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_alterSettingsFolders
*/
function
automaticsoftcredit_civicrm_alterSettingsFolders
(
&
$metaDataFolders
=
NULL
)
{
_automaticsoftcredit_civix_civicrm_alterSettingsFolders
(
$metaDataFolders
);
}
/**
* Implements hook_civicrm_entityTypes().
*
...
...
info.xml
View file @
371f8b48
...
...
@@ -14,14 +14,15 @@
<url
desc=
"Support"
>
https://github.com/MegaphoneJon/automaticsoftcredit/issues
</url>
<url
desc=
"Licensing"
>
http://www.gnu.org/licenses/agpl-3.0.html
</url>
</urls>
<releaseDate>
202
1
-0
6
-0
1
</releaseDate>
<version>
2.
2
</version>
<releaseDate>
202
2
-0
7
-0
8
</releaseDate>
<version>
2.
3
</version>
<develStage>
stable
</develStage>
<compatibility>
<ver>
5.35
</ver>
</compatibility>
<comments
></comments
>
<comments
/
>
<civix>
<namespace>
CRM/Automaticsoftcredit
</namespace>
<format>
22.05.0
</format>
</civix>
</extension>
mixin/polyfill.php
0 → 100644
View file @
371f8b48
<?php
/**
* When deploying on systems that lack mixin support, fake it.
*
* @mixinFile polyfill.php
*
* This polyfill does some (persnickity) deduplication, but it doesn't allow upgrades or shipping replacements in core.
*
* Note: The polyfill.php is designed to be copied into extensions for interoperability. Consequently, this file is
* not used 'live' by `civicrm-core`. However, the file does need a canonical home, and it's convenient to keep it
* adjacent to the actual mixin files.
*
* @param string $longName
* @param string $shortName
* @param string $basePath
*/
return
function
(
$longName
,
$shortName
,
$basePath
)
{
// Construct imitations of the mixin services. These cannot work as well (e.g. with respect to
// number of file-reads, deduping, upgrading)... but they should be OK for a few months while
// the mixin services become available.
// List of active mixins; deduped by version
$mixinVers
=
[];
foreach
((
array
)
glob
(
$basePath
.
'/mixin/*.mixin.php'
)
as
$f
)
{
[
$name
,
$ver
]
=
explode
(
'@'
,
substr
(
basename
(
$f
),
0
,
-
10
));
if
(
!
isset
(
$mixinVers
[
$name
])
||
version_compare
(
$ver
,
$mixinVers
[
$name
],
'>'
))
{
$mixinVers
[
$name
]
=
$ver
;
}
}
$mixins
=
[];
foreach
(
$mixinVers
as
$name
=>
$ver
)
{
$mixins
[]
=
"
$name
@
$ver
"
;
}
// Imitate CRM_Extension_MixInfo.
$mixInfo
=
new
class
()
{
/**
* @var string
*/
public
$longName
;
/**
* @var string
*/
public
$shortName
;
public
$_basePath
;
public
function
getPath
(
$file
=
NULL
)
{
return
$this
->
_basePath
.
(
$file
===
NULL
?
''
:
(
DIRECTORY_SEPARATOR
.
$file
));
}
public
function
isActive
()
{
return
\
CRM_Extension_System
::
singleton
()
->
getMapper
()
->
isActiveModule
(
$this
->
shortName
);
}
};
$mixInfo
->
longName
=
$longName
;
$mixInfo
->
shortName
=
$shortName
;
$mixInfo
->
_basePath
=
$basePath
;
// Imitate CRM_Extension_BootCache.
$bootCache
=
new
class
()
{
public
function
define
(
$name
,
$callback
)
{
$envId
=
\
CRM_Core_Config_Runtime
::
getId
();
$oldExtCachePath
=
\
Civi
::
paths
()
->
getPath
(
"[civicrm.compile]/CachedExtLoader.
{
$envId
}
.php"
);
$stat
=
stat
(
$oldExtCachePath
);
$file
=
Civi
::
paths
()
->
getPath
(
'[civicrm.compile]/CachedMixin.'
.
md5
(
$name
.
(
$stat
[
'mtime'
]
??
0
))
.
'.php'
);
if
(
file_exists
(
$file
))
{
return
include
$file
;
}
else
{
$data
=
$callback
();
file_put_contents
(
$file
,
'<'
.
"?php
\n
return "
.
var_export
(
$data
,
1
)
.
';'
);
return
$data
;
}
}
};
// Imitate CRM_Extension_MixinLoader::run()
// Parse all live mixins before trying to scan any classes.
global
$_CIVIX_MIXIN_POLYFILL
;
foreach
(
$mixins
as
$mixin
)
{
// If the exact same mixin is defined by multiple exts, just use the first one.
if
(
!
isset
(
$_CIVIX_MIXIN_POLYFILL
[
$mixin
]))
{
$_CIVIX_MIXIN_POLYFILL
[
$mixin
]
=
include_once
$basePath
.
'/mixin/'
.
$mixin
.
'.mixin.php'
;
}
}
foreach
(
$mixins
as
$mixin
)
{
// If there's trickery about installs/uninstalls/resets, then we may need to register a second time.
if
(
!
isset
(
\
Civi
::
$statics
[
__FUNCTION__
][
$mixin
]))
{
\
Civi
::
$statics
[
__FUNCTION__
][
$mixin
]
=
1
;
$func
=
$_CIVIX_MIXIN_POLYFILL
[
$mixin
];
$func
(
$mixInfo
,
$bootCache
);
}
}
};
Write
Preview
Supports
Markdown
0%
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!
Cancel
Please
register
or
sign in
to comment