/opt/cpanel/ea-wappspector/src/Matchers
NameSizeModeActions
CakePHP.php10450644editdlrm
CodeIgniter.php11630644editdlrm
Composer.php11150644editdlrm
DotNet.php10790644editdlrm
Drupal.php16650644editdlrm
Duda.php17610644editdlrm
EmDash.php8130644editdlrm
Joomla.php38790644editdlrm
Laravel.php19460644editdlrm
MatcherInterface.php3430644editdlrm
NodeJs.php8660644editdlrm
Php.php10960644editdlrm
Prestashop.php14430644editdlrm
Python.php7420644editdlrm
Ruby.php7130644editdlrm
Sitejet.php9760644editdlrm
Siteplus.php18340644editdlrm
Sitepro.php9800644editdlrm
Symfony.php9050644editdlrm
Typo3.php18100644editdlrm
UpLevelMatcherTrait.php9820644editdlrm
WebPresenceBuilder.php20160644editdlrm
Wordpress.php15120644editdlrm
Yii.php16800644editdlrm
Edit: /opt/cpanel/ea-wappspector/src/Matchers/WebPresenceBuilder.php (2016B)
fileExists($indexHtmlPath)) { return new EmptyMatchResult(); } $fileContent = $fs->read($indexHtmlPath); $inspectorHelper = new InspectorHelper(); return $inspectorHelper->fileContentMatchesString( $fileContent, '//' ) || $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
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; } }