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\Worksheet;
   4  
   5  use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
   6  
   7  class Drawing extends BaseDrawing
   8  {
   9      /**
  10       * Path.
  11       *
  12       * @var string
  13       */
  14      private $path;
  15  
  16      /**
  17       * Create a new Drawing.
  18       */
  19      public function __construct()
  20      {
  21          // Initialise values
  22          $this->path = '';
  23  
  24          // Initialize parent
  25          parent::__construct();
  26      }
  27  
  28      /**
  29       * Get Filename.
  30       *
  31       * @return string
  32       */
  33      public function getFilename()
  34      {
  35          return basename($this->path);
  36      }
  37  
  38      /**
  39       * Get indexed filename (using image index).
  40       *
  41       * @return string
  42       */
  43      public function getIndexedFilename()
  44      {
  45          $fileName = $this->getFilename();
  46          $fileName = str_replace(' ', '_', $fileName);
  47  
  48          return str_replace('.' . $this->getExtension(), '', $fileName) . $this->getImageIndex() . '.' . $this->getExtension();
  49      }
  50  
  51      /**
  52       * Get Extension.
  53       *
  54       * @return string
  55       */
  56      public function getExtension()
  57      {
  58          $exploded = explode('.', basename($this->path));
  59  
  60          return $exploded[count($exploded) - 1];
  61      }
  62  
  63      /**
  64       * Get Path.
  65       *
  66       * @return string
  67       */
  68      public function getPath()
  69      {
  70          return $this->path;
  71      }
  72  
  73      /**
  74       * Set Path.
  75       *
  76       * @param string $pValue File path
  77       * @param bool $pVerifyFile Verify file
  78       *
  79       * @throws PhpSpreadsheetException
  80       *
  81       * @return Drawing
  82       */
  83      public function setPath($pValue, $pVerifyFile = true)
  84      {
  85          if ($pVerifyFile) {
  86              if (file_exists($pValue)) {
  87                  $this->path = $pValue;
  88  
  89                  if ($this->width == 0 && $this->height == 0) {
  90                      // Get width/height
  91                      [$this->width, $this->height] = getimagesize($pValue);
  92                  }
  93              } else {
  94                  throw new PhpSpreadsheetException("File $pValue not found!");
  95              }
  96          } else {
  97              $this->path = $pValue;
  98          }
  99  
 100          return $this;
 101      }
 102  
 103      /**
 104       * Get hash code.
 105       *
 106       * @return string Hash code
 107       */
 108      public function getHashCode()
 109      {
 110          return md5(
 111              $this->path .
 112              parent::getHashCode() .
 113              __CLASS__
 114          );
 115      }
 116  }