Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update civix templates #520

Merged
merged 3 commits into from
May 22, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions ang/crmMosaico.ang.php
Original file line number Diff line number Diff line change
Expand Up @@ -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' =>
Expand Down
7 changes: 7 additions & 0 deletions info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,16 @@
<comments>To help contribute please contact us on support@vedaconsulting.co.uk or initiate a conversation / issue on github.</comments>
<civix>
<namespace>CRM/Mosaico</namespace>
<format>22.05.2</format>
</civix>
<classloader>
<psr0 prefix="CRM_" path=""/>
<psr4 prefix="Civi\" path="Civi"/>
</classloader>
<mixins>
<mixin>ang-php@1.0.0</mixin>
<mixin>menu-xml@1.0.0</mixin>
<mixin>mgd-php@1.0.0</mixin>
<mixin>setting-php@1.0.0</mixin>
</mixins>
</extension>
159 changes: 2 additions & 157 deletions mosaico.civix.php
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand All @@ -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().
*
Expand Down Expand Up @@ -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.
*
Expand Down Expand Up @@ -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().
*
Expand Down
50 changes: 1 addition & 49 deletions mosaico.php
Original file line number Diff line number Diff line change
Expand Up @@ -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().
*
Expand Down Expand Up @@ -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) {
Expand All @@ -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'),
Expand Down Expand Up @@ -373,6 +324,7 @@ function mosaico_civicrm_mailingTemplateTypes(&$types) {
* Implements hook_civicrm_entityTypes().
*/
function mosaico_civicrm_entityTypes(&$entityTypes) {
// _mosaico_civix_civicrm_entityTypes($entityTypes);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary addition.

$entityTypes[] = [
'name' => 'MosaicoTemplate',
'class' => 'CRM_Mosaico_DAO_MosaicoTemplate',
Expand Down