diff --git a/Events.php b/Events.php
index 10aefd07..ca5bb563 100644
--- a/Events.php
+++ b/Events.php
@@ -23,208 +23,248 @@ class Events
public static function onAdminMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- if (!Yii::$app->user->isAdmin()) {
- return;
- }
+ if (!Yii::$app->user->isAdmin()) {
+ return;
+ }
- $event->sender->addItem([
- 'label' => Yii::t('CustomPagesModule.base', 'Custom Pages'),
- 'url' => Url::toPageOverview(),
- 'group' => 'manage',
- 'icon' => '',
- 'isActive' => (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && (Yii::$app->controller->id === 'page' || Yii::$app->controller->id === 'config')),
- 'sortOrder' => 300,
- ]);
+ $event->sender->addItem([
+ 'label' => Yii::t('CustomPagesModule.base', 'Custom Pages'),
+ 'url' => Url::toPageOverview(),
+ 'group' => 'manage',
+ 'icon' => '',
+ 'isActive' => (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && (Yii::$app->controller->id === 'page' || Yii::$app->controller->id === 'config')),
+ 'sortOrder' => 300,
+ ]);
+ } catch (\Throwable $e) {
+ Yii::error($e);
+ }
}
public static function onSpaceMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
-
- /* @var $space \humhub\modules\space\models\Space */
- $space = $event->sender->space;
- if ($space->isModuleEnabled('custom_pages')) {
- $pages = ContainerPage::find()->contentContainer($space)->andWhere(['target' => ContainerPage::NAV_CLASS_SPACE_NAV])->all();
- foreach ($pages as $page) {
- if (!$page->canView()) {
- continue;
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+
+ /* @var $space \humhub\modules\space\models\Space */
+ $space = $event->sender->space;
+ if ($space->isModuleEnabled('custom_pages')) {
+ $pages = ContainerPage::find()->contentContainer($space)->andWhere(['target' => ContainerPage::NAV_CLASS_SPACE_NAV])->all();
+ foreach ($pages as $page) {
+ if (!$page->canView()) {
+ continue;
+ }
+
+ $event->sender->addItem([
+ 'label' => Html::encode($page->title),
+ 'group' => 'modules',
+ 'htmlOptions' => [
+ 'target' => ($page->in_new_window) ? '_blank' : '',
+ 'data-pjax-prevent' => 1
+ ],
+ 'url' => $page->getUrl(),
+ 'icon' => '',
+ 'isActive' => (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && Yii::$app->controller->id === 'container'
+ && Yii::$app->controller->action->id === 'view' && Yii::$app->request->get('id') == $page->id),
+ 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
+ ]);
}
-
- $event->sender->addItem([
- 'label' => Html::encode($page->title),
- 'group' => 'modules',
- 'htmlOptions' => [
- 'target' => ($page->in_new_window) ? '_blank' : '',
- 'data-pjax-prevent' => 1
- ],
- 'url' => $page->getUrl(),
- 'icon' => '',
- 'isActive' => (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && Yii::$app->controller->id === 'container'
- && Yii::$app->controller->action->id === 'view' && Yii::$app->request->get('id') == $page->id),
- 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
- ]);
}
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onSpaceHeaderMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- if (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && Yii::$app->controller->id === 'container'
- && Yii::$app->controller->action->id === 'view'
- && PagePermission::canEdit()) {
+ if (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && Yii::$app->controller->id === 'container'
+ && Yii::$app->controller->action->id === 'view'
+ && PagePermission::canEdit()) {
- $page = ContainerPage::find()->contentContainer(Yii::$app->controller->contentContainer)->where(['custom_pages_container_page.id' => Yii::$app->request->get('id')])->one();
+ $page = ContainerPage::find()->contentContainer(Yii::$app->controller->contentContainer)->where(['custom_pages_container_page.id' => Yii::$app->request->get('id')])->one();
- if (TemplateType::isType($page->type)) {
- $event->sender->addWidget(modules\template\widgets\TemplatePageEditButton::class, [], ['sortOrder' => 500]);
- } else {
- $event->sender->addWidget(modules\template\widgets\PageConfigurationButton::class, [], ['sortOrder' => 500]);
+ if (TemplateType::isType($page->type)) {
+ $event->sender->addWidget(modules\template\widgets\TemplatePageEditButton::class, [], ['sortOrder' => 500]);
+ } else {
+ $event->sender->addWidget(modules\template\widgets\PageConfigurationButton::class, [], ['sortOrder' => 500]);
+ }
}
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onSpaceAdminMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- /* @var $space \humhub\modules\space\models\Space */
- $space = $event->sender->space;
- if ($space->isModuleEnabled('custom_pages') && $space->isAdmin() && $space->isMember()) {
- $event->sender->addItem([
- 'label' => Yii::t('CustomPagesModule.base', 'Custom Pages'),
- 'group' => 'admin',
- 'url' => Url::toPageOverview($space),
- 'icon' => '',
- 'isActive' => (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && Yii::$app->controller->id === 'container'
- && Yii::$app->controller->action->id !== 'view'),
- ]);
+ /* @var $space \humhub\modules\space\models\Space */
+ $space = $event->sender->space;
+ if ($space->isModuleEnabled('custom_pages') && $space->isAdmin() && $space->isMember()) {
+ $event->sender->addItem([
+ 'label' => Yii::t('CustomPagesModule.base', 'Custom Pages'),
+ 'group' => 'admin',
+ 'url' => Url::toPageOverview($space),
+ 'icon' => '',
+ 'isActive' => (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && Yii::$app->controller->id === 'container'
+ && Yii::$app->controller->action->id !== 'view'),
+ ]);
+ }
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onDirectoryMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- foreach (Page::findAll(['target' => Page::NAV_CLASS_DIRECTORY]) as $page) {
- // Admin only
- if ($page->admin_only == 1 && !Yii::$app->user->isAdmin()) {
- continue;
- }
+ foreach (Page::findAll(['target' => Page::NAV_CLASS_DIRECTORY]) as $page) {
+ // Admin only
+ if ($page->admin_only == 1 && !Yii::$app->user->isAdmin()) {
+ continue;
+ }
- $event->sender->addItem([
- 'label' => Html::encode($page->title),
- 'url' => Url::to(['/custom_pages/view', 'id' => $page->id]),
- 'group' => 'directory',
- 'htmlOptions' => ['target' => ($page->in_new_window) ? '_blank' : ''],
- 'icon' => '',
- 'isActive' => (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && Yii::$app->controller->id === 'view' && Yii::$app->request->get('id') == $page->id),
- 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
- ]);
+ $event->sender->addItem([
+ 'label' => Html::encode($page->title),
+ 'url' => Url::to(['/custom_pages/view', 'id' => $page->id]),
+ 'group' => 'directory',
+ 'htmlOptions' => ['target' => ($page->in_new_window) ? '_blank' : ''],
+ 'icon' => '',
+ 'isActive' => (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && Yii::$app->controller->id === 'view' && Yii::$app->request->get('id') == $page->id),
+ 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
+ ]);
+ }
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onTopMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- foreach (Page::findAll(['target' => Page::NAV_CLASS_TOPNAV]) as $page) {
+ foreach (Page::findAll(['target' => Page::NAV_CLASS_TOPNAV]) as $page) {
- if (!$page->canView()) {
- continue;
- }
+ if (!$page->canView()) {
+ continue;
+ }
- $event->sender->addItem([
- 'label' => Html::encode($page->title),
- 'url' => Url::to(['/custom_pages/view', 'id' => $page->id]),
- 'htmlOptions' => ['target' => ($page->in_new_window) ? '_blank' : ''],
- 'icon' => '',
- 'isActive' => (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && Yii::$app->controller->id === 'view' && Yii::$app->request->get('id') == $page->id),
- 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
- ]);
+ $event->sender->addItem([
+ 'label' => Html::encode($page->title),
+ 'url' => Url::to(['/custom_pages/view', 'id' => $page->id]),
+ 'htmlOptions' => ['target' => ($page->in_new_window) ? '_blank' : ''],
+ 'icon' => '',
+ 'isActive' => (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && Yii::$app->controller->id === 'view' && Yii::$app->request->get('id') == $page->id),
+ 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
+ ]);
+ }
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onAccountMenuInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- foreach (Page::findAll(['target' => Page::NAV_CLASS_ACCOUNTNAV]) as $page) {
- if (!$page->canView()) {
- continue;
- }
+ foreach (Page::findAll(['target' => Page::NAV_CLASS_ACCOUNTNAV]) as $page) {
+ if (!$page->canView()) {
+ continue;
+ }
- $event->sender->addItem([
- 'label' => Html::encode($page->title),
- 'url' => Url::to(['/custom_pages/view', 'id' => $page->id]),
- 'htmlOptions' => ['target' => ($page->in_new_window) ? '_blank' : ''],
- 'icon' => '',
- 'isActive' => (Yii::$app->controller->module
- && Yii::$app->controller->module->id === 'custom_pages'
- && Yii::$app->controller->id === 'view' && Yii::$app->request->get('id') == $page->id),
- 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
- ]);
+ $event->sender->addItem([
+ 'label' => Html::encode($page->title),
+ 'url' => Url::to(['/custom_pages/view', 'id' => $page->id]),
+ 'htmlOptions' => ['target' => ($page->in_new_window) ? '_blank' : ''],
+ 'icon' => '',
+ 'isActive' => (Yii::$app->controller->module
+ && Yii::$app->controller->module->id === 'custom_pages'
+ && Yii::$app->controller->id === 'view' && Yii::$app->request->get('id') == $page->id),
+ 'sortOrder' => ($page->sort_order != '') ? $page->sort_order : 1000,
+ ]);
+ }
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onDashboardSidebarInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- $snippets = Snippet::findAll(['target' => Snippet::SIDEBAR_DASHBOARD]);
- $canEdit = PagePermission::canEdit();
- foreach ($snippets as $snippet) {
- if (!$snippet->canView()) {
- continue;
+ $snippets = Snippet::findAll(['target' => Snippet::SIDEBAR_DASHBOARD]);
+ $canEdit = PagePermission::canEdit();
+ foreach ($snippets as $snippet) {
+ if (!$snippet->canView()) {
+ continue;
+ }
+ $event->sender->addWidget(SnippetWidget::class, ['model' => $snippet, 'canEdit' => $canEdit], ['sortOrder' => $snippet->sort_order]);
}
- $event->sender->addWidget(SnippetWidget::class, ['model' => $snippet, 'canEdit' => $canEdit], ['sortOrder' => $snippet->sort_order]);
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onDirectorySidebarInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
- $snippets = Snippet::findAll(['target' => Snippet::SIDEBAR_DIRECTORY]);
- $canEdit = PagePermission::canEdit();
- foreach ($snippets as $snippet) {
- if (!$snippet->canView()) {
- continue;
+ $snippets = Snippet::findAll(['target' => Snippet::SIDEBAR_DIRECTORY]);
+ $canEdit = PagePermission::canEdit();
+ foreach ($snippets as $snippet) {
+ if (!$snippet->canView()) {
+ continue;
+ }
+ $event->sender->addWidget(SnippetWidget::class, ['model' => $snippet, 'canEdit' => $canEdit], ['sortOrder' => $snippet->sort_order]);
}
- $event->sender->addWidget(SnippetWidget::class, ['model' => $snippet, 'canEdit' => $canEdit], ['sortOrder' => $snippet->sort_order]);
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
public static function onSpaceSidebarInit($event)
{
- Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
-
- $space = $event->sender->space;
- $canEdit = PagePermission::canEdit();
- if ($space->isModuleEnabled('custom_pages')) {
- $snippets = ContainerSnippet::find()->contentContainer($space)->all();
- foreach ($snippets as $snippet) {
- if (!$snippet->canView()) {
- continue;
+ try {
+ Yii::$app->moduleManager->getModule('custom_pages')->checkOldGlobalContent();
+
+ $space = $event->sender->space;
+ $canEdit = PagePermission::canEdit();
+ if ($space->isModuleEnabled('custom_pages')) {
+ $snippets = ContainerSnippet::find()->contentContainer($space)->all();
+ foreach ($snippets as $snippet) {
+ if (!$snippet->canView()) {
+ continue;
+ }
+
+ $event->sender->addWidget(SnippetWidget::class, ['model' => $snippet, 'canEdit' => $canEdit], ['sortOrder' => $snippet->sort_order]);
}
-
- $event->sender->addWidget(SnippetWidget::class, ['model' => $snippet, 'canEdit' => $canEdit], ['sortOrder' => $snippet->sort_order]);
}
+ } catch (\Throwable $e) {
+ Yii::error($e);
}
}
diff --git a/assets/Assets.php b/assets/Assets.php
index ec9f92d9..09741784 100644
--- a/assets/Assets.php
+++ b/assets/Assets.php
@@ -6,6 +6,15 @@
class Assets extends AssetBundle
{
+ /**
+ * v1.5 compatibility defer script loading
+ *
+ * Migrate to HumHub AssetBundle once minVersion is >=1.5
+ *
+ * @var bool
+ */
+ public $defer = true;
+
public $sourcePath = '@custom_pages/resources';
public $publishOptions = [
diff --git a/assets/CkEditorAssetBundle.php b/assets/CkEditorAssetBundle.php
index cb06bbc5..de5d7a9a 100644
--- a/assets/CkEditorAssetBundle.php
+++ b/assets/CkEditorAssetBundle.php
@@ -6,6 +6,15 @@
class CkEditorAssetBundle extends AssetBundle
{
+ /**
+ * v1.5 compatibility defer script loading
+ *
+ * Migrate to HumHub AssetBundle once minVersion is >=1.5
+ *
+ * @var bool
+ */
+ public $defer = true;
+
public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
public $sourcePath = '@custom_pages/resources/ckeditor';
diff --git a/assets/CodeMirrorAssetBundle.php b/assets/CodeMirrorAssetBundle.php
index 9d32d4e6..0ff94daf 100644
--- a/assets/CodeMirrorAssetBundle.php
+++ b/assets/CodeMirrorAssetBundle.php
@@ -5,10 +5,20 @@
use yii\web\AssetBundle;
+use yii\web\View;
class CodeMirrorAssetBundle extends AssetBundle
{
- public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
+ /**
+ * v1.5 compatibility defer script loading
+ *
+ * Migrate to HumHub AssetBundle once minVersion is >=1.5
+ *
+ * @var bool
+ */
+ public $defer = true;
+
+ public $jsOptions = ['position' => View::POS_HEAD];
public $sourcePath = '@custom_pages/resources/codemirror';
public $js = [
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index d38c492d..c0f14358 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -1,6 +1,11 @@
Changelog
=========
+1.0.7 (April, 06, 2020)
+--------------------
+- Chg: Added 1.5 defer compatibility
+- Fix: Fixed "unreachable code after return statement" in humhub.custom_pages.template.TemplateElement.js
+
1.0.6 (February 19, 2020)
---------------------
- Fix #113: Double collapse menu item in snippet context menu
diff --git a/module.json b/module.json
index c793fe8b..829989bf 100644
--- a/module.json
+++ b/module.json
@@ -3,7 +3,7 @@
"name": "Custom Pages",
"description": "Allows admins to create custom pages (html or markdown) or external links to various navigations (e.g. top navigation, account menu).",
"keywords": ["pages", "custom", "iframe", "markdown", "link", "navigation", "spaces"],
- "version": "1.0.6",
+ "version": "1.0.7",
"humhub": {
"minVersion": "1.3.10"
}
diff --git a/modules/template/assets/TemplateCoreAsset.php b/modules/template/assets/TemplateCoreAsset.php
index d4a03557..450ca233 100644
--- a/modules/template/assets/TemplateCoreAsset.php
+++ b/modules/template/assets/TemplateCoreAsset.php
@@ -6,6 +6,10 @@
class TemplateCoreAsset extends AssetBundle
{
+ public $publishOptions = [
+ 'forceCopy' => true
+ ];
+
public $sourcePath = '@custom_pages/modules/template/resources';
public $jsOptions = ['position' => \yii\web\View::POS_END];
diff --git a/modules/template/resources/js/humhub.custom_pages.template.TemplateElement.js b/modules/template/resources/js/humhub.custom_pages.template.TemplateElement.js
index 365537d6..81b05e76 100644
--- a/modules/template/resources/js/humhub.custom_pages.template.TemplateElement.js
+++ b/modules/template/resources/js/humhub.custom_pages.template.TemplateElement.js
@@ -296,12 +296,6 @@ humhub.module('custom_pages.template.TemplateElement', function (module, require
TemplateElement.prototype.getUniqueId = function ($element) {
return this.$.attr('id');
- if (!$element) {
- return;
- }
-
- return $element.data('template-empty') ? Date.now().toString() :
- $element.data('template-content') + ':' + $element.data('template-content-id');
};
TemplateElement.prototype.loader = function (show) {