this is my code:
namespace vendormoduleBlockAdminhtmlProductEditTab; use Exception; use vendormoduleHelperData; use vendormoduleModelResourceModelProductSourceAllProductsFormodule; use MagentoBackendBlockTemplateContext; use MagentoBackendBlockWidgetFormGeneric; use MagentoBackendBlockWidgetTabTabInterface; use MagentoCatalogModelProductFactory; use MagentoFrameworkDataFormFactory; use MagentoFrameworkRegistry; use MagentoFrameworkStdlibDateTimeTimezoneInterface; use MagentoStoreModelSystemStore; /** * Class Main * @package vendormoduleBlockAdminhtmlProductEditTab */ class Main extends Generic implements TabInterface { /** * @var Store */ protected $_systemStore; /** * @var ProductFactory */ protected $_productloader; /** * @var AllProductsFormodule */ protected $_allProducts; /** * @var array configuration of module */ protected $helper; /** * @var TimezoneInterface */ private $timezone; /** * @param Context $context * @param Registry $registry * @param FormFactory $formFactory * @param Store $systemStore * @param ProductFactory $_productloader * @param AllProductsFormodule $allProducts * @param Data $helper * @param TimezoneInterface $timezone * @param array $data */ public function __construct( Context $context, Registry $registry, FormFactory $formFactory, Store $systemStore, ProductFactory $_productloader, AllProductsFormodule $allProducts, Data $helper, TimezoneInterface $timezone, array $data = [] ) { $this->helper = $helper; $this->_allProducts = $allProducts; $this->_systemStore = $systemStore; $this->_productloader = $_productloader; $this->timezone = $timezone; parent::__construct($context, $registry, $formFactory, $data); } /** * @return Main * @throws MagentoFrameworkExceptionLocalizedException * @throws Exception */ protected function _prepareForm() { $model = $this->_coreRegistry->registry('vendormodule_product'); $dateFormat = $this->_localeDate->getDateFormat(IntlDateFormatter::SHORT); $form = $this->_formFactory->create(); //$form->setUseContainer(true); $fieldset = $form->addFieldset( 'options_fieldset', ['legend' => __('Product Information'), 'class' => 'fieldset-wide fieldset-widget-options'] ); if ($model->getId()) { $fieldset->addField('module_entity_id', 'hidden', ['name' => 'module_entity_id']); } if (!$model->getProductId()) { $chooserField = $fieldset->addField( 'options_fieldset_entity_id', 'label', [ 'name' => 'product_id', 'label' => __('Product'), 'required' => true, 'class' => 'widget-option', 'note' => __("Select a product"), ] ); /*Add chooser helper for the field*/ $helperData = [ 'data' => [ 'button' => ['open' => __("Select Product...")] ] ]; // $chooserField->setValue('product/' . $model->getProductId()); // Fixes Require product. $chooserField->setValue($model->getProductId()); $helperBlock = $this->getLayout()->createBlock( 'MagentoCatalogBlockAdminhtmlProductWidgetChooser', '', $helperData ); $helperBlock->setConfig($helperData) ->setFieldsetId($fieldset->getId()) ->prepareElementHtml($chooserField) ->setValue($model->getId()); } else { $fieldset->addField( 'product_id', 'note', [ 'name' => 'product_id', 'label' => __('Product'), 'title' => __('Product'), 'text' => $this->helper->getProductbyId($model->getProductId())->getName() ] ); } $fieldset->addField( 'starting_price', 'text', [ 'name' => 'starting_price', 'label' => __('Starting Price'), 'id' => 'starting_price', 'title' => __('Starting Price'), 'type' => 'price', 'class' => 'required-entry validate-zero-or-greater', 'required' => true ] ); $fieldset->addField( 'max_amount', 'text', [ 'name' => 'max_amount', 'label' => __('Max Price'), 'id' => 'max_price', 'title' => __('Max Price'), 'type' => 'price', 'class' => 'validate-zero-or-greater', 'required' => false, ] ); $reqClass = ""; $requiredOpt = false; if ($this->helper->getmoduleConfiguration()['reserve_enable']) { $reqClass = 'required-entry'; $requiredOpt = true; } $fieldset->addField( 'reserve_price', 'text', [ 'name' => 'reserve_price', 'label' => __('Reserve Price'), 'id' => 'reserve_price', 'title' => __('Reserve Price'), 'values' => [], 'class' => $reqClass . ' validate-zero-or-greater', 'required' => $requiredOpt, ] ); $fieldset->addField( 'start_module_time', 'date', [ 'name' => 'start_module_time', 'label' => __('Start module Time'), 'id' => 'start_module_time', 'title' => __('Start module Time'), 'date_format' => $dateFormat, 'time_format' => 'HH:mm:ss', 'class' => 'required-entry admin__control-text', 'style' => 'width:210px', 'required' => true, ] ); $fieldset->addField( 'stop_module_time', 'date', [ 'name' => 'stop_module_time', 'label' => __('Stop module Time'), 'id' => 'stop_module_time', 'title' => __('Stop module Time'), 'date_format' => $dateFormat, 'time_format' => 'HH:mm:ss', 'class' => 'required-entry admin__control-text', 'style' => 'width:210px', 'required' => true, ] ); $fieldset->addField( 'days', 'text', [ 'name' => 'days', 'label' => __('Number of Days Till Winner Can Buy'), 'id' => 'days', 'title' => __('Number of Days Till Winner Can Buy'), 'class' => 'required-entry integer validate-zero-or-greater', 'required' => true, ] ); $fieldset->addField( 'min_qty', 'text', [ 'name' => 'min_qty', 'label' => __('Minimum Quantity'), 'id' => 'min_qty', 'title' => __('Minimum Quantity'), 'class' => 'required-entry validate-zero-or-greater', 'required' => true, ] ); $fieldset->addField( 'max_qty', 'text', [ 'name' => 'max_qty', 'label' => __('Maximum Quantity'), 'id' => 'max_qty', 'title' => __('Maximum Quantity'), 'class' => 'required-entry validate-zero-or-greater', 'required' => true, ] ); if ($this->helper->getmoduleConfiguration()['increment_auc_enable']) { $fieldset->addField( 'increment_opt', 'select', [ 'name' => 'increment_opt', 'label' => __('Increment Option'), 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'id' => 'increment_opt', 'title' => __('Increment Option'), 'class' => 'required-entry', 'required' => true, ] ); } $fieldset->addField( 'auto_module_opt', 'select', [ 'name' => 'auto_module_opt', 'label' => __('Automatic Option'), 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'id' => 'auto_module_opt', 'title' => __('Automatic Option'), 'class' => 'required-entry', 'required' => true, ] ); $fieldset->addField( 'buy_it_now', 'select', [ 'name' => 'buy_it_now', 'label' => __('Buy It Now'), 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'id' => 'buy_it_now', 'title' => __('Buy It Now'), 'class' => 'required-entry', 'required' => true, ] ); $fieldset->addField( 'featured_module', 'select', [ 'name' => 'featured_module', 'label' => __('Featured Status'), 'options' => ['1' => __('Enabled'), '0' => __('Disabled')], 'id' => 'buy_it_now', 'title' => __('Featured Status'), 'class' => 'required-entry', 'required' => true, ] ); if (!$model->getProductId()) { // add dependence javascript block $dependenceBlock = $this->getLayout()->createBlock('MagentoBackendBlockWidgetFormElementDependence'); $this->setChild('form_after', $dependenceBlock); $dependenceBlock->addFieldMap($chooserField->getId(), 'product_id'); } $data = $model->getData(); if($data) { $data['stop_module_time'] = $this->timezone->date(new DateTime($data['stop_module_time']))->format('m/d/y H:i:s'); $data['start_module_time'] = $this->timezone->date(new DateTime($data['start_module_time']))->format('m/d/y H:i:s'); if (isset($data['entity_id']) && $data['entity_id']) { $data['module_entity_id'] = $data['entity_id']; } $form->setValues($data); } $this->setForm($form); return parent::_prepareForm(); } /** * Prepare label for tab * * @return MagentoFrameworkPhrase */ public function getTabLabel() { return __('Product Data'); } /** * Prepare title for tab * * @return MagentoFrameworkPhrase */ public function getTabTitle() { return __('Product Data'); } /** * {@inheritdoc} */ public function canShowTab() { return true; } /** * {@inheritdoc} */ public function isHidden() { return false; } /** * Check permission for passed action * * @param string $resourceId * @return bool */ protected function _isAllowedAction($resourceId) { return $this->_authorization->isAllowed($resourceId); } /** * convertToTz convert Datetime from one zone to another * @param string $dateTime which we want to convert * @param string $toTz timezone in which we want to convert * @param string $fromTz timezone from which we want to convert * @return string * @throws Exception */ protected function convertToTz($dateTime = "", $toTz = '', $fromTz = '') { // timezone by php friendly values $date = new DateTime($dateTime, new DateTimeZone($fromTz)); $date->setTimezone(new DateTimeZone($toTz)); $dateTime = $date->format('m/d/Y H:i:s'); return $dateTime; } }
Please help me.
and please let me know the solution to it… or
explain to me the working flow “MagentoCatalogBlockAdminhtmlProductWidgetChooser”.