Overview

Packages

  • PHP
  • PHPWord

Classes

  • PHPWord
  • PHPWord_Autoloader
  • PHPWord_DocumentProperties
  • PHPWord_HashTable
  • PHPWord_IOFactory
  • PHPWord_Media
  • PHPWord_Section
  • PHPWord_Section_Footer
  • PHPWord_Section_Footer_PreserveText
  • PHPWord_Section_Header
  • PHPWord_Section_Image
  • PHPWord_Section_Link
  • PHPWord_Section_ListItem
  • PHPWord_Section_MemoryImage
  • PHPWord_Section_Object
  • PHPWord_Section_PageBreak
  • PHPWord_Section_Settings
  • PHPWord_Section_Table
  • PHPWord_Section_Table_Cell
  • PHPWord_Section_Table_Row
  • PHPWord_Section_Text
  • PHPWord_Section_TextBreak
  • PHPWord_Section_TextRun
  • PHPWord_Section_Title
  • PHPWord_Shared_Drawing
  • PHPWord_Shared_File
  • PHPWord_Shared_Font
  • PHPWord_Shared_String
  • PHPWord_Shared_XMLWriter
  • PHPWord_Shared_ZipStreamWrapper
  • PHPWord_Style
  • PHPWord_Style_Cell
  • PHPWord_Style_Font
  • PHPWord_Style_Image
  • PHPWord_Style_ListItem
  • PHPWord_Style_Paragraph
  • PHPWord_Style_Row
  • PHPWord_Style_Tab
  • PHPWord_Style_Table
  • PHPWord_Style_TableFull
  • PHPWord_Style_Tabs
  • PHPWord_Style_TOC
  • PHPWord_Template
  • PHPWord_TOC
  • PHPWord_Writer_ODText
  • PHPWord_Writer_ODText_Content
  • PHPWord_Writer_ODText_Manifest
  • PHPWord_Writer_ODText_Meta
  • PHPWord_Writer_ODText_Mimetype
  • PHPWord_Writer_ODText_Styles
  • PHPWord_Writer_ODText_WriterPart
  • PHPWord_Writer_RTF
  • PHPWord_Writer_Word2007
  • PHPWord_Writer_Word2007_Base
  • PHPWord_Writer_Word2007_ContentTypes
  • PHPWord_Writer_Word2007_DocProps
  • PHPWord_Writer_Word2007_Document
  • PHPWord_Writer_Word2007_DocumentRels
  • PHPWord_Writer_Word2007_Footer
  • PHPWord_Writer_Word2007_Header
  • PHPWord_Writer_Word2007_Rels
  • PHPWord_Writer_Word2007_Styles
  • PHPWord_Writer_Word2007_WriterPart

Interfaces

  • PHPWord_Writer_IWriter

