[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/phpexcel/PHPExcel/ -> RichText.php (source)

   1  <?php
   2  /**
   3   * PHPExcel
   4   *
   5   * Copyright (c) 2006 - 2014 PHPExcel
   6   *
   7   * This library is free software; you can redistribute it and/or
   8   * modify it under the terms of the GNU Lesser General Public
   9   * License as published by the Free Software Foundation; either
  10   * version 2.1 of the License, or (at your option) any later version.
  11   *
  12   * This library is distributed in the hope that it will be useful,
  13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15   * Lesser General Public License for more details.
  16   *
  17   * You should have received a copy of the GNU Lesser General Public
  18   * License along with this library; if not, write to the Free Software
  19   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  20   *
  21   * @category   PHPExcel
  22   * @package    PHPExcel_RichText
  23   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  24   * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
  25   * @version    ##VERSION##, ##DATE##
  26   */
  27  
  28  
  29  /**
  30   * PHPExcel_RichText
  31   *
  32   * @category   PHPExcel
  33   * @package    PHPExcel_RichText
  34   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  35   */
  36  class PHPExcel_RichText implements PHPExcel_IComparable
  37  {
  38      /**
  39       * Rich text elements
  40       *
  41       * @var PHPExcel_RichText_ITextElement[]
  42       */
  43      private $_richTextElements;
  44  
  45      /**
  46       * Create a new PHPExcel_RichText instance
  47       *
  48       * @param PHPExcel_Cell $pCell
  49       * @throws PHPExcel_Exception
  50       */
  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 ($pCell !== NULL) {
  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  
  70      /**
  71       * Add text
  72       *
  73       * @param PHPExcel_RichText_ITextElement $pText Rich text element
  74       * @throws PHPExcel_Exception
  75       * @return PHPExcel_RichText
  76       */
  77      public function addText(PHPExcel_RichText_ITextElement $pText = null)
  78      {
  79          $this->_richTextElements[] = $pText;
  80          return $this;
  81      }
  82  
  83      /**
  84       * Create text
  85       *
  86       * @param string $pText Text
  87       * @return PHPExcel_RichText_TextElement
  88       * @throws PHPExcel_Exception
  89       */
  90      public function createText($pText = '')
  91      {
  92          $objText = new PHPExcel_RichText_TextElement($pText);
  93          $this->addText($objText);
  94          return $objText;
  95      }
  96  
  97      /**
  98       * Create text run
  99       *
 100       * @param string $pText Text
 101       * @return PHPExcel_RichText_Run
 102       * @throws PHPExcel_Exception
 103       */
 104      public function createTextRun($pText = '')
 105      {
 106          $objText = new PHPExcel_RichText_Run($pText);
 107          $this->addText($objText);
 108          return $objText;
 109      }
 110  
 111      /**
 112       * Get plain text
 113       *
 114       * @return string
 115       */
 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  
 130      /**
 131       * Convert to string
 132       *
 133       * @return string
 134       */
 135      public function __toString()
 136      {
 137          return $this->getPlainText();
 138      }
 139  
 140      /**
 141       * Get Rich Text elements
 142       *
 143       * @return PHPExcel_RichText_ITextElement[]
 144       */
 145      public function getRichTextElements()
 146      {
 147          return $this->_richTextElements;
 148      }
 149  
 150      /**
 151       * Set Rich Text elements
 152       *
 153       * @param PHPExcel_RichText_ITextElement[] $pElements Array of elements
 154       * @throws PHPExcel_Exception
 155       * @return PHPExcel_RichText
 156       */
 157      public function setRichTextElements($pElements = null)
 158      {
 159          if (is_array($pElements)) {
 160              $this->_richTextElements = $pElements;
 161          } else {
 162              throw new PHPExcel_Exception("Invalid PHPExcel_RichText_ITextElement[] array passed.");
 163          }
 164          return $this;
 165      }
 166  
 167      /**
 168       * Get hash code
 169       *
 170       * @return string    Hash code
 171       */
 172      public function getHashCode()
 173      {
 174          $hashElements = '';
 175          foreach ($this->_richTextElements as $element) {
 176              $hashElements .= $element->getHashCode();
 177          }
 178  
 179          return md5(
 180                $hashElements
 181              . __CLASS__
 182          );
 183      }
 184  
 185      /**
 186       * Implement PHP __clone to create a deep clone, not just a shallow copy.
 187       */
 188      public function __clone()
 189      {
 190          $vars = get_object_vars($this);
 191          foreach ($vars as $key => $value) {
 192              if (is_object($value)) {
 193                  $this->$key = clone $value;
 194              } else {
 195                  $this->$key = $value;
 196              }
 197          }
 198      }
 199  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1