Skip to content

Commit

Permalink
Merge pull request #9 from ErnestsVerins/Update-cms-page-identifier
Browse files Browse the repository at this point in the history
Update cms page url key for menu item
  • Loading branch information
alfredsgenkins committed Jun 12, 2020
2 parents d15561a + cbe1e1e commit 58a11b9
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 12 deletions.
12 changes: 0 additions & 12 deletions src/Block/Adminhtml/Item/Edit/Form.php
Original file line number Diff line number Diff line change
Expand Up @@ -195,18 +195,6 @@ protected function _prepareForm()
]
);

$fieldset->addField(
'open_type',
'select',
[
'label' => __('Open Type'),
'title' => __('Open Type'),
'name' => 'open_type',
'required' => true,
'options' => $this->_menumanagerHelper->getOpenTypes(),
]
);

$fieldset->addField(
'is_active',
'select',
Expand Down
55 changes: 55 additions & 0 deletions src/Observer/UpdatePageIdentifier.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php

namespace ScandiPWA\MenuOrganizer\Observer;

use Magento\Framework\Event\ObserverInterface;
use ScandiPWA\MenuOrganizer\Model\ResourceModel\Item\CollectionFactory;
use ScandiPWA\MenuOrganizer\Model\ResourceModel\Item;

/**
* Class UpdatePageIdentifier
* @package ScandiPWA\MenuOrganizer\Observer
*/
class UpdatePageIdentifier implements ObserverInterface
{
/**
* @var Item
*/
private $data;

/**
* @var CollectionFactory
*/
private $collection;

/**
* UpdatePageIdentifier constructor.
* @param Item $data
* @param CollectionFactory $collection
*/
public function __construct(
Item $data,
CollectionFactory $collection
)
{
$this->collection = $collection;
$this->data = $data;
}

/**
* @param \Magento\Framework\Event\Observer $observer
* @throws \Magento\Framework\Exception\AlreadyExistsException
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
$identifier = $observer->getData('object')->getData('identifier');
$originData = $observer->getData('object')->getOrigData('identifier');
$items = $this->collection->create()
->addFieldToFilter('cms_page_identifier', ['eq' => $originData])->getItems();

foreach ($items as $item) {
$item->setData('cms_page_identifier', $identifier);
$this->data->save($item);
}
}
}
16 changes: 16 additions & 0 deletions src/etc/adminhtml/events.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!--
/**
* @category ScandiPWA
* @package ScandiPWA\MenuOrganizer
* @author Ernests Verins ernests.verins@scandiweb.com
* @copyright Copyright (c) 2015 Scandiweb, Ltd (http://scandiweb.com)
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
-->

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="cms_page_save_after">
<observer name="cms" instance="ScandiPWA\MenuOrganizer\Observer\UpdatePageIdentifier" />
</event>
</config>

0 comments on commit 58a11b9

Please sign in to comment.