_backendConfig = $backendConfig; parent::__construct($context, $authSession, $jsHelper, $data); } /** * Add custom css class * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string */ protected function _getFrontendClass($element) { $enabledString = $this->_isPaymentEnabled($element) ? ' enabled' : ''; return parent::_getFrontendClass($element) . ' with-button' . $enabledString; } /** * Check whether current payment method is enabled * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return bool */ protected function _isPaymentEnabled($element) { $groupConfig = $element->getGroup(); $activityPaths = isset($groupConfig['activity_path']) ? $groupConfig['activity_path'] : []; if (!is_array($activityPaths)) { $activityPaths = [$activityPaths]; } $isPaymentEnabled = false; foreach ($activityPaths as $activityPath) { $isPaymentEnabled = $isPaymentEnabled || (bool)(string)$this->_backendConfig->getConfigDataValue($activityPath); } return $isPaymentEnabled; } /** * Return header title part of html for payment solution * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string * @SuppressWarnings(PHPMD.NPathComplexity) */ protected function _getHeaderTitleHtml($element) { $html = '
'; $groupConfig = $element->getGroup(); $disabledAttributeString = $this->_isPaymentEnabled($element) ? '' : ' disabled="disabled"'; $disabledClassString = $this->_isPaymentEnabled($element) ? '' : ' disabled'; $htmlId = $element->getHtmlId(); $html .= '
'; if (!empty($groupConfig['more_url'])) { $html .= '' . __( 'Learn More' ) . ''; } if (!empty($groupConfig['demo_url'])) { $html .= '' . __( 'View Demo' ) . ''; } $html .= '
'; $html .= '
' . $element->getLegend() . ''; if ($element->getComment()) { $html .= '' . $element->getComment() . ''; } $html .= '
'; $html .= '
'; return $html; } /** * Return header comment part of html for payment solution * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function _getHeaderCommentHtml($element) { return ''; } /** * Get collapsed state on-load * * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return false * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function _isCollapseState($element) { return false; } /** * @param \Magento\Framework\Data\Form\Element\AbstractElement $element * @return string * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ protected function _getExtraJs($element) { $script = "require(['jquery', 'prototype'], function(jQuery){ window.paypalToggleSolution = function (id, url) { var doScroll = false; Fieldset.toggleCollapse(id, url); if ($(this).hasClassName(\"open\")) { $$(\".with-button button.button\").each(function(anotherButton) { if (anotherButton != this && $(anotherButton).hasClassName(\"open\")) { $(anotherButton).click(); doScroll = true; } }.bind(this)); } if (doScroll) { var pos = Element.cumulativeOffset($(this)); window.scrollTo(pos[0], pos[1] - 45); } } });"; return $this->_jsHelper->getScript($script); } }