mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
162 lines
4.8 KiB
PHP
162 lines
4.8 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Review\Block\Adminhtml\Add;
|
|
|
|
use Magento\Framework\App\ObjectManager;
|
|
use Magento\Framework\View\Helper\SecureHtmlRenderer;
|
|
|
|
/**
|
|
* Adminhtml add product review form
|
|
*/
|
|
class Form extends \Magento\Backend\Block\Widget\Form\Generic
|
|
{
|
|
/**
|
|
* @var \Magento\Review\Helper\Data
|
|
*/
|
|
protected $_reviewData = null;
|
|
|
|
/**
|
|
* Core system store model
|
|
*
|
|
* @var \Magento\Store\Model\System\Store
|
|
*/
|
|
protected $_systemStore;
|
|
|
|
/**
|
|
* @var SecureHtmlRenderer
|
|
*/
|
|
private $secureRenderer;
|
|
|
|
/**
|
|
* @param \Magento\Backend\Block\Template\Context $context
|
|
* @param \Magento\Framework\Registry $registry
|
|
* @param \Magento\Framework\Data\FormFactory $formFactory
|
|
* @param \Magento\Store\Model\System\Store $systemStore
|
|
* @param \Magento\Review\Helper\Data $reviewData
|
|
* @param array $data
|
|
* @param SecureHtmlRenderer|null $htmlRenderer
|
|
*/
|
|
public function __construct(
|
|
\Magento\Backend\Block\Template\Context $context,
|
|
\Magento\Framework\Registry $registry,
|
|
\Magento\Framework\Data\FormFactory $formFactory,
|
|
\Magento\Store\Model\System\Store $systemStore,
|
|
\Magento\Review\Helper\Data $reviewData,
|
|
array $data = [],
|
|
?SecureHtmlRenderer $htmlRenderer = null
|
|
) {
|
|
$this->_reviewData = $reviewData;
|
|
$this->_systemStore = $systemStore;
|
|
$this->secureRenderer = $htmlRenderer ?: ObjectManager::getInstance()->get(SecureHtmlRenderer::class);
|
|
parent::__construct($context, $registry, $formFactory, $data);
|
|
}
|
|
|
|
/**
|
|
* Prepare add review form
|
|
*
|
|
* @return void
|
|
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
|
|
*/
|
|
protected function _prepareForm()
|
|
{
|
|
/** @var \Magento\Framework\Data\Form $form */
|
|
$form = $this->_formFactory->create();
|
|
|
|
$fieldset = $form->addFieldset('add_review_form', ['legend' => __('Review Details')]);
|
|
$beforeHtml = $this->secureRenderer->renderStyleAsTag('display: none;', '#edit_form');
|
|
$fieldset->setBeforeElementHtml($beforeHtml);
|
|
|
|
$fieldset->addField('product_name', 'note', ['label' => __('Product'), 'text' => 'product_name']);
|
|
|
|
$fieldset->addField(
|
|
'detailed-rating',
|
|
'note',
|
|
[
|
|
'label' => __('Product Rating'),
|
|
'required' => true,
|
|
'text' => '<div id="rating_detail">' . $this->getLayout()->createBlock(
|
|
\Magento\Review\Block\Adminhtml\Rating\Detailed::class
|
|
)->toHtml() . '</div>'
|
|
]
|
|
);
|
|
|
|
$fieldset->addField(
|
|
'status_id',
|
|
'select',
|
|
[
|
|
'label' => __('Status'),
|
|
'required' => true,
|
|
'name' => 'status_id',
|
|
'values' => $this->_reviewData->getReviewStatusesOptionArray()
|
|
]
|
|
);
|
|
|
|
/**
|
|
* Check is single store mode
|
|
*/
|
|
if (!$this->_storeManager->isSingleStoreMode()) {
|
|
$field = $fieldset->addField(
|
|
'select_stores',
|
|
'multiselect',
|
|
[
|
|
'label' => __('Visibility'),
|
|
'required' => true,
|
|
'name' => 'select_stores[]',
|
|
'values' => $this->_systemStore->getStoreValuesForForm()
|
|
]
|
|
);
|
|
$renderer = $this->getLayout()->createBlock(
|
|
\Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element::class
|
|
);
|
|
$field->setRenderer($renderer);
|
|
}
|
|
|
|
$fieldset->addField(
|
|
'nickname',
|
|
'text',
|
|
[
|
|
'name' => 'nickname',
|
|
'title' => __('Nickname'),
|
|
'label' => __('Nickname'),
|
|
'maxlength' => '50',
|
|
'required' => true
|
|
]
|
|
);
|
|
|
|
$fieldset->addField(
|
|
'title',
|
|
'text',
|
|
[
|
|
'name' => 'title',
|
|
'title' => __('Summary of Review'),
|
|
'label' => __('Summary of Review'),
|
|
'maxlength' => '255',
|
|
'required' => true
|
|
]
|
|
);
|
|
|
|
$fieldset->addField(
|
|
'detail',
|
|
'textarea',
|
|
[
|
|
'name' => 'detail',
|
|
'title' => __('Review'),
|
|
'label' => __('Review'),
|
|
'required' => true
|
|
]
|
|
);
|
|
|
|
$fieldset->addField('product_id', 'hidden', ['name' => 'product_id']);
|
|
|
|
$form->setMethod('post');
|
|
$form->setUseContainer(true);
|
|
$form->setId('edit_form');
|
|
$form->setAction($this->getUrl('review/product/post'));
|
|
|
|
$this->setForm($form);
|
|
}
|
|
}
|