Fix bug in style changes for the Use cases on the live site.
[yaffs-website] / vendor / mkalkbrenner / php-htmldiff-advanced / src / HtmlDiffAdvanced.php
1 <?php
2
3 class HtmlDiffAdvanced extends \Caxy\HtmlDiff\HtmlDiff implements HtmlDiffAdvancedInterface {
4
5   protected $buildRequired = TRUE;
6
7   public function __construct($oldText = '', $newText = '', $encoding = 'UTF-8', $specialCaseTags = null, $groupDiffs = null) {
8     parent::__construct($oldText, $newText, $encoding, $specialCaseTags, $groupDiffs);
9
10     if ($oldText) {
11       $this->setOldHtml($oldText);
12     }
13
14     if ($newText) {
15       $this->setNewHtml($newText);
16     }
17   }
18
19   public function setEncoding($encoding) {
20     $this->encoding = $encoding;
21     $this->buildRequired = TRUE;
22   }
23
24   public function setOldHtml($oldText) {
25     $this->oldText = $oldText;
26     $this->buildRequired = TRUE;
27   }
28
29   public function setNewHtml($newText) {
30     $this->newText = $newText;
31     $this->buildRequired = TRUE;
32   }
33
34   public function setInsertSpaceInReplace($boolean) {
35     parent::setInsertSpaceInReplace($boolean);
36     $this->buildRequired = TRUE;
37   }
38
39   public function setSpecialCaseChars(array $chars) {
40     parent::setSpecialCaseChars($chars);
41     $this->buildRequired = TRUE;
42   }
43
44   public function addSpecialCaseChar($char) {
45     parent::addSpecialCaseChar($char);
46     $this->buildRequired = TRUE;
47   }
48
49   public function removeSpecialCaseChar($char) {
50     parent::removeSpecialCaseChar($char);
51     $this->buildRequired = TRUE;
52   }
53
54   public function setSpecialCaseTags(array $tags = array()) {
55     parent::setSpecialCaseTags($tags);
56     $this->buildRequired = TRUE;
57   }
58
59   public function addSpecialCaseTag($tag) {
60     parent::addSpecialCaseTag($tag);
61     $this->buildRequired = TRUE;
62   }
63
64   public function removeSpecialCaseTag($tag) {
65     parent::removeSpecialCaseTag($tag);
66     $this->buildRequired = TRUE;
67   }
68
69   public function setGroupDiffs($boolean) {
70     parent::setGroupDiffs($this->groupDiffs);
71     $this->buildRequired = TRUE;
72   }
73
74   public function getDifference() {
75     if ($this->buildRequired) {
76       $this->build();
77     }
78     return parent::getDifference();
79   }
80
81   public function build() {
82     if ($this->buildRequired) {
83       $this->buildRequired = FALSE;
84       $this->content = '';
85       return parent::build();
86     }
87   }
88
89   public function setPurifierSerializerCachePath($path = NULL) {
90     $HTMLPurifierConfig = \HTMLPurifier_Config::createDefault();
91     $HTMLPurifierConfig->set('Cache.SerializerPath', $path);
92     $this->setHTMLPurifierConfig($HTMLPurifierConfig);
93   }
94
95 }