melisplatform / melis-cms
Melis 平台 CMS 模块
v5.2.2
2024-08-29 07:53 UTC
Requires
- php: ^8.1|^8.3
- melisplatform/melis-core: ^5.2
- melisplatform/melis-engine: ^5.2
- melisplatform/melis-front: ^5.2
- dev-master
- v5.2.2
- v5.2.1
- v5.2.0
- v5.1.1
- v5.1.0
- v5.0.1
- v5.0.0
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.11
- v4.0.10
- v4.0.9
- v4.0.8
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.2.14
- v3.2.13
- v3.2.12
- v3.2.11
- v3.2.10
- v3.2.9
- v3.2.8
- v3.2.7
- v3.2.6
- v3.2.5
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.13
- v3.1.12
- v3.1.11
- v3.1.10
- v3.1.9
- v3.1.8
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.5.0
- v2.4.0
- v2.3.1
- v2.3.0
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1
- dev-update/jquery3.7.1
- dev-evo/cms-docu
- dev-develop
- dev-evo/platform-perf
- dev-update/tinymce6.7.0
- dev-update/php83
- dev-common/fixes
- dev-fix/vulnerability
- dev-update/php-8-upgrade
- dev-zend-old-version
- dev-update/duplicate-page-trigger-event
- dev-update/plugin-modal-form-switch-btn
- dev-update/public-module-case
- dev-feature/grouping-tabs-v2
- dev-update/404-multilingual-site
- dev-fix/page-edition-properties
- dev-feature/delete-plugin-confirm
- dev-fix/dnd-plugin-smashed
- dev-feature/page-treeview-checkboxes
- dev-fix/mini-template-plugins-thumbnails
- dev-fix/perf
- dev-fix/page-edition
- dev-feature/tinymce-custom
- dev-fix/mini-template-plugins
- dev-feature/melis-cms-page-loading-layer
- dev-laminas/mini-template-manager
- dev-fix/edition-languages
- dev-php7.4
- dev-update/fancytree-v2.37.0
- dev-migrate/laminas
- dev-feature/page-treeview-default-lock
- dev-update/mini-template-manager
- dev-feature/dragndrop_resize_margins
- dev-cache-sys
This package is auto-updated.
Last update: 2024-09-18 13:05:44 UTC
README
MelisCms 为 Melis 平台提供完整的 CMS,包括模板系统、插件拖放、SEO 以及许多管理工具。
入门指南
以下说明将帮助您将项目复制到您的机器上并运行。
此 Melis 平台模块是为与 MelisCore 一起使用而制作的。
先决条件
您需要安装 melisplatform/melis-core 和 melisplatform/melis-engine 以使此模块运行。
当使用 composer 时,这将自动完成。
安装
运行 composer 命令
composer require melisplatform/melis-cms
提供工具和元素
- 页面编辑系统(编辑、属性、SEO、语言)
- 站点工具
- 模板工具
- 平台 ID 工具
- 站点重定向工具
- 样式工具
- 页面语言工具
- 仪表板指标
- 站点树视图
- 站点树探索器 & 搜索
- Melis 模板插件组件(后台办公)
运行代码
MelisCms 服务
MelisCms 提供许多服务,可在其他模块中使用
- MelisCmsPageService
保存页面及其不同部分(SEO、样式、语言等)的服务。
文件:/melis-cms/src/Service/MelisCmsPageService.php
// Get the service
$pageSrv = $this->getServiceManager()->get('MelisCmsPageService');
// Save a page and get its id back
$pageId = $pageSrv->savePage($pageTree, $pagePublished, $pageSaved, $pageSeo, $pageLang, $pageStyle);
- MelisCmsSiteService
保存站点、获取站点页面列表等。
文件:/melis-cms/src/Service/MelisCmsSiteService.php
// Get the service
$cmsSiteSrv = $this->getServiceManager()->get('MelisCmsSiteService');
// Get list of pages of this site
$sitePages = $cmsSiteSrv->getSitePages($siteId);
- MelisCmsPageGetterService
获取页面的完整 HTML。此服务与缓存系统一起工作。页面必须至少生成一次,以便生成缓存并可供服务使用。
缓存在此文件夹中生成:/cache
文件:/melis-cms/src/Service/MelisCmsPageGetterService.php
// Get the service
$pageGetterService = $this->getServiceManager()->get('MelisCmsPageGetterService');
// Get list of pages of this site
$pageContent = $cmsSiteSrv->getPageContent($pageId);
- MelisCmsRightsService
获取用户定义的权限并调整对界面不同元素的访问。
文件:/melis-cms/src/Service/MelisCmsRightsService.php
// Get the service
$melisCmsRights = $this->getServiceManager()->get('MelisCmsRights');
// Get the user's rights
$xmlRights = $melisCoreAuth->getAuthRights();
// find if a user has access to it
// Example: find if a user has access to a specific page id
$isAccessible = $melisCmsRights->isAccessible($xmlRights, MelisCmsRightsService::MELISCMS_PREFIX_PAGES, $idPage);
MelisCms 表单
表单工厂
所有 Melis CMS 表单都是使用表单工厂构建的。
所有表单配置都可在文件中找到:/melis-cms/config/app.forms.php
任何模块都可以通过在 Module.php 配置创建部分中构建键来覆盖或添加此表单中的项目,并通过将数组合并到其中来实现。
return array(
'plugins' => array(
// MelisCms array
'meliscms' => array(
// Form key
'forms' => array(
// MelisCms Page Properties form
'meliscms_page_properties' => array(
'attributes' => array(
'name' => 'pageproperties',
'id' => 'idformpageproperties',
'method' => 'POST',
'action' => '/melis/MelisCms/Page/saveProperties',
),
'hydrator' => 'Laminas\Hydrator\ArraySerializable',
'elements' => array(
array(
'spec' => array(
...
),
),
),
'input_filter' => array(
'page_id' => array(
...
),
),
),
),
),
),
),
表单元素
MelisCms 提供许多表单元素用于表单
- MelisCmsTemplateSelect:选择模板的下拉列表
- MelisCmsPlatformSelect:选择平台的下拉列表
- MelisCmsStyleSelect:选择样式的下拉列表
- MelisSwitch:为 Melis 平台设计的开/关按钮
- MelisCmsLanguageSelect:选择语言的下拉列表
- MelisCmsPageLanguagesSelect:选择页面语言的下拉列表
- MelisMultiValInput:多输入选择
- MelisCmsPlatformIDsSelect:选择平台 ID 的下拉列表
- MelisCmsPluginSiteSelect:选择站点的下拉列表
- MelisCmsPluginSiteModuleSelect:选择模块的下拉列表
通过自定义代码监听服务并更新行为
大多数服务都会触发事件,以便可以修改行为。
public function attach(EventManagerInterface $events)
{
$sharedEvents = $events->getSharedManager();
$callBackHandler = $sharedEvents->attach(
'MelisCms',
array(
'meliscms_page_save_start',
'meliscms_page_publish_start',
),
function($e){
$sm = $e->getTarget()->getEvent()->getApplication()->getServiceManager();
// Custom Code here
},
100);
$this->listeners[] = $callBackHandler;
}
TinyMCE 配置
MelisCms 在“MelisTag”可编辑区域编辑模板时提供 3 个默认配置
- html:编辑器按钮的全套按钮
- textarea:限制到文本和链接的按钮
- media:限制到插入媒体对象(如图片和视频)的按钮
创建其他配置是可能的。将配置添加到文件中,然后在模块的module.config.php文件中声明该文件
// Config Files
'tinyMCE' => array(
'html' => 'MelisCms/public/js/tinyMCE/html.php',
'textarea' => 'MelisCms/public/js/tinyMCE/textarea.php',
'media' => 'MelisCms/public/js/tinyMCE/media.php',
),
- 将mini模板放置在相应文件夹中,它们会自动转换为插件。
MelisCms提供的JavaScript辅助工具
- melisLinkTree:显示一个包含树视图的模态窗口,用于搜索并选择页面
melisLinkTree.createInputTreeModal('#sourcePageId');
作者
- Melis技术 - www.melistechnology.com
有关参与此项目的贡献者列表,请参阅。
许可证
此项目受OSL-3.0许可证的许可 - 有关详细信息,请参阅LICENSE.md文件