CmsDuplicate
https://github.com/magesuite/cms-duplicate
This module provides an easy way of duplicating CMS pages in the admin panel.
Installation
This module is part of MageSuite metapackage
Installation if metapackage is not used:
composer require "creativestyle/magesuite-cms-duplicate" ^2.0.0
Admin settings
In order to duplicate CMS page select Duplicate
from the Action dropdown:
Fill fields in the modal and Save the page.
Settings:
Name | Note |
---|---|
New page identifier | Please provide new identifier (url key) for duplicated page. New identifier must be unique and cannot be used already by any other page. |
New page title | Please provide new title for duplicated page. Title does not have to be unique. |
Backend
Backend documentation need to be added
Clicking Duplicate from dropdown
Controller for displaying form to duplicate existing page
vendor/creativestyle/magesuite-cms-duplicate/Controller/Adminhtml/Duplicate/Form.php:38
class Form extends \Magento\Backend\App\Action
{
public function execute()
{
.....
$block = $layout->createBlock(\MageSuite\CmsDuplicate\Block\Adminhtml\Duplicate\Form::class)
->toHtml();
.....
$resultRaw->setContents($block);
return $resultRaw;
}
}
Template for form for new (duplicated) page
vendor/creativestyle/magesuite-cms-duplicate/view/adminhtml/templates/form.phtml
<?php
/** @var \MageSuite\CmsDuplicate\Block\Adminhtml\Duplicate\Form $block */
$page = $block->getPage();
?>
<div id="duplicate-page-modal">
<form method="post"
id="duplicate-cms-page-form"
action="<?php echo $block->getUrl('cmspageduplicate/duplicate/duplicate') ?>">
...........
<?php $blocks = $block->getBlocksToDuplicate(); ?>
Getting page which we want to duplicate by page_id
vendor/creativestyle/magesuite-cms-duplicate/Block/Adminhtml/Duplicate/Form.php:47
Clicking duplicate
vendor/creativestyle/magesuite-cms-duplicate/Controller/Adminhtml/Duplicate/Duplicate.php:43
Duplicate page - duplicate blocks and assign to components
vendor/creativestyle/magesuite-cms-duplicate/Service/PageDuplicator.php:39
vendor/creativestyle/magesuite-content-constructor-admin/Repository/Xml/ComponentConfigurationToXmlMapper.php:47
Frontend
No frontend to document.