getElementHtml(); } /** * Retrieve HTML markup for given form element * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ public function render(\Magento\Framework\Data\Form\Element\AbstractElement $element) { $isCheckboxRequired = $this->_isInheritCheckboxRequired($element); // Disable element if value is inherited from other scope. Flag has to be set before the value is rendered. if ($element->getInherit() == 1 && $isCheckboxRequired) { $element->setDisabled(true); } $html = ''; $html .= $this->_renderValue($element); if ($isCheckboxRequired) { $html .= $this->_renderInheritCheckbox($element); } $html .= $this->_renderHint($element); return $this->_decorateRowHtml($element, $html); } /** * Render element value * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ protected function _renderValue(\Magento\Framework\Data\Form\Element\AbstractElement $element) { if ($element->getTooltip()) { $html = ''; $html .= $this->_getElementHtml($element); $html .= '
'; $html .= '
' . $element->getTooltip() . '
'; } else { $html = ''; $html .= $this->_getElementHtml($element); } if ($element->getComment()) { $html .= '

' . $element->getComment() . '

'; } $html .= ''; return $html; } /** * Render inheritance checkbox (Use Default or Use Website) * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ protected function _renderInheritCheckbox(\Magento\Framework\Data\Form\Element\AbstractElement $element) { $htmlId = $element->getHtmlId(); $namePrefix = preg_replace('#\[value\](\[\])?$#', '', $element->getName()); $checkedHtml = $element->getInherit() == 1 ? 'checked="checked"' : ''; $disabled = $element->getIsDisableInheritance() == true ? ' disabled="disabled"' : ''; $html = ''; $html .= ' '; $html .= ''; $html .= ''; return $html; } /** * Check if inheritance checkbox has to be rendered * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return bool */ protected function _isInheritCheckboxRequired(\Magento\Framework\Data\Form\Element\AbstractElement $element) { return $element->getCanUseWebsiteValue() || $element->getCanUseDefaultValue() || $element->getCanRestoreToDefault(); } /** * Retrieve label for the inheritance checkbox * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ protected function _getInheritCheckboxLabel(\Magento\Framework\Data\Form\Element\AbstractElement $element) { $checkboxLabel = __('Use system value'); if ($element->getCanUseDefaultValue()) { $checkboxLabel = __('Use Default'); } if ($element->getCanUseWebsiteValue()) { $checkboxLabel = __('Use Website'); } return $checkboxLabel; } /** * Render scope label * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ protected function _renderScopeLabel(\Magento\Framework\Data\Form\Element\AbstractElement $element) { $scopeString = ''; if ($element->getScope() && false == $this->_storeManager->isSingleStoreMode()) { $scopeString .= ' data-config-scope="' . $element->getScopeLabel() . '"'; } return $scopeString; } /** * Render field hint * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ protected function _renderHint(\Magento\Framework\Data\Form\Element\AbstractElement $element) { $html = ''; if ($element->getHint()) { $html .= '
' . $element->getHint() . '
'; } $html .= ''; return $html; } /** * Decorate field row html * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @param string $html * @return string */ protected function _decorateRowHtml(\Magento\Framework\Data\Form\Element\AbstractElement $element, $html) { return '' . $html . ''; } }