diff --git a/ang/crmMosaico.ang.php b/ang/crmMosaico.ang.php
index 91331a262..5e0d2fe75 100644
--- a/ang/crmMosaico.ang.php
+++ b/ang/crmMosaico.ang.php
@@ -3,6 +3,11 @@
// in CiviCRM. See also:
// http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_angularModules
+$canRead = Civi::service('civi_api_kernel')->runAuthorize('MosaicoTemplate', 'get', ['version' => 3, 'check_permissions' => 1]);
+if (!$canRead) {
+ return [];
+}
+
$result = [
'requires' => ['crmUi', 'crmUtil', 'ngRoute', 'crmMailing', 'crmDialog'],
'js' =>
diff --git a/info.xml b/info.xml
index c2cf456a7..00caaf857 100644
--- a/info.xml
+++ b/info.xml
@@ -29,9 +29,16 @@
To help contribute please contact us on support@vedaconsulting.co.uk or initiate a conversation / issue on github.
CRM/Mosaico
+ 22.05.2
+
+ ang-php@1.0.0
+ menu-xml@1.0.0
+ mgd-php@1.0.0
+ setting-php@1.0.0
+
diff --git a/mosaico.civix.php b/mosaico.civix.php
index f4b806482..fdc41c284 100644
--- a/mosaico.civix.php
+++ b/mosaico.civix.php
@@ -91,9 +91,9 @@ function _mosaico_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)) {
@@ -107,19 +107,6 @@ function _mosaico_civix_civicrm_config(&$config = NULL) {
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 _mosaico_civix_civicrm_xmlMenu(&$files) {
- foreach (_mosaico_civix_glob(__DIR__ . '/xml/Menu/*.xml') as $file) {
- $files[] = $file;
- }
-}
-
/**
* Implements hook_civicrm_install().
*
@@ -217,136 +204,6 @@ function _mosaico_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 _mosaico_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 _mosaico_civix_civicrm_managed(&$entities) {
- $mgdFiles = _mosaico_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 _mosaico_civix_civicrm_caseTypes(&$caseTypes) {
- if (!is_dir(__DIR__ . '/xml/case')) {
- return;
- }
-
- foreach (_mosaico_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 _mosaico_civix_civicrm_angularModules(&$angularModules) {
- if (!is_dir(__DIR__ . '/ang')) {
- return;
- }
-
- $files = _mosaico_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 _mosaico_civix_civicrm_themes(&$themes) {
- $files = _mosaico_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 _mosaico_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 +286,6 @@ function _mosaico_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $parentID) {
}
}
-/**
- * (Delegated) Implements hook_civicrm_alterSettingsFolders().
- *
- * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
- */
-function _mosaico_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().
*
diff --git a/mosaico.php b/mosaico.php
index 91f2bef0a..56ac0bb09 100644
--- a/mosaico.php
+++ b/mosaico.php
@@ -12,15 +12,6 @@ function mosaico_civicrm_config(&$config) {
_mosaico_civix_civicrm_config($config);
}
-/**
- * Implements hook_civicrm_xmlMenu().
- *
- * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_xmlMenu
- */
-function mosaico_civicrm_xmlMenu(&$files) {
- _mosaico_civix_civicrm_xmlMenu($files);
-}
-
/**
* Implements hook_civicrm_install().
*
@@ -81,37 +72,6 @@ function mosaico_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
return _mosaico_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 mosaico_civicrm_managed(&$entities) {
- _mosaico_civix_civicrm_managed($entities);
-}
-
-/**
- * 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_caseTypes
- */
-function mosaico_civicrm_angularModules(&$angularModules) {
- $canRead = Civi::service('civi_api_kernel')->runAuthorize(
- 'MosaicoTemplate', 'get', ['version' => 3, 'check_permissions' => 1]);
- if (!$canRead) {
- return;
- }
- _mosaico_civix_civicrm_angularModules($angularModules);
-}
-
function mosaico_civicrm_alterAngular(\Civi\Angular\Manager $angular) {
$changeSet = \Civi\Angular\ChangeSet::create('mosaico_subject_list')
->alterHtml('~/crmMailing/BlockMailing.html', function (phpQueryObject $doc) {
@@ -122,15 +82,6 @@ function mosaico_civicrm_alterAngular(\Civi\Angular\Manager $angular) {
$angular->add($changeSet);
}
-/**
- * Implements hook_civicrm_alterSettingsFolders().
- *
- * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_alterSettingsFolders
- */
-function mosaico_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) {
- _mosaico_civix_civicrm_alterSettingsFolders($metaDataFolders);
-}
-
function mosaico_civicrm_navigationMenu(&$params) {
_mosaico_civix_insert_navigation_menu($params, 'Mailings', [
'label' => E::ts('Mosaico Templates'),
@@ -373,6 +324,7 @@ function mosaico_civicrm_mailingTemplateTypes(&$types) {
* Implements hook_civicrm_entityTypes().
*/
function mosaico_civicrm_entityTypes(&$entityTypes) {
+ // _mosaico_civix_civicrm_entityTypes($entityTypes);
$entityTypes[] = [
'name' => 'MosaicoTemplate',
'class' => 'CRM_Mosaico_DAO_MosaicoTemplate',