Spamworldpro Mini Shell
Spamworldpro


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/amasty/base/Plugin/Config/Block/System/Config/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/amasty/base/Plugin/Config/Block/System/Config/BuildAmastyTabsPlugin.php
<?php

declare(strict_types=1);

/**
 * @author Amasty Team
 * @copyright Copyright (c) Amasty (https://www.amasty.com)
 * @package Magento 2 Base Package
 */

namespace Amasty\Base\Plugin\Config\Block\System\Config;

use Magento\Config\Block\System\Config\Tabs;
use Psr\Log\LoggerInterface;

class BuildAmastyTabsPlugin
{
    public const AMASTY_TABS_CLASS = 'amasty-tab ambase-tab-container';

    /**
     * @var \DOMDocumentFactory
     */
    private $domFactory;

    /**
     * @var LoggerInterface
     */
    private $logger;

    public function __construct(
        \DOMDocumentFactory $domFactory,
        LoggerInterface $logger
    ) {
        $this->domFactory = $domFactory;
        $this->logger = $logger;
    }

    public function afterToHtml(Tabs $subject, string $result): string
    {
        $domDocument = $this->domFactory->create();

        try {
            $domDocument->loadXML($result);
            if ($node = $this->getAmastyNode($domDocument)) {
                $tabsHtml = $subject->getLayout()->createBlock(
                    \Amasty\Base\Block\Adminhtml\System\Config\Tabs::class,
                    'amasty_config_tabs'
                )->toHtml();

                $fragment = $domDocument->createDocumentFragment();
                $fragment->appendXML($tabsHtml);
                $node->appendChild($fragment);
                $result = $domDocument->saveHTML();
            }
        } catch (\Exception $e) {
            $this->logger->critical($e);
        }

        return $result;
    }

    private function getAmastyNode(\DOMDocument $domDocument): ?\DOMElement
    {
        foreach ($domDocument->getElementsByTagName('div') as $node) {
            if (stripos($node->getAttribute('class'), self::AMASTY_TABS_CLASS) === false) {
                continue;
            }
            foreach ($node->getElementsByTagName('ul') as $ulNode) {
                $node->removeChild($ulNode);
            }

            return $node;
        }

        return null;
    }
}

Spamworldpro Mini