rocketweb / module-cms-import-export
CMS 导入导出 CLI 命令扩展,允许在环境之间同步 CMS 块和页面
v1.1.0
2024-01-10 18:04 UTC
Requires
- php: ^7.4|^8.0
- magento/module-cms: 104.0.*
README
一个用于管理 CMS 内容(包括块和页面)在环境之间导入导出的工具。此工具在构建和维护项目中非常有用。
使用此工具的思路
- 允许 FED 团队创建一个 CMS 块/页面,然后在适当的 IDE 中修改 HTML 内容,这些 IDE 允许自动完成和代码样式
- 允许更简单的部署,因为不需要手动复制粘贴 CMS 数据
- 允许客户修改预览内容,并准备好部署
- 通过在生产环境中导出并在预览/dev/local 中导入,轻松同步生产环境到预览/dev/local
安装
使用 composer
composer require rocketweb/module-cms-import-export
然后启用模块
bin/magento module:enable RocketWeb_CmsImportExport
一旦安装了此工具,我们就有了两种工作流程,具体取决于我们想要做什么。
导出
用法
php bin/magento cms:dump:data [options]
Description:
Dumps cms pages/blocks to var/sync_cms_data for further import
Options:
-t, --type=TYPE Which type are we dumping - block/page/all
-i, --identifier[=IDENTIFIER] identifier to process (one or CSV list)
-a, --importAll Flag to import all files
-r, --removeAll Flag to remove all existing data
如您所见,我们需要定义
- 类型 - 可以是 CMS 块、CMS 页面或两者 - 必需
- 标识符 - CMS 块或 CMS 页面的标识符 - 可选
通过这两者的组合,我们可以 导出
- 所有 CMS 内容(使用 --type=all)
- 所有 CMS 页面(使用 --type=page)
- 所有 CMS 块(使用 --type=block)
- 特定的 CMS 页面或页面(使用 --type=page --identifier=about-us.html,no-route)
- 特定的 CMS 块或块(使用 --type=block --identifier=who-are-we,homepage-carousel)
CMS 页面标识符是 Url Key!因此,它可能具有 .html 后缀 - 这取决于在 Magento 管理员 CMS 编辑页面中设置的值。使用 CMS 编辑页面的实际值 - Url Key!如果 CMS 页面 Url Key 有 .html 后缀,则文件 %%IDENTIFIER%% 将是:url_key_html.html(但导出或导入时,您仍然使用 Url Key 的值)
一旦执行命令,您将获得以下文件夹结构
var/sync_cms_data/cms/
- blocks
- %%IDENTIFIER%%.html => contains the block HTML
- %%IDENTIFIER%%.json => contains title, is_active, stores information
- pages
- %%IDENTIFIER%%.html => contains the page HTML
- %%IDENTIFIER%%.json => contains title, is_ative, page_layou, content_heading
您可以直接在编辑器中修改 HTML,这将为您提供更多灵活性。
完成修改后,将文件(html 和 json)提交到仓库。
导入
Usage:
php bin/magento cms:import:data [options]
Description:
Import cms pages/blocks from var/sync_cms_data
Options:
-t, --type=TYPE Which type are we importing - block/page/all
-i, --identifier[=IDENTIFIER] identifier to process (one or CSV list)
此命令通过使用 var/sync_cms_data/cms/
路径中的文件来工作。如您所见,我们需要定义
- 类型 - 可以是 CMS 块、CMS 页面或两者 - 必需
- 标识符 - CMS 块或 CMS 页面的标识符 - 可选
通过这两者的组合,我们可以 导入
- 所有 CMS 内容(使用 --type=all)
- 所有 CMS 页面(使用 --type=page)
- 所有 CMS 块(使用 --type=block)
- 特定的 CMS 页面或页面(使用 --type=page --identifier=about-us.html,homepage-new)
- 特定的 CMS 块或块(使用 --type=block --identifier=who-are-we,homepage-carousel)
一旦执行命令,内容将在 Magento 管理员中创建/更新。通过执行 php bin/magento cache:flush
,您应该能够在前端看到更新的 CMS 内容!