Пример #1
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $this->getJsonFormatBuilder()->pushNode(new JsonFormatRootNode());
     $this->iterate($currentNode->childNodes);
 }
Пример #2
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $href = $currentNode->getAttribute('href');
     $this->getJsonFormatBuilder()->add(new JsonFormatLinkNode($currentNode->textContent, $href));
 }
Пример #3
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     /** @noinspection PhpUndefinedMethodInspection - we check that in can visit method */
     $src = $currentNode->childNodes->item(0)->getAttribute('src');
     $this->getJsonFormatBuilder()->add(new JsonFormatImageNode($src));
 }
 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;
 }
Пример #5
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $author = $currentNode->childNodes->item(1)->textContent;
     $text = $currentNode->childNodes->item(0)->childNodes->item(0)->childNodes->item(1)->textContent;
     $quoteNode = new JsonFormatQuoteNode($author, $text);
     $this->getJsonFormatBuilder()->add($quoteNode);
 }
Пример #6
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $figcaption = $currentNode->childNodes->item(2);
     $img = $currentNode->childNodes->item(0)->childNodes->item(1)->childNodes->item(0);
     /** @var DOMElement $img */
     $src = $img->getAttribute('src');
     $caption = DomHelper::getTextValue($figcaption);
     $imageFigure = new JsonFormatImageFigureNode($src, $caption);
     $this->getJsonFormatBuilder()->add($imageFigure);
 }
Пример #7
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     if ($this->verifyFirstChildHasClass($currentNode, "mw-headline")) {
         $text = DomHelper::getTextValue($currentNode->childNodes->item(0), ['#text', 'a', 'b', 'i', 'u', 'h1', 'h2', 'h3', 'h4', 'p', 'span'], ['editsection']);
         $section = new JsonFormatSectionNode(intval($currentNode->tagName[1]), $text);
         $this->getJsonFormatBuilder()->pushSection($section);
     } else {
         $text = $currentNode->textContent;
         $this->getJsonFormatBuilder()->appendText($text);
     }
 }
Пример #8
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);
 }
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     if (strpos($currentNode->getAttribute('id'), 'flytab') !== false) {
         // current div contains <tabview> tabs (ajax tabs)
         // each tab treated as section
         $this->parseTabview($currentNode);
     } else {
         if ($currentNode->getAttribute('class') == 'tabber') {
             // current div contains <tabber> tabs (embedded tabs)
             // each tab treated as section
             $this->parseTabber($currentNode);
         } else {
             // this is not div with tabs
             // so, we will just visit child nodes
             $this->iterate($currentNode->childNodes);
         }
     }
 }
Пример #10
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'div') && DomHelper::hasClass($currentNode, 'WikiaPhotoGalleryPreview');
 }
Пример #11
0
 protected function hasSingleDiv(DOMNode $currentNode)
 {
     return DomHelper::isElement($currentNode, 'td') && $currentNode->childNodes->length == 1 && DomHelper::isElement($currentNode->childNodes->item(0), 'div');
 }
Пример #12
0
 /**
  * @param DOMNode $currentNode
  * @return bool
  */
 public function canVisit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     return DomHelper::isElement($currentNode, 'table') && DomHelper::hasClass($currentNode, 'toc');
 }
Пример #13
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $this->iterate($currentNode->childNodes);
 }
Пример #14
0
 /**
  * @param DOMNode $currentNode
  */
 public function visit(DOMNode $currentNode)
 {
     /** @var DOMElement $currentNode */
     DomHelper::verifyDomElementArgument($currentNode, "currentNode");
     $this->getJsonFormatBuilder()->appendText("\n");
 }
Пример #15
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;
 }