[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * PHPExcel 4 * 5 * Copyright (c) 2006 - 2014 PHPExcel 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 PHPExcel 22 * @package PHPExcel_Writer_Excel2007 23 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 24 * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 25 * @version ##VERSION##, ##DATE## 26 */ 27 28 29 /** 30 * PHPExcel_Writer_Excel2007_DocProps 31 * 32 * @category PHPExcel 33 * @package PHPExcel_Writer_Excel2007 34 * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) 35 */ 36 class PHPExcel_Writer_Excel2007_DocProps extends PHPExcel_Writer_Excel2007_WriterPart 37 { 38 /** 39 * Write docProps/app.xml to XML format 40 * 41 * @param PHPExcel $pPHPExcel 42 * @return string XML Output 43 * @throws PHPExcel_Writer_Exception 44 */ 45 public function writeDocPropsApp(PHPExcel $pPHPExcel = null) 46 { 47 // Create XML writer 48 $objWriter = null; 49 if ($this->getParentWriter()->getUseDiskCaching()) { 50 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); 51 } else { 52 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); 53 } 54 55 // XML header 56 $objWriter->startDocument('1.0','UTF-8','yes'); 57 58 // Properties 59 $objWriter->startElement('Properties'); 60 $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties'); 61 $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); 62 63 // Application 64 $objWriter->writeElement('Application', 'Microsoft Excel'); 65 66 // DocSecurity 67 $objWriter->writeElement('DocSecurity', '0'); 68 69 // ScaleCrop 70 $objWriter->writeElement('ScaleCrop', 'false'); 71 72 // HeadingPairs 73 $objWriter->startElement('HeadingPairs'); 74 75 // Vector 76 $objWriter->startElement('vt:vector'); 77 $objWriter->writeAttribute('size', '2'); 78 $objWriter->writeAttribute('baseType', 'variant'); 79 80 // Variant 81 $objWriter->startElement('vt:variant'); 82 $objWriter->writeElement('vt:lpstr', 'Worksheets'); 83 $objWriter->endElement(); 84 85 // Variant 86 $objWriter->startElement('vt:variant'); 87 $objWriter->writeElement('vt:i4', $pPHPExcel->getSheetCount()); 88 $objWriter->endElement(); 89 90 $objWriter->endElement(); 91 92 $objWriter->endElement(); 93 94 // TitlesOfParts 95 $objWriter->startElement('TitlesOfParts'); 96 97 // Vector 98 $objWriter->startElement('vt:vector'); 99 $objWriter->writeAttribute('size', $pPHPExcel->getSheetCount()); 100 $objWriter->writeAttribute('baseType', 'lpstr'); 101 102 $sheetCount = $pPHPExcel->getSheetCount(); 103 for ($i = 0; $i < $sheetCount; ++$i) { 104 $objWriter->writeElement('vt:lpstr', $pPHPExcel->getSheet($i)->getTitle()); 105 } 106 107 $objWriter->endElement(); 108 109 $objWriter->endElement(); 110 111 // Company 112 $objWriter->writeElement('Company', $pPHPExcel->getProperties()->getCompany()); 113 114 // Company 115 $objWriter->writeElement('Manager', $pPHPExcel->getProperties()->getManager()); 116 117 // LinksUpToDate 118 $objWriter->writeElement('LinksUpToDate', 'false'); 119 120 // SharedDoc 121 $objWriter->writeElement('SharedDoc', 'false'); 122 123 // HyperlinksChanged 124 $objWriter->writeElement('HyperlinksChanged', 'false'); 125 126 // AppVersion 127 $objWriter->writeElement('AppVersion', '12.0000'); 128 129 $objWriter->endElement(); 130 131 // Return 132 return $objWriter->getData(); 133 } 134 135 /** 136 * Write docProps/core.xml to XML format 137 * 138 * @param PHPExcel $pPHPExcel 139 * @return string XML Output 140 * @throws PHPExcel_Writer_Exception 141 */ 142 public function writeDocPropsCore(PHPExcel $pPHPExcel = null) 143 { 144 // Create XML writer 145 $objWriter = null; 146 if ($this->getParentWriter()->getUseDiskCaching()) { 147 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); 148 } else { 149 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); 150 } 151 152 // XML header 153 $objWriter->startDocument('1.0','UTF-8','yes'); 154 155 // cp:coreProperties 156 $objWriter->startElement('cp:coreProperties'); 157 $objWriter->writeAttribute('xmlns:cp', 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties'); 158 $objWriter->writeAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/'); 159 $objWriter->writeAttribute('xmlns:dcterms', 'http://purl.org/dc/terms/'); 160 $objWriter->writeAttribute('xmlns:dcmitype', 'http://purl.org/dc/dcmitype/'); 161 $objWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); 162 163 // dc:creator 164 $objWriter->writeElement('dc:creator', $pPHPExcel->getProperties()->getCreator()); 165 166 // cp:lastModifiedBy 167 $objWriter->writeElement('cp:lastModifiedBy', $pPHPExcel->getProperties()->getLastModifiedBy()); 168 169 // dcterms:created 170 $objWriter->startElement('dcterms:created'); 171 $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); 172 $objWriter->writeRawData(date(DATE_W3C, $pPHPExcel->getProperties()->getCreated())); 173 $objWriter->endElement(); 174 175 // dcterms:modified 176 $objWriter->startElement('dcterms:modified'); 177 $objWriter->writeAttribute('xsi:type', 'dcterms:W3CDTF'); 178 $objWriter->writeRawData(date(DATE_W3C, $pPHPExcel->getProperties()->getModified())); 179 $objWriter->endElement(); 180 181 // dc:title 182 $objWriter->writeElement('dc:title', $pPHPExcel->getProperties()->getTitle()); 183 184 // dc:description 185 $objWriter->writeElement('dc:description', $pPHPExcel->getProperties()->getDescription()); 186 187 // dc:subject 188 $objWriter->writeElement('dc:subject', $pPHPExcel->getProperties()->getSubject()); 189 190 // cp:keywords 191 $objWriter->writeElement('cp:keywords', $pPHPExcel->getProperties()->getKeywords()); 192 193 // cp:category 194 $objWriter->writeElement('cp:category', $pPHPExcel->getProperties()->getCategory()); 195 196 $objWriter->endElement(); 197 198 // Return 199 return $objWriter->getData(); 200 } 201 202 /** 203 * Write docProps/custom.xml to XML format 204 * 205 * @param PHPExcel $pPHPExcel 206 * @return string XML Output 207 * @throws PHPExcel_Writer_Exception 208 */ 209 public function writeDocPropsCustom(PHPExcel $pPHPExcel = null) 210 { 211 $customPropertyList = $pPHPExcel->getProperties()->getCustomProperties(); 212 if (empty($customPropertyList)) { 213 return; 214 } 215 216 // Create XML writer 217 $objWriter = null; 218 if ($this->getParentWriter()->getUseDiskCaching()) { 219 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); 220 } else { 221 $objWriter = new PHPExcel_Shared_XMLWriter(PHPExcel_Shared_XMLWriter::STORAGE_MEMORY); 222 } 223 224 // XML header 225 $objWriter->startDocument('1.0','UTF-8','yes'); 226 227 // cp:coreProperties 228 $objWriter->startElement('Properties'); 229 $objWriter->writeAttribute('xmlns', 'http://schemas.openxmlformats.org/officeDocument/2006/custom-properties'); 230 $objWriter->writeAttribute('xmlns:vt', 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); 231 232 233 foreach($customPropertyList as $key => $customProperty) { 234 $propertyValue = $pPHPExcel->getProperties()->getCustomPropertyValue($customProperty); 235 $propertyType = $pPHPExcel->getProperties()->getCustomPropertyType($customProperty); 236 237 $objWriter->startElement('property'); 238 $objWriter->writeAttribute('fmtid', '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}'); 239 $objWriter->writeAttribute('pid', $key+2); 240 $objWriter->writeAttribute('name', $customProperty); 241 242 switch($propertyType) { 243 case 'i' : 244 $objWriter->writeElement('vt:i4', $propertyValue); 245 break; 246 case 'f' : 247 $objWriter->writeElement('vt:r8', $propertyValue); 248 break; 249 case 'b' : 250 $objWriter->writeElement('vt:bool', ($propertyValue) ? 'true' : 'false'); 251 break; 252 case 'd' : 253 $objWriter->startElement('vt:filetime'); 254 $objWriter->writeRawData(date(DATE_W3C, $propertyValue)); 255 $objWriter->endElement(); 256 break; 257 default : 258 $objWriter->writeElement('vt:lpwstr', $propertyValue); 259 break; 260 } 261 262 $objWriter->endElement(); 263 } 264 265 266 $objWriter->endElement(); 267 268 // Return 269 return $objWriter->getData(); 270 } 271 272 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |