243 lines
6.5 KiB
PHP
Executable File
243 lines
6.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Mageplaza
|
|
*
|
|
* NOTICE OF LICENSE
|
|
*
|
|
* This source file is subject to the Mageplaza.com license that is
|
|
* available through the world-wide-web at this URL:
|
|
* https://www.mageplaza.com/LICENSE.txt
|
|
*
|
|
* DISCLAIMER
|
|
*
|
|
* Do not edit or add to this file if you wish to upgrade this extension to newer
|
|
* version in the future.
|
|
*
|
|
* @category Mageplaza
|
|
* @package Mageplaza_Blog
|
|
* @copyright Copyright (c) Mageplaza (https://www.mageplaza.com/)
|
|
* @license https://www.mageplaza.com/LICENSE.txt
|
|
*/
|
|
|
|
namespace Mageplaza\Blog\Block\Adminhtml\Post;
|
|
|
|
use Magento\Backend\Block\Widget\Context;
|
|
use Magento\Backend\Block\Widget\Form\Container;
|
|
use Magento\Framework\Registry;
|
|
use Mageplaza\Blog\Model\Post;
|
|
|
|
/**
|
|
* Class Edit
|
|
* @package Mageplaza\Blog\Block\Adminhtml\Post
|
|
*/
|
|
class Edit extends Container
|
|
{
|
|
/**
|
|
* Core registry
|
|
*
|
|
* @var Registry
|
|
*/
|
|
public $coreRegistry;
|
|
|
|
/**
|
|
* constructor
|
|
*
|
|
* @param Registry $coreRegistry
|
|
* @param Context $context
|
|
* @param array $data
|
|
*/
|
|
public function __construct(
|
|
Registry $coreRegistry,
|
|
Context $context,
|
|
array $data = []
|
|
) {
|
|
$this->coreRegistry = $coreRegistry;
|
|
|
|
parent::__construct($context, $data);
|
|
}
|
|
|
|
/**
|
|
* Initialize Post edit block
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function _construct()
|
|
{
|
|
$this->_blockGroup = 'Mageplaza_Blog';
|
|
$this->_controller = 'adminhtml_post';
|
|
|
|
parent::_construct();
|
|
|
|
if (!$this->getRequest()->getParam('history')) {
|
|
$post = $this->coreRegistry->registry('mageplaza_blog_post');
|
|
|
|
$this->buttonList->remove('save');
|
|
$this->buttonList->add(
|
|
'save',
|
|
[
|
|
'label' => __('Save'),
|
|
'class' => 'save primary',
|
|
'data_attribute' => [
|
|
'mage-init' => [
|
|
'button' => [
|
|
'event' => 'save',
|
|
'target' => '#edit_form'
|
|
]
|
|
]
|
|
],
|
|
'class_name' => \Magento\Ui\Component\Control\Container::SPLIT_BUTTON,
|
|
'options' => $this->getOptions($post),
|
|
],
|
|
-100
|
|
);
|
|
|
|
$this->buttonList->add(
|
|
'save-and-continue',
|
|
[
|
|
'label' => __('Save and Continue Edit'),
|
|
'class' => 'save',
|
|
'data_attribute' => [
|
|
'mage-init' => [
|
|
'button' => [
|
|
'event' => 'saveAndContinueEdit',
|
|
'target' => '#edit_form'
|
|
]
|
|
]
|
|
]
|
|
],
|
|
-100
|
|
);
|
|
if ($post->getId() && !$this->_request->getParam('duplicate')) {
|
|
$this->buttonList->add(
|
|
'duplicate',
|
|
[
|
|
'label' => __('Duplicate'),
|
|
'class' => 'duplicate',
|
|
'onclick' => sprintf("location.href = '%s';", $this->getDuplicateUrl()),
|
|
],
|
|
-101
|
|
);
|
|
} else {
|
|
$this->buttonList->remove('delete');
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Retrieve options
|
|
*
|
|
* @param Post $post
|
|
*
|
|
* @return array
|
|
*/
|
|
protected function getOptions($post)
|
|
{
|
|
if ($post->getId() && !$this->_request->getParam('duplicate')) {
|
|
$options[] = [
|
|
'id_hard' => 'save_and_draft',
|
|
'label' => __('Save as Draft'),
|
|
'data_attribute' => [
|
|
'mage-init' => [
|
|
'button' => [
|
|
'event' => 'save',
|
|
'target' => '#edit_form',
|
|
'eventData' => [
|
|
'action' => ['args' => ['action' => 'draft']]
|
|
],
|
|
]
|
|
]
|
|
]
|
|
];
|
|
}
|
|
$options[] = [
|
|
'id_hard' => 'save_and_history',
|
|
'label' => __(' Save & add History'),
|
|
'data_attribute' => [
|
|
'mage-init' => [
|
|
'button' => [
|
|
'event' => 'save',
|
|
'target' => '#edit_form',
|
|
'eventData' => [
|
|
'action' => ['args' => ['action' => 'add']]
|
|
],
|
|
]
|
|
]
|
|
]
|
|
];
|
|
|
|
return $options;
|
|
}
|
|
|
|
/**
|
|
* Retrieve text for header element depending on loaded Post
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getHeaderText()
|
|
{
|
|
/** @var Post $post */
|
|
$post = $this->coreRegistry->registry('mageplaza_blog_post');
|
|
|
|
if ($this->getRequest()->getParam('history')) {
|
|
return __("Edit History Post '%1'", $this->escapeHtml($post->getName()));
|
|
}
|
|
|
|
if ($post->getId() && $post->getDuplicate()) {
|
|
return __("Edit Post '%1'", $this->escapeHtml($post->getName()));
|
|
}
|
|
|
|
return __('New Post');
|
|
}
|
|
|
|
/**
|
|
* Get form action URL
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getFormActionUrl()
|
|
{
|
|
/** @var Post $post */
|
|
$post = $this->coreRegistry->registry('mageplaza_blog_post');
|
|
if ($post->getId()) {
|
|
if ($post->getDuplicate()) {
|
|
$ar = [];
|
|
} else {
|
|
$ar = ['id' => $post->getId()];
|
|
}
|
|
if ($this->getRequest()->getParam('history')) {
|
|
$ar['post_id'] = $this->getRequest()->getParam('post_id');
|
|
}
|
|
|
|
return $this->getUrl('*/*/save', $ar);
|
|
}
|
|
|
|
return parent::getFormActionUrl();
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
protected function getDuplicateUrl()
|
|
{
|
|
$post = $this->coreRegistry->registry('mageplaza_blog_post');
|
|
|
|
return $this->getUrl('*/*/duplicate', ['id' => $post->getId(), 'duplicate' => true]);
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
protected function getSaveDraftUrl()
|
|
{
|
|
return $this->getUrl('*/*/save', ['action' => 'draft']);
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
protected function getSaveAddHistoryUrl()
|
|
{
|
|
return $this->getUrl('*/*/save', ['action' => 'add']);
|
|
}
|
|
}
|