Completed
Branch develop (a82728)
by
unknown
26:01
created
htdocs/includes/odtphp/odf.php 2 patches
Spacing   +80 added lines, -80 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
 class Odf
32 32
 {
33 33
 	protected $config = array(
34
-		'ZIP_PROXY' => 'PclZipProxy',	// PclZipProxy, PhpZipProxy
34
+		'ZIP_PROXY' => 'PclZipProxy', // PclZipProxy, PhpZipProxy
35 35
 		'DELIMITER_LEFT' => '{',
36 36
 		'DELIMITER_RIGHT' => '}',
37 37
 		'PATH_TO_TMP' => '/tmp'
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 	{
107 107
 		clearstatcache();
108 108
 
109
-		if (! is_array($config)) {
109
+		if (!is_array($config)) {
110 110
 			throw new OdfException('Configuration data must be provided as array');
111 111
 		}
112 112
 		foreach ($config as $configKey => $configValue) {
@@ -116,12 +116,12 @@  discard block
 block discarded – undo
116 116
 		}
117 117
 
118 118
 		$md5uniqid = md5(uniqid());
119
-		if ($this->config['PATH_TO_TMP']) $this->tmpdir = preg_replace('|[\/]$|', '', $this->config['PATH_TO_TMP']);	// Remove last \ or /
120
-		$this->tmpdir .= ($this->tmpdir?'/':'').$md5uniqid;
121
-		$this->tmpfile = $this->tmpdir.'/'.$md5uniqid.'.odt';	// We keep .odt extension to allow OpenOffice usage during debug.
119
+		if ($this->config['PATH_TO_TMP']) $this->tmpdir = preg_replace('|[\/]$|', '', $this->config['PATH_TO_TMP']); // Remove last \ or /
120
+		$this->tmpdir .= ($this->tmpdir ? '/' : '').$md5uniqid;
121
+		$this->tmpfile = $this->tmpdir.'/'.$md5uniqid.'.odt'; // We keep .odt extension to allow OpenOffice usage during debug.
122 122
 
123 123
 		// A working directory is required for some zip proxy like PclZipProxy
124
-		if (in_array($this->config['ZIP_PROXY'], array('PclZipProxy')) && ! is_dir($this->config['PATH_TO_TMP'])) {
124
+		if (in_array($this->config['ZIP_PROXY'], array('PclZipProxy')) && !is_dir($this->config['PATH_TO_TMP'])) {
125 125
 			throw new OdfException('Temporary directory '.$this->config['PATH_TO_TMP'].' must exists');
126 126
 		}
127 127
 
@@ -141,8 +141,8 @@  discard block
 block discarded – undo
141 141
 		if (!defined('PCLZIP_TEMPORARY_DIR')) define('PCLZIP_TEMPORARY_DIR', $this->tmpdir);
142 142
 
143 143
 		include_once 'zip/'.$zipHandler.'.php';
144
-		if (! class_exists($this->config['ZIP_PROXY'])) {
145
-			throw new OdfException($this->config['ZIP_PROXY'] . ' class not found - check your php settings');
144
+		if (!class_exists($this->config['ZIP_PROXY'])) {
145
+			throw new OdfException($this->config['ZIP_PROXY'].' class not found - check your php settings');
146 146
 		}
147 147
 
148 148
 		$this->file = new $zipHandler($this->tmpdir);
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 	 */
193 193
 	public function setVars($key, $value, $encode = true, $charset = 'ISO-8859')
194 194
 	{
195
-		$tag = $this->config['DELIMITER_LEFT'] . $key . $this->config['DELIMITER_RIGHT'];
195
+		$tag = $this->config['DELIMITER_LEFT'].$key.$this->config['DELIMITER_RIGHT'];
196 196
 
197 197
 		// TODO Warning string may be:
198 198
 		// <text:span text:style-name="T13">{</text:span><text:span text:style-name="T12">aaa</text:span><text:span text:style-name="T13">}</text:span>
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
 
228 228
 		// Check if the value includes html tags
229 229
 		if ($this->_hasHtmlTag($value) === true) {
230
-			$value = strip_tags($value, '<br><strong><b><i><em><u><s><sub><sup><span>');	// remove html tags except the one into the list in second parameter
230
+			$value = strip_tags($value, '<br><strong><b><i><em><u><s><sub><sup><span>'); // remove html tags except the one into the list in second parameter
231 231
 
232 232
 			// Default styles for strong/b, i/em, u, s, sub & sup
233 233
 			$automaticStyles = array(
@@ -245,7 +245,7 @@  discard block
 block discarded – undo
245 245
 			$convertedValue = $this->_replaceHtmlWithOdtTag($this->_getDataFromHtml($value), $customStyles, $fontDeclarations, $encode, $charset);
246 246
 
247 247
 			foreach ($customStyles as $key => $val) {
248
-				array_push($automaticStyles, '<style:style style:name="customStyle' . $key . '" style:family="text">' . $val . '</style:style>');
248
+				array_push($automaticStyles, '<style:style style:name="customStyle'.$key.'" style:family="text">'.$val.'</style:style>');
249 249
 			}
250 250
 
251 251
 			// Join the styles and add them to the content xml
@@ -255,16 +255,16 @@  discard block
 block discarded – undo
255 255
 					$styles .= $style;
256 256
 				}
257 257
 			}
258
-			$this->contentXml = str_replace('</office:automatic-styles>', $styles . '</office:automatic-styles>', $this->contentXml);
258
+			$this->contentXml = str_replace('</office:automatic-styles>', $styles.'</office:automatic-styles>', $this->contentXml);
259 259
 
260 260
 			// Join the font declarations and add them to the content xml
261 261
 			$fonts = '';
262 262
 			foreach ($fontDeclarations as $font) {
263
-				if (strpos($this->contentXml, 'style:name="' . $font . '"') === false) {
264
-					$fonts .= '<style:font-face style:name="' . $font . '" svg:font-family="\'' . $font . '\'" />';
263
+				if (strpos($this->contentXml, 'style:name="'.$font.'"') === false) {
264
+					$fonts .= '<style:font-face style:name="'.$font.'" svg:font-family="\''.$font.'\'" />';
265 265
 				}
266 266
 			}
267
-			$this->contentXml = str_replace('</office:font-face-decls>', $fonts . '</office:font-face-decls>', $this->contentXml);
267
+			$this->contentXml = str_replace('</office:font-face-decls>', $fonts.'</office:font-face-decls>', $this->contentXml);
268 268
 		} else {
269 269
 			$convertedValue = $this->encode_chars($convertedValue, $encode, $charset);
270 270
 			$convertedValue = preg_replace('/(\r\n|\r|\n)/i', "<text:line-break/>", $convertedValue);
@@ -301,23 +301,23 @@  discard block
 block discarded – undo
301 301
 						break;
302 302
 					case 'strong':
303 303
 					case 'b':
304
-						$odtResult .= '<text:span text:style-name="boldText">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
304
+						$odtResult .= '<text:span text:style-name="boldText">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
305 305
 						break;
306 306
 					case 'i':
307 307
 					case 'em':
308
-						$odtResult .= '<text:span text:style-name="italicText">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
308
+						$odtResult .= '<text:span text:style-name="italicText">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
309 309
 						break;
310 310
 					case 'u':
311
-						$odtResult .= '<text:span text:style-name="underlineText">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
311
+						$odtResult .= '<text:span text:style-name="underlineText">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
312 312
 						break;
313 313
 					case 's':
314
-						$odtResult .= '<text:span text:style-name="strikethroughText">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
314
+						$odtResult .= '<text:span text:style-name="strikethroughText">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
315 315
 						break;
316 316
 					case 'sub':
317
-						$odtResult .= '<text:span text:style-name="subText">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
317
+						$odtResult .= '<text:span text:style-name="subText">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
318 318
 						break;
319 319
 					case 'sup':
320
-						$odtResult .= '<text:span text:style-name="supText">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
320
+						$odtResult .= '<text:span text:style-name="supText">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
321 321
 						break;
322 322
 					case 'span':
323 323
 						if (isset($tag['attributes']['style'])) {
@@ -332,7 +332,7 @@  discard block
 block discarded – undo
332 332
 										if (!in_array($fontName, $fontDeclarations)) {
333 333
 											array_push($fontDeclarations, $fontName);
334 334
 										}
335
-										$odtStyles .= '<style:text-properties style:font-name="' . $fontName . '" />';
335
+										$odtStyles .= '<style:text-properties style:font-name="'.$fontName.'" />';
336 336
 										break;
337 337
 									case 'font-size':
338 338
 										if (preg_match('/([0-9]+)\s?(px|pt)/', $styleValue, $matches)) {
@@ -340,21 +340,21 @@  discard block
 block discarded – undo
340 340
 											if ($matches[2] == 'px') {
341 341
 												$fontSize = round($fontSize * 0.75);
342 342
 											}
343
-											$odtStyles .= '<style:text-properties fo:font-size="' . $fontSize . 'pt" style:font-size-asian="' . $fontSize . 'pt" style:font-size-complex="' . $fontSize . 'pt" />';
343
+											$odtStyles .= '<style:text-properties fo:font-size="'.$fontSize.'pt" style:font-size-asian="'.$fontSize.'pt" style:font-size-complex="'.$fontSize.'pt" />';
344 344
 										}
345 345
 										break;
346 346
 									case 'color':
347 347
 										if (preg_match('/#[0-9A-Fa-f]{3}(?:[0-9A-Fa-f]{3})?/', $styleValue)) {
348
-											$odtStyles .= '<style:text-properties fo:color="' . $styleValue . '" />';
348
+											$odtStyles .= '<style:text-properties fo:color="'.$styleValue.'" />';
349 349
 										}
350 350
 										break;
351 351
 								}
352 352
 							}
353 353
 							if (strlen($odtStyles) > 0) {
354 354
 								// Generate a unique id for the style (using microtime and random because some CPUs are really fast...)
355
-								$key = str_replace('.', '', (string) microtime(true)) . uniqid(mt_rand());
355
+								$key = str_replace('.', '', (string) microtime(true)).uniqid(mt_rand());
356 356
 								$customStyles[$key] = $odtStyles;
357
-								$odtResult .= '<text:span text:style-name="customStyle' . $key . '">' . ($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)) . '</text:span>';
357
+								$odtResult .= '<text:span text:style-name="customStyle'.$key.'">'.($tag['children'] != null ? $this->_replaceHtmlWithOdtTag($tag['children'], $customStyles, $fontDeclarations, $encode) : $this->encode_chars($tag['innerText'], $encode, $charset)).'</text:span>';
358 358
 							}
359 359
 						}
360 360
 						break;
@@ -493,24 +493,24 @@  discard block
 block discarded – undo
493 493
 	public function htmlToUTFAndPreOdf($value)
494 494
 	{
495 495
 		// We decode into utf8, entities
496
-		$value=dol_html_entity_decode($value, ENT_QUOTES|ENT_HTML5);
496
+		$value = dol_html_entity_decode($value, ENT_QUOTES | ENT_HTML5);
497 497
 
498 498
 		// We convert html tags
499
-		$ishtml=dol_textishtml($value);
499
+		$ishtml = dol_textishtml($value);
500 500
 		if ($ishtml) {
501 501
 			// If string is "MYPODUCT - Desc <strong>bold</strong> with &eacute; accent<br />\n<br />\nUn texto en espa&ntilde;ol ?"
502 502
 			// Result after clean must be "MYPODUCT - Desc bold with é accent\n\nUn texto en espa&ntilde;ol ?"
503 503
 
504 504
 			// We want to ignore \n and we want all <br> to be \n
505
-			$value=preg_replace('/(\r\n|\r|\n)/i', '', $value);
506
-			$value=preg_replace('/<br>/i', "\n", $value);
507
-			$value=preg_replace('/<br\s+[^<>\/]*>/i', "\n", $value);
508
-			$value=preg_replace('/<br\s+[^<>\/]*\/>/i', "\n", $value);
505
+			$value = preg_replace('/(\r\n|\r|\n)/i', '', $value);
506
+			$value = preg_replace('/<br>/i', "\n", $value);
507
+			$value = preg_replace('/<br\s+[^<>\/]*>/i', "\n", $value);
508
+			$value = preg_replace('/<br\s+[^<>\/]*\/>/i', "\n", $value);
509 509
 
510 510
 			//$value=preg_replace('/<strong>/','__lt__text:p text:style-name=__quot__bold__quot____gt__',$value);
511 511
 			//$value=preg_replace('/<\/strong>/','__lt__/text:p__gt__',$value);
512 512
 
513
-			$value=dol_string_nohtmltag($value, 0);
513
+			$value = dol_string_nohtmltag($value, 0);
514 514
 		}
515 515
 
516 516
 		return $value;
@@ -543,7 +543,7 @@  discard block
 block discarded – undo
543 543
 	 * @throws OdfException
544 544
 	 * @return odf
545 545
 	 */
546
-	public function setImage($key, $value, float $ratio=1)
546
+	public function setImage($key, $value, float $ratio = 1)
547 547
 	{
548 548
 		$filename = strtok(strrchr($value, '/'), '/.');
549 549
 		$file = substr(strrchr($value, '/'), 1);
@@ -587,10 +587,10 @@  discard block
 block discarded – undo
587 587
 				$balise = str_replace('row.', '', $matches2[1]);
588 588
 				// Move segment tags around the row
589 589
 				$replace = array(
590
-					'[!-- BEGIN ' . $matches2[1] . ' --]'	=> '',
591
-					'[!-- END ' . $matches2[1] . ' --]'		=> '',
592
-					'<table:table-row'							=> '[!-- BEGIN ' . $balise . ' --]<table:table-row',
593
-					'</table:table-row>'						=> '</table:table-row>[!-- END ' . $balise . ' --]'
590
+					'[!-- BEGIN '.$matches2[1].' --]'	=> '',
591
+					'[!-- END '.$matches2[1].' --]'		=> '',
592
+					'<table:table-row'							=> '[!-- BEGIN '.$balise.' --]<table:table-row',
593
+					'</table:table-row>'						=> '</table:table-row>[!-- END '.$balise.' --]'
594 594
 				);
595 595
 				$replacedXML = str_replace(array_keys($replace), array_values($replace), $matches[0][$i]);
596 596
 				$this->contentXml = str_replace($matches[0][$i], $replacedXML, $this->contentXml);
@@ -613,13 +613,13 @@  discard block
 block discarded – undo
613 613
 		else return;
614 614
 
615 615
 		// Search all tags found into condition to complete $this->vars, so we will proceed all tests even if not defined
616
-		$reg='@\[!--\sIF\s([\[\]{}a-zA-Z0-9\.\,_]+)\s--\]@smU';
616
+		$reg = '@\[!--\sIF\s([\[\]{}a-zA-Z0-9\.\,_]+)\s--\]@smU';
617 617
 		$matches = array();
618 618
 		preg_match_all($reg, $xml, $matches, PREG_SET_ORDER);
619 619
 
620 620
 		foreach ($matches as $match) {   // For each match, if there is no entry into this->vars, we add it
621
-			if (! empty($match[1]) && ! isset($this->vars[$match[1]])) {
622
-				$this->vars[$match[1]] = '';     // Not defined, so we set it to '', we just need entry into this->vars for next loop
621
+			if (!empty($match[1]) && !isset($this->vars[$match[1]])) {
622
+				$this->vars[$match[1]] = ''; // Not defined, so we set it to '', we just need entry into this->vars for next loop
623 623
 			}
624 624
 		}
625 625
 
@@ -633,7 +633,7 @@  discard block
 block discarded – undo
633 633
 				// Remove the IF tag
634 634
 				$xml = str_replace('[!-- IF '.$key.' --]', '', $xml);
635 635
 				// Remove everything between the ELSE tag (if it exists) and the ENDIF tag
636
-				$reg = '@(\[!--\sELSE\s' . preg_quote($key, '@') . '\s--\](.*))?\[!--\sENDIF\s' . preg_quote($key, '@') . '\s--\]@smU'; // U modifier = all quantifiers are non-greedy
636
+				$reg = '@(\[!--\sELSE\s'.preg_quote($key, '@').'\s--\](.*))?\[!--\sENDIF\s'.preg_quote($key, '@').'\s--\]@smU'; // U modifier = all quantifiers are non-greedy
637 637
 				$xml = preg_replace($reg, '', $xml);
638 638
 				/*if ($sav != $xml)
639 639
 				 {
@@ -646,7 +646,7 @@  discard block
 block discarded – undo
646 646
 				//dol_syslog("Var ".$key." is not defined, we remove the IF, ELSE and ENDIF ");
647 647
 				//$sav=$xml;
648 648
 				// Find all conditional blocks for this variable: from IF to ELSE and to ENDIF
649
-				$reg = '@\[!--\sIF\s' . preg_quote($key, '@') . '\s--\](.*)(\[!--\sELSE\s' . preg_quote($key, '@') . '\s--\](.*))?\[!--\sENDIF\s' . preg_quote($key, '@') . '\s--\]@smU'; // U modifier = all quantifiers are non-greedy
649
+				$reg = '@\[!--\sIF\s'.preg_quote($key, '@').'\s--\](.*)(\[!--\sELSE\s'.preg_quote($key, '@').'\s--\](.*))?\[!--\sENDIF\s'.preg_quote($key, '@').'\s--\]@smU'; // U modifier = all quantifiers are non-greedy
650 650
 				preg_match_all($reg, $xml, $matches, PREG_SET_ORDER);
651 651
 				foreach ($matches as $match) { // For each match, if there is an ELSE clause, we replace the whole block by the value in the ELSE clause
652 652
 					if (!empty($match[3])) $xml = str_replace($match[0], $match[3], $xml);
@@ -674,12 +674,12 @@  discard block
 block discarded – undo
674 674
 	 */
675 675
 	public function mergeSegment(Segment $segment)
676 676
 	{
677
-		if (! array_key_exists($segment->getName(), $this->segments)) {
678
-			throw new OdfException($segment->getName() . 'cannot be parsed, has it been set yet ?');
677
+		if (!array_key_exists($segment->getName(), $this->segments)) {
678
+			throw new OdfException($segment->getName().'cannot be parsed, has it been set yet ?');
679 679
 		}
680 680
 		$string = $segment->getName();
681 681
 		// $reg = '@<text:p[^>]*>\[!--\sBEGIN\s' . $string . '\s--\](.*)\[!--.+END\s' . $string . '\s--\]<\/text:p>@smU';
682
-		$reg = '@\[!--\sBEGIN\s' . $string . '\s--\](.*)\[!--.+END\s' . $string . '\s--\]@smU';
682
+		$reg = '@\[!--\sBEGIN\s'.$string.'\s--\](.*)\[!--.+END\s'.$string.'\s--\]@smU';
683 683
 		$this->contentXml = preg_replace($reg, $segment->getXmlParsed(), $this->contentXml);
684 684
 		return $this;
685 685
 	}
@@ -691,7 +691,7 @@  discard block
 block discarded – undo
691 691
 	 */
692 692
 	public function printVars()
693 693
 	{
694
-		return print_r('<pre>' . print_r($this->vars, true) . '</pre>', true);
694
+		return print_r('<pre>'.print_r($this->vars, true).'</pre>', true);
695 695
 	}
696 696
 
697 697
 	/**
@@ -712,7 +712,7 @@  discard block
 block discarded – undo
712 712
 	 */
713 713
 	public function printDeclaredSegments()
714 714
 	{
715
-		return '<pre>' . print_r(implode(' ', array_keys($this->segments)), true) . '</pre>';
715
+		return '<pre>'.print_r(implode(' ', array_keys($this->segments)), true).'</pre>';
716 716
 	}
717 717
 
718 718
 	/**
@@ -748,7 +748,7 @@  discard block
 block discarded – undo
748 748
 	{
749 749
 		if ($file !== null && is_string($file)) {
750 750
 			if (file_exists($file) && !(is_file($file) && is_writable($file))) {
751
-				throw new OdfException('Permission denied : can\'t create ' . $file);
751
+				throw new OdfException('Permission denied : can\'t create '.$file);
752 752
 			}
753 753
 			$this->_save();
754 754
 			copy($this->tmpfile, $file);
@@ -765,7 +765,7 @@  discard block
 block discarded – undo
765 765
 	 */
766 766
 	private function _save()
767 767
 	{
768
-		$res=$this->file->open($this->tmpfile);    // tmpfile is odt template
768
+		$res = $this->file->open($this->tmpfile); // tmpfile is odt template
769 769
 
770 770
 		$this->_parse('content');
771 771
 		$this->_parse('styles');
@@ -774,26 +774,26 @@  discard block
 block discarded – undo
774 774
 		$this->setMetaData();
775 775
 		//print $this->metaXml;exit;
776 776
 
777
-		if (! $this->file->addFromString('content.xml', $this->contentXml)) {
777
+		if (!$this->file->addFromString('content.xml', $this->contentXml)) {
778 778
 			throw new OdfException('Error during file export addFromString content');
779 779
 		}
780 780
 
781 781
 		// NOTE: After the first addFromString() that do the first $this->pclzip->delete, when using pclzip handler, the zip/oft file is corrupted (no way to edit it with Fileroller).
782 782
 
783
-		if (! $this->file->addFromString('meta.xml', $this->metaXml)) {
783
+		if (!$this->file->addFromString('meta.xml', $this->metaXml)) {
784 784
 			throw new OdfException('Error during file export addFromString meta');
785 785
 		}
786
-		if (! $this->file->addFromString('styles.xml', $this->stylesXml)) {
786
+		if (!$this->file->addFromString('styles.xml', $this->stylesXml)) {
787 787
 			throw new OdfException('Error during file export addFromString styles');
788 788
 		}
789 789
 
790 790
 		foreach ($this->images as $imageKey => $imageValue) {
791 791
 			// Add the image inside the ODT document
792
-			$this->file->addFile($imageKey, 'Pictures/' . $imageValue);
792
+			$this->file->addFile($imageKey, 'Pictures/'.$imageValue);
793 793
 			// Add the image to the Manifest (which maintains a list of images, necessary to avoid "Corrupt ODT file. Repair?" when opening the file with LibreOffice)
794 794
 			$this->addImageToManifest($imageValue);
795 795
 		}
796
-		if (! $this->file->addFromString('META-INF/manifest.xml', $this->manifestXml)) {
796
+		if (!$this->file->addFromString('META-INF/manifest.xml', $this->manifestXml)) {
797 797
 			throw new OdfException('Error during file export: manifest.xml');
798 798
 		}
799 799
 		$this->file->close();
@@ -807,7 +807,7 @@  discard block
 block discarded – undo
807 807
 	 */
808 808
 	public function setMetaData()
809 809
 	{
810
-		if (empty($this->creator)) $this->creator='';
810
+		if (empty($this->creator)) $this->creator = '';
811 811
 
812 812
 		$this->metaXml = preg_replace('/<dc:date>.*<\/dc:date>/', '<dc:date>'.gmdate("Y-m-d\TH:i:s").'</dc:date>', $this->metaXml);
813 813
 		$this->metaXml = preg_replace('/<dc:creator>.*<\/dc:creator>/', '<dc:creator>'.htmlspecialchars($this->creator).'</dc:creator>', $this->metaXml);
@@ -856,8 +856,8 @@  discard block
 block discarded – undo
856 856
 			throw new OdfException("headers already sent ($filename at $linenum)");
857 857
 		}
858 858
 
859
-		if ( $name == "" ) {
860
-			$name = md5(uniqid()) . ".odt";
859
+		if ($name == "") {
860
+			$name = md5(uniqid()).".odt";
861 861
 		}
862 862
 
863 863
 		header('Content-type: application/vnd.oasis.opendocument.text');
@@ -879,18 +879,18 @@  discard block
 block discarded – undo
879 879
 	{
880 880
 		global $conf;
881 881
 
882
-		if ( $name == "" ) $name = "temp".md5(uniqid());
882
+		if ($name == "") $name = "temp".md5(uniqid());
883 883
 
884 884
 		dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG);
885 885
 		$this->saveToDisk($name);
886 886
 
887
-		$execmethod = (getDolGlobalString('MAIN_EXEC_USE_POPEN') ? 2 : 1);	// 1 or 2
887
+		$execmethod = (getDolGlobalString('MAIN_EXEC_USE_POPEN') ? 2 : 1); // 1 or 2
888 888
 		// Method 1 sometimes hang the server.
889 889
 
890 890
 
891 891
 		// Export to PDF using LibreOffice
892 892
 		if (getDolGlobalString('MAIN_ODT_AS_PDF') == 'libreoffice') {
893
-			dol_mkdir($conf->user->dir_temp);	// We must be sure the directory exists and is writable
893
+			dol_mkdir($conf->user->dir_temp); // We must be sure the directory exists and is writable
894 894
 
895 895
 			// We delete and recreate a subdir because the soffice may have change pemrissions on it
896 896
 			$countdeleted = 0;
@@ -901,7 +901,7 @@  discard block
 block discarded – undo
901 901
 			// using windows libreoffice that must be in path
902 902
 			// using linux/mac libreoffice that must be in path
903 903
 			// Note PHP Config "fastcgi.impersonate=0" must set to 0 - Default is 1
904
-			$command ='soffice --headless -env:UserInstallation=file:'.(getDolGlobalString('MAIN_ODT_ADD_SLASH_FOR_WINDOWS') ? '///' : '').'\''.$conf->user->dir_temp.'/odtaspdf\' --convert-to pdf --outdir '. escapeshellarg(dirname($name)). " ".escapeshellarg($name);
904
+			$command = 'soffice --headless -env:UserInstallation=file:'.(getDolGlobalString('MAIN_ODT_ADD_SLASH_FOR_WINDOWS') ? '///' : '').'\''.$conf->user->dir_temp.'/odtaspdf\' --convert-to pdf --outdir '.escapeshellarg(dirname($name))." ".escapeshellarg($name);
905 905
 		} elseif (preg_match('/unoconv/', getDolGlobalString('MAIN_ODT_AS_PDF'))) {
906 906
 			// If issue with unoconv, see https://github.com/dagwieers/unoconv/issues/87
907 907
 
@@ -931,13 +931,13 @@  discard block
 block discarded – undo
931 931
 			//$command = '/usr/bin/unoconv -vvv '.escapeshellcmd($name);
932 932
 		} else {
933 933
 			// deprecated old method using odt2pdf.sh (native, jodconverter, ...)
934
-			$tmpname=preg_replace('/\.odt/i', '', $name);
934
+			$tmpname = preg_replace('/\.odt/i', '', $name);
935 935
 
936 936
 			if (getDolGlobalString('MAIN_DOL_SCRIPTS_ROOT')) {
937
-				$command = getDolGlobalString('MAIN_DOL_SCRIPTS_ROOT').'/scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($tmpname).' '.(is_numeric(getDolGlobalString('MAIN_ODT_AS_PDF'))?'jodconverter':getDolGlobalString('MAIN_ODT_AS_PDF'));
937
+				$command = getDolGlobalString('MAIN_DOL_SCRIPTS_ROOT').'/scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($tmpname).' '.(is_numeric(getDolGlobalString('MAIN_ODT_AS_PDF')) ? 'jodconverter' : getDolGlobalString('MAIN_ODT_AS_PDF'));
938 938
 			} else {
939 939
 				dol_syslog(get_class($this).'::exportAsAttachedPDF is used but the constant MAIN_DOL_SCRIPTS_ROOT with path to script directory was not defined.', LOG_WARNING);
940
-				$command = '../../scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($tmpname).' '.(is_numeric(getDolGlobalString('MAIN_ODT_AS_PDF'))?'jodconverter':getDolGlobalString('MAIN_ODT_AS_PDF'));
940
+				$command = '../../scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($tmpname).' '.(is_numeric(getDolGlobalString('MAIN_ODT_AS_PDF')) ? 'jodconverter' : getDolGlobalString('MAIN_ODT_AS_PDF'));
941 941
 			}
942 942
 		}
943 943
 
@@ -950,14 +950,14 @@  discard block
 block discarded – undo
950 950
 		// $result = $utils->executeCLI($command, $outputfile);  and replace test on $execmethod.
951 951
 		// $retval will be $result['result']
952 952
 		// $errorstring will be $result['output']
953
-		$retval=0; $output_arr=array();
953
+		$retval = 0; $output_arr = array();
954 954
 		if ($execmethod == 1) {
955 955
 			exec($command, $output_arr, $retval);
956 956
 		}
957 957
 		if ($execmethod == 2) {
958 958
 			$outputfile = DOL_DATA_ROOT.'/odt2pdf.log';
959 959
 
960
-			$ok=0;
960
+			$ok = 0;
961 961
 			$handle = fopen($outputfile, 'w');
962 962
 			if ($handle) {
963 963
 				dol_syslog(get_class($this)."Run command ".$command, LOG_DEBUG);
@@ -966,7 +966,7 @@  discard block
 block discarded – undo
966 966
 				while (!feof($handlein)) {
967 967
 					$read = fgets($handlein);
968 968
 					fwrite($handle, $read);
969
-					$output_arr[]=$read;
969
+					$output_arr[] = $read;
970 970
 				}
971 971
 				pclose($handlein);
972 972
 				fclose($handle);
@@ -976,7 +976,7 @@  discard block
 block discarded – undo
976 976
 
977 977
 		if ($retval == 0) {
978 978
 			dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
979
-			$filename=''; $linenum=0;
979
+			$filename = ''; $linenum = 0;
980 980
 
981 981
 			if ($dooutputfordownload) {
982 982
 				if (php_sapi_name() != 'cli') {    // If we are in a web context (not into CLI context)
@@ -987,8 +987,8 @@  discard block
 block discarded – undo
987 987
 					if (getDolGlobalString('MAIN_DISABLE_PDF_AUTOUPDATE')) {
988 988
 						$name = preg_replace('/\.od(x|t)/i', '', $name);
989 989
 						header('Content-type: application/pdf');
990
-						header('Content-Disposition: attachment; filename="' . basename($name) . '.pdf"');
991
-						readfile($name . ".pdf");
990
+						header('Content-Disposition: attachment; filename="'.basename($name).'.pdf"');
991
+						readfile($name.".pdf");
992 992
 					}
993 993
 				}
994 994
 			}
@@ -1001,13 +1001,13 @@  discard block
 block discarded – undo
1001 1001
 			dol_syslog(get_class($this).'::exportAsAttachedPDF $output_arr='.var_export($output_arr, true), LOG_DEBUG);
1002 1002
 
1003 1003
 			if ($retval == 126) {
1004
-				throw new OdfException('Permission execute convert script : ' . $command);
1004
+				throw new OdfException('Permission execute convert script : '.$command);
1005 1005
 			} else {
1006
-				$errorstring='';
1006
+				$errorstring = '';
1007 1007
 				foreach ($output_arr as $line) {
1008
-					$errorstring.= $line."<br>";
1008
+					$errorstring .= $line."<br>";
1009 1009
 				}
1010
-				throw new OdfException('ODT to PDF convert fail (option MAIN_ODT_AS_PDF is '.$conf->global->MAIN_ODT_AS_PDF.', command was '.$command.', retval='.$retval.') : ' . $errorstring);
1010
+				throw new OdfException('ODT to PDF convert fail (option MAIN_ODT_AS_PDF is '.$conf->global->MAIN_ODT_AS_PDF.', command was '.$command.', retval='.$retval.') : '.$errorstring);
1011 1011
 			}
1012 1012
 		}
1013 1013
 	}
@@ -1064,11 +1064,11 @@  discard block
 block discarded – undo
1064 1064
 		if ($handle = opendir($dir)) {
1065 1065
 			while (($file = readdir($handle)) !== false) {
1066 1066
 				if ($file != '.' && $file != '..') {
1067
-					if (is_dir($dir . '/' . $file)) {
1068
-						$this->_rrmdir($dir . '/' . $file);
1069
-						rmdir($dir . '/' . $file);
1067
+					if (is_dir($dir.'/'.$file)) {
1068
+						$this->_rrmdir($dir.'/'.$file);
1069
+						rmdir($dir.'/'.$file);
1070 1070
 					} else {
1071
-						unlink($dir . '/' . $file);
1071
+						unlink($dir.'/'.$file);
1072 1072
 					}
1073 1073
 				}
1074 1074
 			}
@@ -1084,7 +1084,7 @@  discard block
 block discarded – undo
1084 1084
 	 */
1085 1085
 	public function getvalue($valuename)
1086 1086
 	{
1087
-		$searchreg="/\\[".$valuename."\\](.*)\\[\\/".$valuename."\\]/";
1087
+		$searchreg = "/\\[".$valuename."\\](.*)\\[\\/".$valuename."\\]/";
1088 1088
 		$matches = array();
1089 1089
 		preg_match($searchreg, $this->contentXml, $matches);
1090 1090
 		$this->contentXml = preg_replace($searchreg, "", $this->contentXml);
Please login to merge, or discard this patch.
Braces   +31 added lines, -11 removed lines patch added patch discarded remove patch
@@ -116,7 +116,10 @@  discard block
 block discarded – undo
116 116
 		}
117 117
 
118 118
 		$md5uniqid = md5(uniqid());
119
-		if ($this->config['PATH_TO_TMP']) $this->tmpdir = preg_replace('|[\/]$|', '', $this->config['PATH_TO_TMP']);	// Remove last \ or /
119
+		if ($this->config['PATH_TO_TMP']) {
120
+			$this->tmpdir = preg_replace('|[\/]$|', '', $this->config['PATH_TO_TMP']);
121
+		}
122
+		// Remove last \ or /
120 123
 		$this->tmpdir .= ($this->tmpdir?'/':'').$md5uniqid;
121 124
 		$this->tmpfile = $this->tmpdir.'/'.$md5uniqid.'.odt';	// We keep .odt extension to allow OpenOffice usage during debug.
122 125
 
@@ -138,7 +141,9 @@  discard block
 block discarded – undo
138 141
 		// Load zip proxy
139 142
 		$zipHandler = $this->config['ZIP_PROXY'];
140 143
 
141
-		if (!defined('PCLZIP_TEMPORARY_DIR')) define('PCLZIP_TEMPORARY_DIR', $this->tmpdir);
144
+		if (!defined('PCLZIP_TEMPORARY_DIR')) {
145
+			define('PCLZIP_TEMPORARY_DIR', $this->tmpdir);
146
+		}
142 147
 
143 148
 		include_once 'zip/'.$zipHandler.'.php';
144 149
 		if (! class_exists($this->config['ZIP_PROXY'])) {
@@ -284,8 +289,12 @@  discard block
 block discarded – undo
284 289
 	 */
285 290
 	private function _replaceHtmlWithOdtTag($tags, &$customStyles, &$fontDeclarations, $encode = false, $charset = '')
286 291
 	{
287
-		if ($customStyles == null) $customStyles = array();
288
-		if ($fontDeclarations == null) $fontDeclarations = array();
292
+		if ($customStyles == null) {
293
+			$customStyles = array();
294
+		}
295
+		if ($fontDeclarations == null) {
296
+			$fontDeclarations = array();
297
+		}
289 298
 
290 299
 		$odtResult = '';
291 300
 
@@ -607,10 +616,15 @@  discard block
 block discarded – undo
607 616
 	 */
608 617
 	private function _parse($type = 'content')
609 618
 	{
610
-		if ($type == 'content') $xml = &$this->contentXml;
611
-		elseif ($type == 'styles') $xml = &$this->stylesXml;
612
-		elseif ($type == 'meta') $xml = &$this->metaXml;
613
-		else return;
619
+		if ($type == 'content') {
620
+			$xml = &$this->contentXml;
621
+		} elseif ($type == 'styles') {
622
+			$xml = &$this->stylesXml;
623
+		} elseif ($type == 'meta') {
624
+			$xml = &$this->metaXml;
625
+		} else {
626
+			return;
627
+		}
614 628
 
615 629
 		// Search all tags found into condition to complete $this->vars, so we will proceed all tests even if not defined
616 630
 		$reg='@\[!--\sIF\s([\[\]{}a-zA-Z0-9\.\,_]+)\s--\]@smU';
@@ -649,7 +663,9 @@  discard block
 block discarded – undo
649 663
 				$reg = '@\[!--\sIF\s' . preg_quote($key, '@') . '\s--\](.*)(\[!--\sELSE\s' . preg_quote($key, '@') . '\s--\](.*))?\[!--\sENDIF\s' . preg_quote($key, '@') . '\s--\]@smU'; // U modifier = all quantifiers are non-greedy
650 664
 				preg_match_all($reg, $xml, $matches, PREG_SET_ORDER);
651 665
 				foreach ($matches as $match) { // For each match, if there is an ELSE clause, we replace the whole block by the value in the ELSE clause
652
-					if (!empty($match[3])) $xml = str_replace($match[0], $match[3], $xml);
666
+					if (!empty($match[3])) {
667
+						$xml = str_replace($match[0], $match[3], $xml);
668
+					}
653 669
 				}
654 670
 				// Cleanup the other conditional blocks (all the others where there were no ELSE clause, we can just remove them altogether)
655 671
 				$xml = preg_replace($reg, '', $xml);
@@ -807,7 +823,9 @@  discard block
 block discarded – undo
807 823
 	 */
808 824
 	public function setMetaData()
809 825
 	{
810
-		if (empty($this->creator)) $this->creator='';
826
+		if (empty($this->creator)) {
827
+			$this->creator='';
828
+		}
811 829
 
812 830
 		$this->metaXml = preg_replace('/<dc:date>.*<\/dc:date>/', '<dc:date>'.gmdate("Y-m-d\TH:i:s").'</dc:date>', $this->metaXml);
813 831
 		$this->metaXml = preg_replace('/<dc:creator>.*<\/dc:creator>/', '<dc:creator>'.htmlspecialchars($this->creator).'</dc:creator>', $this->metaXml);
@@ -879,7 +897,9 @@  discard block
 block discarded – undo
879 897
 	{
880 898
 		global $conf;
881 899
 
882
-		if ( $name == "" ) $name = "temp".md5(uniqid());
900
+		if ( $name == "" ) {
901
+			$name = "temp".md5(uniqid());
902
+		}
883 903
 
884 904
 		dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG);
885 905
 		$this->saveToDisk($name);
Please login to merge, or discard this patch.
htdocs/includes/odtphp/zip/PhpZipProxy.php 2 patches
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -17,11 +17,11 @@
 block discarded – undo
17 17
 {
18 18
 	protected $zipArchive;
19 19
 	protected $filename;
20
-    /**
21
-     * Class constructor
22
-     *
23
-     * @throws PhpZipProxyException
24
-     */
20
+	/**
21
+	 * Class constructor
22
+	 *
23
+	 * @throws PhpZipProxyException
24
+	 */
25 25
 	public function __construct()
26 26
 	{
27 27
 		if (! class_exists('ZipArchive')) {
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -24,7 +24,7 @@
 block discarded – undo
24 24
      */
25 25
 	public function __construct()
26 26
 	{
27
-		if (! class_exists('ZipArchive')) {
27
+		if (!class_exists('ZipArchive')) {
28 28
 			throw new PhpZipProxyException('Zip extension not loaded - check your php settings, PHP5.2 minimum with zip extension
29 29
 			 is required for using PhpZipProxy'); ;
30 30
 		}
Please login to merge, or discard this patch.
htdocs/includes/odtphp/zip/PclZipProxy.php 1 patch
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if (! defined('ODTPHP_PATHTOPCLZIP')) {
2
+if (!defined('ODTPHP_PATHTOPCLZIP')) {
3 3
 	define('ODTPHP_PATHTOPCLZIP', DOL_DOCUMENT_ROOT.'/includes/odtphp/zip/pclzip/');
4 4
 }
5 5
 require_once ODTPHP_PATHTOPCLZIP.'pclzip.lib.php';
@@ -28,13 +28,13 @@  discard block
 block discarded – undo
28 28
      *
29 29
      * @throws PclZipProxyException
30 30
      */
31
-	public function __construct($forcedir='')
31
+	public function __construct($forcedir = '')
32 32
 	{
33
-		if (! class_exists('PclZip')) {
33
+		if (!class_exists('PclZip')) {
34 34
 			throw new PclZipProxyException('PclZip class not loaded - PclZip library
35 35
 			 is required for using PclZipProxy'); ;
36 36
 		}
37
-		if ($forcedir) $this->tmpdir=preg_replace('|[//\/]$|','',$forcedir);	// $this->tmpdir must not contains / at the end
37
+		if ($forcedir) $this->tmpdir = preg_replace('|[//\/]$|', '', $forcedir); // $this->tmpdir must not contains / at the end
38 38
 	}
39 39
 
40 40
 	/**
@@ -92,11 +92,11 @@  discard block
 block discarded – undo
92 92
 
93 93
 		$localname = preg_replace("/(?:\.|\/)*(.*)/", "\\1", $localname);
94 94
 		$localpath = dirname($localname);
95
-		$tmpfilename = $this->tmpdir . '/' . basename($localname);
95
+		$tmpfilename = $this->tmpdir.'/'.basename($localname);
96 96
 		if (false !== file_put_contents($tmpfilename, $contents)) {
97 97
 			//print "tmpfilename=".$tmpfilename;
98 98
 			//print "localname=".$localname;
99
-			$res = $this->pclzip->delete(PCLZIP_OPT_BY_NAME, $localname);		// after this with pclzip handler, the odt/zip file is ocrrupted. No way to edit the zip with file roller.
99
+			$res = $this->pclzip->delete(PCLZIP_OPT_BY_NAME, $localname); // after this with pclzip handler, the odt/zip file is ocrrupted. No way to edit the zip with file roller.
100 100
 			$add = $this->pclzip->add($tmpfilename,
101 101
 				PCLZIP_OPT_REMOVE_PATH, $this->tmpdir,
102 102
 				PCLZIP_OPT_ADD_PATH, $localpath);
@@ -127,10 +127,10 @@  discard block
 block discarded – undo
127 127
 		if (isSet($localname)) {
128 128
 			$localname = preg_replace("/(?:\.|\/)*(.*)/", "\\1", $localname);
129 129
 			$localpath = dirname($localname);
130
-			$tmpfilename = $this->tmpdir . '/' . basename($localname);
130
+			$tmpfilename = $this->tmpdir.'/'.basename($localname);
131 131
 		} else {
132 132
 			$localname = basename($filename);
133
-			$tmpfilename = $this->tmpdir . '/' . $localname;
133
+			$tmpfilename = $this->tmpdir.'/'.$localname;
134 134
 			$localpath = '';
135 135
 		}
136 136
 		if (file_exists($filename)) {
Please login to merge, or discard this patch.
htdocs/admin/tools/export.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -135,7 +135,7 @@
 block discarded – undo
135 135
 		if (!dol_is_file($cmddump)) {									// And if file not reachable with its full path
136 136
 			$reg = array();
137 137
 			if (preg_match('/mysqldump(\.exe)?$/', $cmddump, $reg)) {	// And if command ends with mysqldump
138
-				$cmddump = 'mysqldump'.(empty($reg[1]) ? '' : $reg[1]);	// Then we try the command with no forced path
138
+				$cmddump = 'mysqldump'.(empty($reg[1]) ? '' : $reg[1]); // Then we try the command with no forced path
139 139
 			}
140 140
 		}
141 141
 	}
Please login to merge, or discard this patch.