X7ROOT File Manager
Current Path:
/opt/cpanel/ea-wappspector/src/Matchers
opt
/
cpanel
/
ea-wappspector
/
src
/
Matchers
/
??
..
??
CakePHP.php
(1.02 KB)
??
CodeIgniter.php
(1.14 KB)
??
Composer.php
(1.09 KB)
??
DotNet.php
(1.05 KB)
??
Drupal.php
(1.63 KB)
??
Duda.php
(1.72 KB)
??
Joomla.php
(3.79 KB)
??
Laravel.php
(1.9 KB)
??
MatcherInterface.php
(343 B)
??
NodeJs.php
(866 B)
??
Php.php
(1.07 KB)
??
Prestashop.php
(1.41 KB)
??
Python.php
(742 B)
??
Ruby.php
(713 B)
??
Sitejet.php
(976 B)
??
Siteplus.php
(1.79 KB)
??
Sitepro.php
(980 B)
??
Symfony.php
(905 B)
??
Typo3.php
(1.77 KB)
??
UpLevelMatcherTrait.php
(982 B)
??
WebPresenceBuilder.php
(1.97 KB)
??
Wordpress.php
(1.48 KB)
??
Yii.php
(1.64 KB)
Editing: WebPresenceBuilder.php
<?php declare(strict_types=1); namespace Plesk\Wappspector\Matchers; use DOMDocument; use DOMXPath; use League\Flysystem\Filesystem; use Plesk\Wappspector\Helper\InspectorHelper; use Plesk\Wappspector\MatchResult\EmptyMatchResult; use Plesk\Wappspector\MatchResult\MatchResultInterface; use Plesk\Wappspector\MatchResult\WebPresenceBuilder as MatchResult; use Throwable; class WebPresenceBuilder implements MatcherInterface { public function match(Filesystem $fs, string $path): MatchResultInterface { $indexHtmlPath = rtrim($path, '/') . '/index.html'; if (!$fs->fileExists($indexHtmlPath)) { return new EmptyMatchResult(); } $fileContent = $fs->read($indexHtmlPath); $inspectorHelper = new InspectorHelper(); return $inspectorHelper->fileContentMatchesString( $fileContent, '/<meta name="generator" content="Web Presence Builder.*">/' ) || $this->fileContainsDOMStructure($fileContent) ? new MatchResult($path) : new EmptyMatchResult(); } private function fileContainsDOMStructure(string $fileContent): bool { $dom = new DOMDocument(); try { libxml_use_internal_errors(true); $domIsLoaded = $dom->loadHTML($fileContent); libxml_clear_errors(); } catch (Throwable) { return false; } if ($domIsLoaded === false) { return false; } $xpath = new DOMXPath($dom); // Find the <div> with id="page" $pageDiv = $xpath->query("//div[@id='page']"); if ($pageDiv->length === 0) { return false; } $pageNode = $pageDiv->item(0); // Check for direct children with the required IDs $watermarkDiv = $xpath->query("./div[@id='watermark']", $pageNode); $layoutDiv = $xpath->query("./div[@id='layout']", $pageNode); return $watermarkDiv->length > 0 && $layoutDiv->length > 0; } }
Upload File
Create Folder