123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Paypal\Block\Adminhtml\System\Config\Fieldset;
- /**
- * Fieldset renderer for PayPal solution
- */
- class Payment extends \Magento\Config\Block\System\Config\Form\Fieldset
- {
- /**
- * @var \Magento\Config\Model\Config
- */
- protected $_backendConfig;
- /**
- * @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
- */
- 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 = []
- ) {
- $this->_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 = '<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" onclick="paypalToggleSolution.call(this, \'' .
- $htmlId .
- "', '" .
- $this->getUrl(
- 'adminhtml/*/state'
- ) . '\'); return false;"><span class="state-closed">' . __(
- 'Configure'
- ) . '</span><span class="state-opened">' . __(
- 'Close'
- ) . '</span></button>';
- 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;
- }
- /**
- * @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);
- }
- }
|