public function writePresentationRelationships()
{
// Create XML writer
$objWriter = new XMLWriter(XMLWriter::STORAGE_MEMORY);
// XML header
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
// Relationships
$objWriter->startElement('Relationships');
$objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
// Relation id
$relationId = 1;
foreach ($this->getPresentation()->getAllMasterSlides() as $oMasterSlide) {
// Relationship slideMasters/slideMasterX.xml
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster', 'slideMasters/slideMaster' . $oMasterSlide->getRelsIndex() . '.xml');
}
// Add slide theme (only one!)
// Relationship theme/theme1.xml
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', 'theme/theme1.xml');
// Relationships with slides
$slideCount = $this->getPresentation()->getSlideCount();
for ($i = 0; $i < $slideCount; ++$i) {
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide', 'slides/slide' . ($i + 1) . '.xml');
}
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps', 'presProps.xml');
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/viewProps', 'viewProps.xml');
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableStyles', 'tableStyles.xml');
// Comments Authors
foreach ($this->getPresentation()->getAllSlides() as $oSlide) {
foreach ($oSlide->getShapeCollection() as $oShape) {
if (!$oShape instanceof Comment) {
continue;
}
$oAuthor = $oShape->getAuthor();
if (!$oAuthor instanceof Author) {
continue;
}
$this->writeRelationship($objWriter, $relationId++, 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors', 'commentAuthors.xml');
break 2;
}
}
$objWriter->endElement();
// Return
return $objWriter->getData();
}