Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.

Differences Between: [Versions 310 and 311] [Versions 310 and 400] [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]

   1  <?php
   2  
   3  namespace PhpOffice\PhpSpreadsheet;
   4  
   5  use PhpOffice\PhpSpreadsheet\RichText\RichText;
   6  
   7  class Comment implements IComparable
   8  {
   9      /**
  10       * Author.
  11       *
  12       * @var string
  13       */
  14      private $author;
  15  
  16      /**
  17       * Rich text comment.
  18       *
  19       * @var RichText
  20       */
  21      private $text;
  22  
  23      /**
  24       * Comment width (CSS style, i.e. XXpx or YYpt).
  25       *
  26       * @var string
  27       */
  28      private $width = '96pt';
  29  
  30      /**
  31       * Left margin (CSS style, i.e. XXpx or YYpt).
  32       *
  33       * @var string
  34       */
  35      private $marginLeft = '59.25pt';
  36  
  37      /**
  38       * Top margin (CSS style, i.e. XXpx or YYpt).
  39       *
  40       * @var string
  41       */
  42      private $marginTop = '1.5pt';
  43  
  44      /**
  45       * Visible.
  46       *
  47       * @var bool
  48       */
  49      private $visible = false;
  50  
  51      /**
  52       * Comment height (CSS style, i.e. XXpx or YYpt).
  53       *
  54       * @var string
  55       */
  56      private $height = '55.5pt';
  57  
  58      /**
  59       * Comment fill color.
  60       *
  61       * @var Style\Color
  62       */
  63      private $fillColor;
  64  
  65      /**
  66       * Alignment.
  67       *
  68       * @var string
  69       */
  70      private $alignment;
  71  
  72      /**
  73       * Create a new Comment.
  74       */
  75      public function __construct()
  76      {
  77          // Initialise variables
  78          $this->author = 'Author';
  79          $this->text = new RichText();
  80          $this->fillColor = new Style\Color('FFFFFFE1');
  81          $this->alignment = Style\Alignment::HORIZONTAL_GENERAL;
  82      }
  83  
  84      /**
  85       * Get Author.
  86       *
  87       * @return string
  88       */
  89      public function getAuthor()
  90      {
  91          return $this->author;
  92      }
  93  
  94      /**
  95       * Set Author.
  96       *
  97       * @param string $author
  98       *
  99       * @return Comment
 100       */
 101      public function setAuthor($author)
 102      {
 103          $this->author = $author;
 104  
 105          return $this;
 106      }
 107  
 108      /**
 109       * Get Rich text comment.
 110       *
 111       * @return RichText
 112       */
 113      public function getText()
 114      {
 115          return $this->text;
 116      }
 117  
 118      /**
 119       * Set Rich text comment.
 120       *
 121       * @param RichText $pValue
 122       *
 123       * @return Comment
 124       */
 125      public function setText(RichText $pValue)
 126      {
 127          $this->text = $pValue;
 128  
 129          return $this;
 130      }
 131  
 132      /**
 133       * Get comment width (CSS style, i.e. XXpx or YYpt).
 134       *
 135       * @return string
 136       */
 137      public function getWidth()
 138      {
 139          return $this->width;
 140      }
 141  
 142      /**
 143       * Set comment width (CSS style, i.e. XXpx or YYpt).
 144       *
 145       * @param string $width
 146       *
 147       * @return Comment
 148       */
 149      public function setWidth($width)
 150      {
 151          $this->width = $width;
 152  
 153          return $this;
 154      }
 155  
 156      /**
 157       * Get comment height (CSS style, i.e. XXpx or YYpt).
 158       *
 159       * @return string
 160       */
 161      public function getHeight()
 162      {
 163          return $this->height;
 164      }
 165  
 166      /**
 167       * Set comment height (CSS style, i.e. XXpx or YYpt).
 168       *
 169       * @param string $value
 170       *
 171       * @return Comment
 172       */
 173      public function setHeight($value)
 174      {
 175          $this->height = $value;
 176  
 177          return $this;
 178      }
 179  
 180      /**
 181       * Get left margin (CSS style, i.e. XXpx or YYpt).
 182       *
 183       * @return string
 184       */
 185      public function getMarginLeft()
 186      {
 187          return $this->marginLeft;
 188      }
 189  
 190      /**
 191       * Set left margin (CSS style, i.e. XXpx or YYpt).
 192       *
 193       * @param string $value
 194       *
 195       * @return Comment
 196       */
 197      public function setMarginLeft($value)
 198      {
 199          $this->marginLeft = $value;
 200  
 201          return $this;
 202      }
 203  
 204      /**
 205       * Get top margin (CSS style, i.e. XXpx or YYpt).
 206       *
 207       * @return string
 208       */
 209      public function getMarginTop()
 210      {
 211          return $this->marginTop;
 212      }
 213  
 214      /**
 215       * Set top margin (CSS style, i.e. XXpx or YYpt).
 216       *
 217       * @param string $value
 218       *
 219       * @return Comment
 220       */
 221      public function setMarginTop($value)
 222      {
 223          $this->marginTop = $value;
 224  
 225          return $this;
 226      }
 227  
 228      /**
 229       * Is the comment visible by default?
 230       *
 231       * @return bool
 232       */
 233      public function getVisible()
 234      {
 235          return $this->visible;
 236      }
 237  
 238      /**
 239       * Set comment default visibility.
 240       *
 241       * @param bool $value
 242       *
 243       * @return Comment
 244       */
 245      public function setVisible($value)
 246      {
 247          $this->visible = $value;
 248  
 249          return $this;
 250      }
 251  
 252      /**
 253       * Get fill color.
 254       *
 255       * @return Style\Color
 256       */
 257      public function getFillColor()
 258      {
 259          return $this->fillColor;
 260      }
 261  
 262      /**
 263       * Set Alignment.
 264       *
 265       * @param string $alignment see Style\Alignment::HORIZONTAL_*
 266       *
 267       * @return Comment
 268       */
 269      public function setAlignment($alignment)
 270      {
 271          $this->alignment = $alignment;
 272  
 273          return $this;
 274      }
 275  
 276      /**
 277       * Get Alignment.
 278       *
 279       * @return string
 280       */
 281      public function getAlignment()
 282      {
 283          return $this->alignment;
 284      }
 285  
 286      /**
 287       * Get hash code.
 288       *
 289       * @return string Hash code
 290       */
 291      public function getHashCode()
 292      {
 293          return md5(
 294              $this->author .
 295              $this->text->getHashCode() .
 296              $this->width .
 297              $this->height .
 298              $this->marginLeft .
 299              $this->marginTop .
 300              ($this->visible ? 1 : 0) .
 301              $this->fillColor->getHashCode() .
 302              $this->alignment .
 303              __CLASS__
 304          );
 305      }
 306  
 307      /**
 308       * Implement PHP __clone to create a deep clone, not just a shallow copy.
 309       */
 310      public function __clone()
 311      {
 312          $vars = get_object_vars($this);
 313          foreach ($vars as $key => $value) {
 314              if (is_object($value)) {
 315                  $this->$key = clone $value;
 316              } else {
 317                  $this->$key = $value;
 318              }
 319          }
 320      }
 321  
 322      /**
 323       * Convert to string.
 324       *
 325       * @return string
 326       */
 327      public function __toString()
 328      {
 329          return $this->text->getPlainText();
 330      }
 331  }