RelsRibbon   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 4
eloc 19
c 0
b 0
f 0
dl 0
loc 37
ccs 0
cts 18
cp 0
rs 10

1 Method

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