| Current Path : /home/rtorresani/www/vendor/mageplaza/magento-2-blog-extension/Block/Adminhtml/Post/ |
| Current File : //home/rtorresani/www/vendor/mageplaza/magento-2-blog-extension/Block/Adminhtml/Post/Edit.php |
<?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']);
}
}