Esempio n. 1
0
 /**
  * Write relationships
  *
  * @param \PhpOffice\PhpWord\Shared\XMLWriter $xmlWriter
  * @param null|array $xmlRels
  * @param null|array $mediaRels
  * @param integer $relId
  */
 private function writeRels(XMLWriter $xmlWriter, $xmlRels = null, $mediaRels = null, $relId = 1)
 {
     $xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
     $xmlWriter->startElement('Relationships');
     $xmlWriter->writeAttribute('xmlns', self::RELS_BASE . 'package/2006/relationships');
     // XML files relationships
     if (is_array($xmlRels)) {
         foreach ($xmlRels as $target => $type) {
             $this->writeRel($xmlWriter, $relId++, $type, $target);
         }
     }
     // Media relationships
     if (!is_null($mediaRels) && is_array($mediaRels)) {
         $mapping = array('image' => 'image', 'object' => 'oleObject', 'link' => 'hyperlink');
         $targetPaths = array('image' => 'media/', 'object' => 'embeddings/');
         foreach ($mediaRels as $mediaRel) {
             $mediaType = $mediaRel['type'];
             $type = array_key_exists($mediaType, $mapping) ? $mapping[$mediaType] : $mediaType;
             $target = array_key_exists($mediaType, $targetPaths) ? $targetPaths[$mediaType] : '';
             $target .= $mediaRel['target'];
             $targetMode = $type == 'hyperlink' ? 'External' : '';
             $this->writeRel($xmlWriter, $relId++, "officeDocument/2006/relationships/{$type}", $target, $targetMode);
         }
     }
     $xmlWriter->endElement();
     // Relationships
 }
Esempio n. 2
0
 /**
  * Write relationships.
  *
  * @param \PhpOffice\PhpWord\Shared\XMLWriter $xmlWriter
  * @param array $xmlRels
  * @param array $mediaRels
  * @param int $relId
  * @return void
  */
 protected function writeRels(XMLWriter $xmlWriter, $xmlRels = array(), $mediaRels = array(), $relId = 1)
 {
     $xmlWriter->startDocument('1.0', 'UTF-8', 'yes');
     $xmlWriter->startElement('Relationships');
     $xmlWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
     // XML files relationships
     foreach ($xmlRels as $target => $type) {
         $this->writeRel($xmlWriter, $relId++, $type, $target);
     }
     // Media relationships
     foreach ($mediaRels as $mediaRel) {
         $this->writeMediaRel($xmlWriter, $relId++, $mediaRel);
     }
     $xmlWriter->endElement();
     // Relationships
 }