Skip to content
Snippets Groups Projects
Commit 520add76 authored by mattwire's avatar mattwire
Browse files

Release 1.1

parent 49ced528
No related branches found
No related tags found
No related merge requests found
Package: cmsuser
Copyright (C) 2021, Matthew Wire <mjw@mjwconsult.co.uk>
Copyright (C) 2022, Matthew Wire <mjw@mjwconsult.co.uk>
Licensed under the GNU Affero Public License 3.0 (below).
-------------------------------------------------------------------------------
......
......@@ -79,6 +79,14 @@ class CRM_Cmsuser_ExtensionUtil {
use CRM_Cmsuser_ExtensionUtil as E;
function _cmsuser_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 _cmsuser_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 _cmsuser_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 _cmsuser_civix_civicrm_xmlMenu(&$files) {
foreach (_cmsuser_civix_glob(__DIR__ . '/xml/Menu/*.xml') as $file) {
$files[] = $file;
}
_cmsuser_civix_mixin_polyfill();
}
/**
......@@ -130,6 +127,7 @@ function _cmsuser_civix_civicrm_install() {
if ($upgrader = _cmsuser_civix_upgrader()) {
$upgrader->onInstall();
}
_cmsuser_civix_mixin_polyfill();
}
/**
......@@ -170,6 +168,7 @@ function _cmsuser_civix_civicrm_enable() {
$upgrader->onEnable();
}
}
_cmsuser_civix_mixin_polyfill();
}
/**
......@@ -217,136 +216,6 @@ function _cmsuser_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 _cmsuser_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 _cmsuser_civix_civicrm_managed(&$entities) {
$mgdFiles = _cmsuser_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 _cmsuser_civix_civicrm_caseTypes(&$caseTypes) {
if (!is_dir(__DIR__ . '/xml/case')) {
return;
}
foreach (_cmsuser_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 _cmsuser_civix_civicrm_angularModules(&$angularModules) {
if (!is_dir(__DIR__ . '/ang')) {
return;
}
$files = _cmsuser_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 _cmsuser_civix_civicrm_themes(&$themes) {
$files = _cmsuser_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 _cmsuser_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 _cmsuser_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $parentID) {
}
}
/**
* (Delegated) Implements hook_civicrm_alterSettingsFolders().
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
*/
function _cmsuser_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().
*
......
......@@ -14,15 +14,6 @@ function cmsuser_civicrm_config(&$config) {
_cmsuser_civix_civicrm_config($config);
}
/**
* Implements hook_civicrm_xmlMenu().
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_xmlMenu
*/
function cmsuser_civicrm_xmlMenu(&$files) {
_cmsuser_civix_civicrm_xmlMenu($files);
}
/**
* Implements hook_civicrm_install().
*
......@@ -86,7 +77,6 @@ function cmsuser_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_managed
*/
function cmsuser_civicrm_managed(&$entities) {
_cmsuser_civix_civicrm_managed($entities);
$actions = civicrm_api3('CiviRuleAction', 'get', ['name' => ['IN' => ['cmsuser_create']]]);
if (empty($actions['values'])) {
......@@ -109,15 +99,6 @@ function cmsuser_civicrm_managed(&$entities) {
}
}
/**
* Implements hook_civicrm_alterSettingsFolders().
*
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
*/
function cmsuser_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) {
_cmsuser_civix_civicrm_alterSettingsFolders($metaDataFolders);
}
/**
* Implements hook_civicrm_entityTypes().
*
......
......@@ -13,16 +13,20 @@
<url desc="Support">https://mjw.pt/support/cmsuser</url>
<url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
</urls>
<releaseDate>2021-12-22</releaseDate>
<version>1.0</version>
<releaseDate>2022-05-31</releaseDate>
<version>1.1</version>
<develStage>stable</develStage>
<compatibility>
<ver>5.36</ver>
<ver>5.49</ver>
</compatibility>
<classloader>
<psr4 prefix="Civi\" path="Civi"/>
</classloader>
<civix>
<namespace>CRM/Cmsuser</namespace>
<format>22.05.0</format>
</civix>
<mixins>
<mixin>menu-xml@1.0.0</mixin>
</mixins>
</extension>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment