zero1 / magento2-release-library
1.1.0
2023-12-18 12:59 UTC
Requires
- magento/framework: ^100.1|^101.0|^102.0|^103.0
- zero1/base: ^1.0
Suggests
- mdoq/module-connector: Improves Dev Ops for Magento 2
README
一个模块,用于在升级/安装脚本中提供易于使用的函数
使用方法
要使用您设置或安装脚本中的函数,请将 util 类添加到您的对象构造函数中
/** @var \Zero1\ReleaseLibrary\Utility **/ protected $setupUtility; public function __construct( \Zero1\ReleaseLibrary\Utility $setupUtility ){ $this->setupUtility = $setupUtility; }
然后您将能够调用 $this->setupUtility
。
函数
创建/更新自定义变量
$this->setupUtility->createCustomVariable( 'Variable Code, 'Variable Name', 'HTML Value', 'Plain Value' );
您还可以提供一个第 5 个参数
true
- 如果存在具有相同代码的变量,则更新变量false
- 如果存在具有相同代码的变量,则抛出 EntityAlreadyExistsException
移动类别
$this->setupUtility->moveCategory( CATEGORY_ID_TO_MOVE MOVE_TO_THIS_CATEGORY_ID, );
如果您希望移动的类别放置在特定类别之后,也可以提供一个第 3 个参数 "after"。
创建 CMS 块
这允许您在不将 html 添加到您的设置脚本的情况下创建多个 CMS 块。
配置
在能够执行此操作之前,您必须创建另一个模块或使用当前的发布模块。此模块必须包含目录 block_source
示例
在这个例子中,我有一个名为 "My_ReleaseModule" 的模块,它包含
My_ReleaseModule/
block_source/
1.0.0/
a-new-custom-block.html
1.0.1/
custom-block.html
promo-block.html
// configure setup utility to use my module $this->setupUtility->setSourceModule('My_ReleaseModule); // create all the blocks in `1.0.1` $this->setupUtility->createBlocksFromDir( $this->setupUtility->getBlockSourceDirectory().'/1.0.1/' );
这将导致创建两个 CMS 块 1。
- 名称:自定义块
- ID:custom-block
- 名称:促销块
- ID:promo-block
创建 CMS 页面
这允许您在不将 html 添加到您的设置脚本的情况下创建多个 CMS 页面。
配置
在能够执行此操作之前,您必须创建另一个模块或使用当前的发布模块。此模块必须包含目录 page_source
示例
在这个例子中,我有一个名为 "My_ReleaseModule" 的模块,它包含
My_ReleaseModule/
page_source/
1.0.0/
a-new-cms-page.html
1.0.1/
custom-page.html
contact-us.html
// configure setup utility to use my module $this->setupUtility->setSourceModule('My_ReleaseModule); // create all the pages in `1.0.1` $this->setupUtility->createPagesFromDir( $this->setupUtility->getPageSourceDirectory().'/1.0.1/' );
这将导致创建两个 CMS 页面 1。
- 名称:自定义页面
- ID:custom-page
- 名称:联系我们
- ID:contact-us
设置配置
更新/设置配置值
示例 1 - 设置单个值
$this->setupUtility->setConfig( [['design/head/demonotice', 1]], 'default', 0 );
示例 2 - 设置默认作用域的多个值
$this->setupUtility->setConfig([ ['design/head/demonotice', 1], ['web/cookie/cookie_httponly', 1] ]);
示例 3 - 设置多个作用域的多个值
$this->setupUtility->setConfig([ ['design/head/demonotice', 1], // will be set at default ['web/cookie/cookie_httponly', 1] // will be set at default ['web/cookie/cookie_path', '/', 'stores', 1], // will be set for store 1 ['web/cookie/cookie_path', '/', 'stores', 2], // will be set for store 2 ]);
更新电子邮件模板
使用 ID 为 $templateId
的模板更新电子邮件模板,内容来自文件 $newTemplateContentPath
。
$this->setupUtility->updateEmailTemplate($templateId, function($template){
/** @var \Magento\Email\Model\BackendTemplate $template */
$template->setTemplateText(
file_get_contents($newTemplateContentPath)
);
return $template;
});
您可以更新任何数量的内容。