Exceptions

  • PHPWord_Exception
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * PHPWord
  4:  *
  5:  * Copyright (c) 2013 PHPWord
  6:  *
  7:  * This library is free software; you can redistribute it and/or
  8:  * modify it under the terms of the GNU Lesser General Public
  9:  * License as published by the Free Software Foundation; either
 10:  * version 2.1 of the License, or (at your option) any later version.
 11:  *
 12:  * This library is distributed in the hope that it will be useful,
 13:  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 14:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15:  * Lesser General Public License for more details.
 16:  *
 17:  * You should have received a copy of the GNU Lesser General Public
 18:  * License along with this library; if not, write to the Free Software
 19:  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 20:  *
 21:  * @category   PHPWord
 22:  * @package    PHPWord
 23:  * @copyright  Copyright (c) 2013 PHPWord
 24:  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 25:  * @version    0.7.0
 26:  */
 27: 
 28: /**
 29:  * Class PHPWord_Writer_Word2007_DocumentRels
 30:  */
 31: class PHPWord_Writer_Word2007_DocumentRels extends PHPWord_Writer_Word2007_WriterPart
 32: {
 33: 
 34:     public function writeDocumentRels($_relsCollection)
 35:     {
 36:         // Create XML writer
 37:         $objWriter = null;
 38:         if ($this->getParentWriter()->getUseDiskCaching()) {
 39:             $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
 40:         } else {
 41:             $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
 42:         }
 43: 
 44:         // XML header
 45:         $objWriter->startDocument('1.0', 'UTF-8', 'yes');
 46: 
 47:         // Relationships
 48:         $objWriter->startElement('Relationships');
 49:         $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
 50: 
 51:         // Relationship word/document.xml
 52:         $this->_writeRelationship(
 53:             $objWriter,
 54:             1,
 55:             'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
 56:             'styles.xml'
 57:         );
 58: 
 59:         // Relationship word/numbering.xml
 60:         $this->_writeRelationship(
 61:             $objWriter,
 62:             2,
 63:             'http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering',
 64:             'numbering.xml'
 65:         );
 66: 
 67:         // Relationship word/settings.xml
 68:         $this->_writeRelationship(
 69:             $objWriter,
 70:             3,
 71:             'http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings',
 72:             'settings.xml'
 73:         );
 74: 
 75:         // Relationship word/settings.xml
 76:         $this->_writeRelationship(
 77:             $objWriter,
 78:             4,
 79:             'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
 80:             'theme/theme1.xml'
 81:         );
 82: 
 83:         // Relationship word/settings.xml
 84:         $this->_writeRelationship(
 85:             $objWriter,
 86:             5,
 87:             'http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings',
 88:             'webSettings.xml'
 89:         );
 90: 
 91:         // Relationship word/settings.xml
 92:         $this->_writeRelationship(
 93:             $objWriter,
 94:             6,
 95:             'http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable',
 96:             'fontTable.xml'
 97:         );
 98: 
 99:         // Relationships to Images / Embeddings / Headers / Footers
100:         foreach ($_relsCollection as $relation) {
101:             $relationType = $relation['type'];
102:             $relationName = $relation['target'];
103:             $relationId = $relation['rID'];
104:             $targetMode = ($relationType == 'hyperlink') ? 'External' : '';
105: 
106:             $this->_writeRelationship(
107:                 $objWriter,
108:                 $relationId,
109:                 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/' . $relationType,
110:                 $relationName,
111:                 $targetMode
112:             );
113:         }
114: 
115: 
116:         $objWriter->endElement();
117: 
118:         // Return
119:         return $objWriter->getData();
120:     }
121: 
122:     public function writeHeaderFooterRels($_relsCollection)
123:     {
124:         // Create XML writer
125:         $objWriter = null;
126:         if ($this->getParentWriter()->getUseDiskCaching()) {
127:             $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory());
128:         } else {
129:             $objWriter = new PHPWord_Shared_XMLWriter(PHPWord_Shared_XMLWriter::STORAGE_MEMORY);
130:         }
131: 
132:         // XML header
133:         $objWriter->startDocument('1.0', 'UTF-8', 'yes');
134: 
135:         // Relationships
136:         $objWriter->startElement('Relationships');
137:         $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/package/2006/relationships');
138: 
139:         // Relationships to Images / Embeddings / Headers / Footers
140:         foreach ($_relsCollection as $relation) {
141:             $relationType = $relation['type'];
142:             $relationName = $relation['target'];
143:             $relationId = $relation['rID'];
144: 
145:             $this->_writeRelationship(
146:                 $objWriter,
147:                 $relationId,
148:                 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/' . $relationType,
149:                 $relationName
150:             );
151:         }
152: 
153: 
154:         $objWriter->endElement();
155: 
156:         // Return
157:         return $objWriter->getData();
158:     }
159: 
160:     private function _writeRelationship(PHPWord_Shared_XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '')
161:     {
162:         if ($pType != '' && $pTarget != '') {
163:             if (strpos($pId, 'rId') === false) {
164:                 $pId = 'rId' . $pId;
165:             }
166: 
167:             // Write relationship
168:             $objWriter->startElement('Relationship');
169:             $objWriter->writeAttribute('Id', $pId);
170:             $objWriter->writeAttribute('Type', $pType);
171:             $objWriter->writeAttribute('Target', $pTarget);
172: 
173:             if ($pTargetMode != '') {
174:                 $objWriter->writeAttribute('TargetMode', $pTargetMode);
175:             }
176: 
177:             $objWriter->endElement();
178:         } else {
179:             throw new Exception("Invalid parameters passed.");
180:         }
181:     }
182: }
183: 
PHPWord API Docs API documentation generated by ApiGen 2.8.0