Version 1
[yaffs-website] / vendor / mkalkbrenner / php-htmldiff-advanced / src / HtmlDiffAdvanced.php
diff --git a/vendor/mkalkbrenner/php-htmldiff-advanced/src/HtmlDiffAdvanced.php b/vendor/mkalkbrenner/php-htmldiff-advanced/src/HtmlDiffAdvanced.php
new file mode 100644 (file)
index 0000000..174473a
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+
+class HtmlDiffAdvanced extends \Caxy\HtmlDiff\HtmlDiff implements HtmlDiffAdvancedInterface {
+
+  protected $buildRequired = TRUE;
+
+  public function __construct($oldText = '', $newText = '', $encoding = 'UTF-8', $specialCaseTags = null, $groupDiffs = null) {
+    parent::__construct($oldText, $newText, $encoding, $specialCaseTags, $groupDiffs);
+
+    if ($oldText) {
+      $this->setOldHtml($oldText);
+    }
+
+    if ($newText) {
+      $this->setNewHtml($newText);
+    }
+  }
+
+  public function setEncoding($encoding) {
+    $this->encoding = $encoding;
+    $this->buildRequired = TRUE;
+  }
+
+  public function setOldHtml($oldText) {
+    $this->oldText = $oldText;
+    $this->buildRequired = TRUE;
+  }
+
+  public function setNewHtml($newText) {
+    $this->newText = $newText;
+    $this->buildRequired = TRUE;
+  }
+
+  public function setInsertSpaceInReplace($boolean) {
+    parent::setInsertSpaceInReplace($boolean);
+    $this->buildRequired = TRUE;
+  }
+
+  public function setSpecialCaseChars(array $chars) {
+    parent::setSpecialCaseChars($chars);
+    $this->buildRequired = TRUE;
+  }
+
+  public function addSpecialCaseChar($char) {
+    parent::addSpecialCaseChar($char);
+    $this->buildRequired = TRUE;
+  }
+
+  public function removeSpecialCaseChar($char) {
+    parent::removeSpecialCaseChar($char);
+    $this->buildRequired = TRUE;
+  }
+
+  public function setSpecialCaseTags(array $tags = array()) {
+    parent::setSpecialCaseTags($tags);
+    $this->buildRequired = TRUE;
+  }
+
+  public function addSpecialCaseTag($tag) {
+    parent::addSpecialCaseTag($tag);
+    $this->buildRequired = TRUE;
+  }
+
+  public function removeSpecialCaseTag($tag) {
+    parent::removeSpecialCaseTag($tag);
+    $this->buildRequired = TRUE;
+  }
+
+  public function setGroupDiffs($boolean) {
+    parent::setGroupDiffs($this->groupDiffs);
+    $this->buildRequired = TRUE;
+  }
+
+  public function getDifference() {
+    if ($this->buildRequired) {
+      $this->build();
+    }
+    return parent::getDifference();
+  }
+
+  public function build() {
+    if ($this->buildRequired) {
+      $this->buildRequired = FALSE;
+      $this->content = '';
+      return parent::build();
+    }
+  }
+
+  public function setPurifierSerializerCachePath($path = NULL) {
+    $HTMLPurifierConfig = \HTMLPurifier_Config::createDefault();
+    $HTMLPurifierConfig->set('Cache.SerializerPath', $path);
+    $this->setHTMLPurifierConfig($HTMLPurifierConfig);
+  }
+
+}