PluginProbe
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin / 6.5.1.7
wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin v6.5.1.7
6.5.1.7 6.5.1.6 6.5.1.5 6.5.1.4 6.5.1.3 6.5.1.2 6.5.1.1 6.5.0.9 6.5.0.8 6.5.0.7 6.5.0.6 trunk 3.4.2.40 3.4.2.41 3.4.2.42 3.4.2.43 3.4.2.44 3.4.2.45 3.4.2.46 3.4.2.47 3.4.2.48 3.4.2.49 3.4.2.50 6.3.2 6.3.3.1 All 47 releases
wpdatatables / lib / phpoffice / phpspreadsheet / src / PhpSpreadsheet / RichText / RichText.php

RichText.php in wpDataTables – WordPress Data Table, Dynamic Tables & Table Charts Plugin 6.5.1.7, at lib/phpoffice/phpspreadsheet/src/PhpSpreadsheet/RichText/RichText.php

172 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PhpOffice\PhpSpreadsheet\RichText;
4
5 use PhpOffice\PhpSpreadsheet\Cell\Cell;
6 use PhpOffice\PhpSpreadsheet\Cell\DataType;
7 use PhpOffice\PhpSpreadsheet\IComparable;
8
9 class RichText implements IComparable
10 {
11 /**
12 * Rich text elements.
13 *
14 * @var ITextElement[]
15 */
16 private $richTextElements;
17
18 /**
19 * Create a new RichText instance.
20 */
21 public function __construct(?Cell $cell = null)
22 {
23 // Initialise variables
24 $this->richTextElements = [];
25
26 // Rich-Text string attached to cell?
27 if ($cell !== null) {
28 // Add cell text and style
29 if ($cell->getValue() != '') {
30 $objRun = new Run($cell->getValue());
31 $objRun->setFont(clone $cell->getWorksheet()->getStyle($cell->getCoordinate())->getFont());
32 $this->addText($objRun);
33 }
34
35 // Set parent value
36 $cell->setValueExplicit($this, DataType::TYPE_STRING);
37 }
38 }
39
40 /**
41 * Add text.
42 *
43 * @param ITextElement $text Rich text element
44 *
45 * @return $this
46 */
47 public function addText(ITextElement $text)
48 {
49 $this->richTextElements[] = $text;
50
51 return $this;
52 }
53
54 /**
55 * Create text.
56 *
57 * @param string $text Text
58 *
59 * @return TextElement
60 */
61 public function createText($text)
62 {
63 $objText = new TextElement($text);
64 $this->addText($objText);
65
66 return $objText;
67 }
68
69 /**
70 * Create text run.
71 *
72 * @param string $text Text
73 *
74 * @return Run
75 */
76 public function createTextRun($text)
77 {
78 $objText = new Run($text);
79 $this->addText($objText);
80
81 return $objText;
82 }
83
84 /**
85 * Get plain text.
86 *
87 * @return string
88 */
89 public function getPlainText()
90 {
91 // Return value
92 $returnValue = '';
93
94 // Loop through all ITextElements
95 foreach ($this->richTextElements as $text) {
96 $returnValue .= $text->getText();
97 }
98
99 return $returnValue;
100 }
101
102 /**
103 * Convert to string.
104 *
105 * @return string
106 */
107 public function __toString()
108 {
109 return $this->getPlainText();
110 }
111
112 /**
113 * Get Rich Text elements.
114 *
115 * @return ITextElement[]
116 */
117 public function getRichTextElements()
118 {
119 return $this->richTextElements;
120 }
121
122 /**
123 * Set Rich Text elements.
124 *
125 * @param ITextElement[] $textElements Array of elements
126 *
127 * @return $this
128 */
129 public function setRichTextElements(array $textElements)
130 {
131 $this->richTextElements = $textElements;
132
133 return $this;
134 }
135
136 /**
137 * Get hash code.
138 *
139 * @return string Hash code
140 */
141 public function getHashCode()
142 {
143 $hashElements = '';
144 foreach ($this->richTextElements as $element) {
145 $hashElements .= $element->getHashCode();
146 }
147
148 return md5(
149 $hashElements .
150 __CLASS__
151 );
152 }
153
154 /**
155 * Implement PHP __clone to create a deep clone, not just a shallow copy.
156 */
157 public function __clone()
158 {
159 $vars = get_object_vars($this);
160 foreach ($vars as $key => $value) {
161 $newValue = is_object($value) ? (clone $value) : $value;
162 if (is_array($value)) {
163 $newValue = [];
164 foreach ($value as $key2 => $value2) {
165 $newValue[$key2] = is_object($value2) ? (clone $value2) : $value2;
166 }
167 }
168 $this->$key = $newValue;
169 }
170 }
171 }
172