/**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     if (DomHelper::isElement($currentNode, 'div')) {
         if (\DomHelper::hasDescendantHeader($currentNode)) {
             return true;
         }
         // this div contains <tabview> tabs
         if (strpos($currentNode->getAttribute('id'), 'flytab') !== false) {
             return true;
         }
         // this div contains <tabber> tabs
         if ($currentNode->getAttribute('class') == 'tabber') {
             return true;
         }
         // each tab of <tabber> tabs - wrapped into div with class 'tabbertab'
         if ($currentNode->getAttribute('class') == 'tabbertab') {
             return true;
         }
         // if any descendant divs contains tabs
         $xpath = new DOMXPath($currentNode->ownerDocument);
         $tabDivs = $xpath->query(".//div[contains(@id, 'flytab')]", $currentNode);
         if ($tabDivs->length > 0) {
             return true;
         }
         return false;
     }
     return false;
 }
 private function findSecondLevelNode(DOMElement $currentNode)
 {
     for ($i = 0; $i < $currentNode->childNodes->length; $i++) {
         if (DomHelper::isElement($currentNode->childNodes->item($i), 'div') && $currentNode->childNodes->item($i)->hasAttribute('style') && $currentNode->childNodes->item($i)->getAttribute('style') === 'padding: 1em 1.5em; min-height:500px;') {
             return $currentNode->childNodes->item($i);
         }
     }
     return null;
 }
Esempio n. 3
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     foreach ($this->tags as $tagName) {
         if (DomHelper::isElement($currentNode, $tagName)) {
             return true;
         }
     }
     return false;
 }
Esempio n. 4
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $list = new JsonFormatListNode(DomHelper::isElement($currentNode, 'ol'));
     $this->getJsonFormatBuilder()->pushNode($list);
     for ($i = 0; $i < $currentNode->childNodes->length; $i++) {
         $childNode = $currentNode->childNodes->item($i);
         if (DomHelper::isElement($childNode, 'li')) {
             $this->visitListItem($childNode);
         }
     }
     $this->getJsonFormatBuilder()->popNode($list);
 }
Esempio n. 5
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'div') && DomHelper::hasClass($currentNode, 'WikiaPhotoGalleryPreview');
 }
Esempio n. 6
0
 protected function hasSingleDiv(DOMNode $currentNode)
 {
     return DomHelper::isElement($currentNode, 'td') && $currentNode->childNodes->length == 1 && DomHelper::isElement($currentNode->childNodes->item(0), 'div');
 }
Esempio n. 7
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'a') && DomHelper::hasClass($currentNode, 'image') && DomHelper::isElement($currentNode->childNodes->item(0), 'img');
 }
Esempio n. 8
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'p');
 }
Esempio n. 9
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'table') && DomHelper::hasClass($currentNode, 'toc');
 }
Esempio n. 10
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode) && in_array($currentNode->tagName, ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'h7']);
 }
Esempio n. 11
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'figure') && DomHelper::isElement($currentNode->childNodes->item(0), 'a') && DomHelper::isElement($currentNode->childNodes->item(0)->childNodes->item(0), 'img') && DomHelper::isElement($currentNode->childNodes->item(2), 'figcaption');
 }
Esempio n. 12
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'dl') && $currentNode->childNodes->length == 2 && DomHelper::isElement($currentNode->childNodes->item(0), 'dd') && DomHelper::isElement($currentNode->childNodes->item(0)->childNodes->item(0), 'span') && DomHelper::isElement($currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(1), 'i') && DomHelper::isElement($currentNode->childNodes->item(1), 'dd');
 }
Esempio n. 13
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'a') && DomHelper::hasClass($currentNode, 'video') && DomHelper::hasChildTag($currentNode, 'img');
 }
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'table') && $currentNode->childNodes->length > 0 && DomHelper::isElement($currentNode->childNodes->item(0), 'tr') && $currentNode->childNodes->item(0)->childNodes->length > 0 && DomHelper::isElement($currentNode->childNodes->item(0)->childNodes->item(0), 'td') && $currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->length > 0 && DomHelper::isElement($currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(0), 'div') && $currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(0)->attributes->getNamedItem("style") && strpos($currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(0)->attributes->getNamedItem("style")->nodeValue, "overflow:auto;") !== false && $currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(0)->childNodes->length > 0;
 }