![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-paypal/Block/Adminhtml/System/Config/Fieldset/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Paypal\Block\Adminhtml\System\Config\Fieldset; use Magento\Framework\App\ObjectManager; use Magento\Framework\View\Helper\SecureHtmlRenderer; /** * Fieldset renderer for PayPal solution */ class Payment extends \Magento\Config\Block\System\Config\Form\Fieldset { /** * @var \Magento\Config\Model\Config */ protected $_backendConfig; /** * @var SecureHtmlRenderer */ private $secureRenderer; /** * @param \Magento\Backend\Block\Context $context * @param \Magento\Backend\Model\Auth\Session $authSession * @param \Magento\Framework\View\Helper\Js $jsHelper * @param \Magento\Config\Model\Config $backendConfig * @param array $data * @param SecureHtmlRenderer|null $secureRenderer */ public function __construct( \Magento\Backend\Block\Context $context, \Magento\Backend\Model\Auth\Session $authSession, \Magento\Framework\View\Helper\Js $jsHelper, \Magento\Config\Model\Config $backendConfig, array $data = [], ?SecureHtmlRenderer $secureRenderer = null ) { $this->_backendConfig = $backendConfig; $secureRenderer = $secureRenderer ?? ObjectManager::getInstance()->get(SecureHtmlRenderer::class); parent::__construct($context, $authSession, $jsHelper, $data, $secureRenderer); $this->secureRenderer = $secureRenderer; } /** * 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 = '<div class="config-heading" >'; $groupConfig = $element->getGroup(); $disabledAttributeString = $this->_isPaymentEnabled($element) ? '' : ' disabled="disabled"'; $disabledClassString = $this->_isPaymentEnabled($element) ? '' : ' disabled'; $htmlId = $element->getHtmlId(); $html .= '<div class="button-container"><button type="button"' . $disabledAttributeString . ' class="button action-configure' . (empty($groupConfig['paypal_ec_separate']) ? '' : ' paypal-ec-separate') . $disabledClassString . '" id="' . $htmlId . '-head" >' . '<span class="state-closed">' . __( 'Configure' ) . '</span><span class="state-opened">' . __( 'Close' ) . '</span></button>'; $html .= /* @noEscape */ $this->secureRenderer->renderEventListenerAsTag( 'onclick', "paypalToggleSolution.call(this, '" . $htmlId . "', '" . $this->getUrl('adminhtml/*/state') . "');event.preventDefault();", 'button#' . $htmlId . '-head' ); if (!empty($groupConfig['more_url'])) { $html .= '<a class="link-more" href="' . $groupConfig['more_url'] . '" target="_blank">' . __( 'Learn More' ) . '</a>'; } if (!empty($groupConfig['demo_url'])) { $html .= '<a class="link-demo" href="' . $groupConfig['demo_url'] . '" target="_blank">' . __( 'View Demo' ) . '</a>'; } $html .= '</div>'; $html .= '<div class="heading"><strong>' . $element->getLegend() . '</strong>'; if ($element->getComment()) { $html .= '<span class="heading-intro">' . $element->getComment() . '</span>'; } $html .= '<div class="config-alt"></div>'; $html .= '</div></div>'; 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; } /** * Return extra Js. * * @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); } }