From b5f71317b7ece6bfef348573d8bfdae13bc45594 Mon Sep 17 00:00:00 2001 From: Jeroen Moors Date: Mon, 16 Dec 2013 17:24:46 +0100 Subject: [PATCH] Create table rows on the fly with cloneRow() when using templates. --- Classes/PHPWord/Template.php | 29 ++++++++++++++++++++ samples/Sample_03_TemplateCloneRow.docx | Bin 0 -> 17543 bytes samples/Sample_03_TemplateCloneRow.php | 35 ++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 samples/Sample_03_TemplateCloneRow.docx create mode 100755 samples/Sample_03_TemplateCloneRow.php diff --git a/Classes/PHPWord/Template.php b/Classes/PHPWord/Template.php index eb6e42d2..3adb44a4 100755 --- a/Classes/PHPWord/Template.php +++ b/Classes/PHPWord/Template.php @@ -121,6 +121,35 @@ class PHPWord_Template preg_match_all('/\$\{(.*?)}/i', $this->_documentXML, $matches); return $matches[1]; } + + /** + * Clone a table row in a template document + * + * @param mixed $search + * @param mixed $numberOfClones + */ + public function cloneRow($search, $numberOfClones) { + if(substr($search, 0, 2) !== '${' && substr($search, -1) !== '}') { + $search = '${'.$search.'}'; + } + + $tagPos = strpos($this->_documentXML, $search); + if (!$tagPos) { + trigger_error("Can not clone row, template variable not found or variable contains markup."); + return false; + } + $rowStartPos = strrpos($this->_documentXML, "_documentXML) - $tagPos) * -1)); + $rowEndPos = strpos($this->_documentXML, "", $tagPos) + 7; + + $result = substr($this->_documentXML, 0, $rowStartPos); + $xmlRow = substr($this->_documentXML, $rowStartPos, ($rowEndPos - $rowStartPos)); + for ($i = 1; $i <= $numberOfClones; $i++) { + $result .= preg_replace('/\$\{(.*?)\}/','\${\\1#'.$i.'}', $xmlRow); + } + $result .= substr($this->_documentXML, $rowEndPos); + + $this->_documentXML = $result; + } /** * Save Template diff --git a/samples/Sample_03_TemplateCloneRow.docx b/samples/Sample_03_TemplateCloneRow.docx new file mode 100644 index 0000000000000000000000000000000000000000..909f27abfef13543ebc734fed015c7ca2978456e GIT binary patch literal 17543 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 zllPAcumFArloadTemplate('Sample_03_TemplateCloneRow.docx'); + +$document->cloneRow('rowValue', 10); + +$document->setValue('rowValue#1', 'Sun'); +$document->setValue('rowValue#2', 'Mercury'); +$document->setValue('rowValue#3', 'Venus'); +$document->setValue('rowValue#4', 'Earth'); +$document->setValue('rowValue#5', 'Mars'); +$document->setValue('rowValue#6', 'Jupiter'); +$document->setValue('rowValue#7', 'Saturn'); +$document->setValue('rowValue#8', 'Uranus'); +$document->setValue('rowValue#9', 'Neptun'); +$document->setValue('rowValue#10', 'Pluto'); + +$document->setValue('rowNumber#1', '1'); +$document->setValue('rowNumber#2', '2'); +$document->setValue('rowNumber#3', '3'); +$document->setValue('rowNumber#4', '4'); +$document->setValue('rowNumber#5', '5'); +$document->setValue('rowNumber#6', '6'); +$document->setValue('rowNumber#7', '7'); +$document->setValue('rowNumber#8', '8'); +$document->setValue('rowNumber#9', '9'); +$document->setValue('rowNumber#10', '10'); + +$document->setValue('weekday', date('l')); +$document->setValue('time', date('H:i')); + +$document->save('SolarsystemRepeatingRows.docx');