Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 3.9.x will end* 10 May 2021 (12 months).
  • Bug fixes for security issues in 3.9.x will end* 8 May 2023 (36 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 39 and 311] [Versions 39 and 400] [Versions 39 and 401] [Versions 39 and 402] [Versions 39 and 403]

   1  <?php
   2  
   3  namespace PhpOffice\PhpSpreadsheet\Writer\Xlsx;
   4  
   5  use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
   6  use PhpOffice\PhpSpreadsheet\Spreadsheet;
   7  
   8  class RelsRibbon extends WriterPart
   9  {
  10      /**
  11       * Write relationships for additional objects of custom UI (ribbon).
  12       *
  13       * @param Spreadsheet $spreadsheet
  14       *
  15       * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
  16       *
  17       * @return string XML Output
  18       */
  19      public function writeRibbonRelationships(Spreadsheet $spreadsheet)
  20      {
  21          // Create XML writer
  22          $objWriter = null;
  23          if ($this->getParentWriter()->getUseDiskCaching()) {
  24              $objWriter = new XMLWriter(XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
  25          } else {
  26              $objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
  27          }
  28  
  29          // XML header
  30          $objWriter->startDocument('1.0', 'UTF-8', 'yes');
  31  
  32          // Relationships
  33          $objWriter->startElement('Relationships');
  34          $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
  35          $localRels = $spreadsheet->getRibbonBinObjects('names');
  36          if (is_array($localRels)) {
  37              foreach ($localRels as $aId => $aTarget) {
  38                  $objWriter->startElement('Relationship');
  39                  $objWriter->writeAttribute('Id', $aId);
  40                  $objWriter->writeAttribute('Type', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image');
  41                  $objWriter->writeAttribute('Target', $aTarget);
  42                  $objWriter->endElement();
  43              }
  44          }
  45          $objWriter->endElement();
  46  
  47          return $objWriter->getData();
  48      }
  49  }