Server IP : 172.67.158.161 / Your IP : 52.14.234.213 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Util/ |
Upload File : |
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Util; if (!defined('ABSPATH')) exit; use MailPoetVendor\pQuery\DomNode; class DOM { /** * Splits a DOM tree around the cut element, bringing it up to bound * ancestor and splitting left and right siblings into subtrees along * the way, retaining order and nesting level. */ public static function splitOn(DomNode $bound, DomNode $cutElement) { $ignoreTextAndCommentNodes = false; $grandparent = $cutElement->parent; for ($parent = $cutElement->parent; $bound != $parent; $parent = $grandparent) { // Clone parent node without children, but with attributes $parent->after($parent->toString()); $right = $parent->getNextSibling($ignoreTextAndCommentNodes); $right->clear(); while ($sibling = $cutElement->getNextSibling($ignoreTextAndCommentNodes)) { $sibling->move($right); } // Reattach cut_element and right siblings to grandparent /* @phpstan-ignore-next-line Because there is a wrong annotation in the library tburry/pquery */ $grandparent = $parent->parent; $indexAfterParent = $parent->index() + 1; $right->move($grandparent, $indexAfterParent); $indexAfterParent = $parent->index() + 1; $cutElement->move($grandparent, $indexAfterParent); } } public static function findTopAncestor(DomNode $item) { while ($item->parent->parent !== null) { $item = $item->parent; } return $item; } }