hasData(self::PARAM_BLOCK_GROUP)) { $this->_blockGroup = $this->_getData(self::PARAM_BLOCK_GROUP); } if ($this->hasData(self::PARAM_BUTTON_NEW)) { $this->_addButtonLabel = $this->_getData(self::PARAM_BUTTON_NEW); } else { // legacy logic to support all descendants if ($this->_addButtonLabel === null) { $this->_addButtonLabel = __('Add New'); } $this->_addNewButton(); } if ($this->hasData(self::PARAM_BUTTON_BACK)) { $this->_backButtonLabel = $this->_getData(self::PARAM_BUTTON_BACK); } else { // legacy logic if ($this->_backButtonLabel === null) { $this->_backButtonLabel = __('Back'); } } } /** * {@inheritdoc} */ protected function _prepareLayout() { // check if grid was created through the layout if (false === $this->getChildBlock('grid')) { $this->setChild( 'grid', $this->getLayout()->createBlock( str_replace( '_', '\\', $this->_blockGroup ) . '\\Block\\' . str_replace( ' ', '\\', ucwords(str_replace('_', ' ', $this->_controller)) ) . '\\Grid', $this->_controller . '.grid' )->setSaveParametersInSession( true ) ); } return parent::_prepareLayout(); } /** * @return string */ public function getCreateUrl() { return $this->getUrl('*/*/new'); } /** * @return string */ public function getGridHtml() { return $this->getChildHtml('grid'); } /** * @return string */ public function getAddButtonLabel() { return $this->_addButtonLabel; } /** * @return string */ public function getBackButtonLabel() { return $this->_backButtonLabel; } /** * Create "New" button * * @return void */ protected function _addNewButton() { $this->addButton( 'add', [ 'label' => $this->getAddButtonLabel(), 'onclick' => 'setLocation(\'' . $this->getCreateUrl() . '\')', 'class' => 'add primary' ] ); } /** * @return void */ protected function _addBackButton() { $this->addButton( 'back', [ 'label' => $this->getBackButtonLabel(), 'onclick' => 'setLocation(\'' . $this->getBackUrl() . '\')', 'class' => 'back' ] ); } /** * {@inheritdoc} */ public function getHeaderCssClass() { return 'icon-head ' . parent::getHeaderCssClass(); } /** * @return string */ public function getHeaderWidth() { return 'width:50%;'; } }