ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
RichText.php
Go to the documentation of this file.
1 <?php
37 {
44 
51  public function __construct(PHPExcel_Cell $pCell = null)
52  {
53  // Initialise variables
54  $this->_richTextElements = array();
55 
56  // Rich-Text string attached to cell?
57  if (!is_null($pCell)) {
58  // Add cell text and style
59  if ($pCell->getValue() != "") {
60  $objRun = new PHPExcel_RichText_Run($pCell->getValue());
61  $objRun->setFont(clone $pCell->getParent()->getStyle($pCell->getCoordinate())->getFont());
62  $this->addText($objRun);
63  }
64 
65  // Set parent value
66  $pCell->setValueExplicit($this, PHPExcel_Cell_DataType::TYPE_STRING);
67  }
68  }
69 
77  public function addText(PHPExcel_RichText_ITextElement $pText = null)
78  {
79  $this->_richTextElements[] = $pText;
80  return $this;
81  }
82 
90  public function createText($pText = '')
91  {
92  $objText = new PHPExcel_RichText_TextElement($pText);
93  $this->addText($objText);
94  return $objText;
95  }
96 
104  public function createTextRun($pText = '')
105  {
106  $objText = new PHPExcel_RichText_Run($pText);
107  $this->addText($objText);
108  return $objText;
109  }
110 
116  public function getPlainText()
117  {
118  // Return value
119  $returnValue = '';
120 
121  // Loop through all PHPExcel_RichText_ITextElement
122  foreach ($this->_richTextElements as $text) {
123  $returnValue .= $text->getText();
124  }
125 
126  // Return
127  return $returnValue;
128  }
129 
135  public function __toString() {
136  return $this->getPlainText();
137  }
138 
144  public function getRichTextElements()
145  {
147  }
148 
156  public function setRichTextElements($pElements = null)
157  {
158  if (is_array($pElements)) {
159  $this->_richTextElements = $pElements;
160  } else {
161  throw new Exception("Invalid PHPExcel_RichText_ITextElement[] array passed.");
162  }
163  return $this;
164  }
165 
171  public function getHashCode() {
172  $hashElements = '';
173  foreach ($this->_richTextElements as $element) {
174  $hashElements .= $element->getHashCode();
175  }
176 
177  return md5(
178  $hashElements
179  . __CLASS__
180  );
181  }
182 
186  public function __clone() {
187  $vars = get_object_vars($this);
188  foreach ($vars as $key => $value) {
189  if (is_object($value)) {
190  $this->$key = clone $value;
191  } else {
192  $this->$key = $value;
193  }
194  }
195  }
196 }