From f51422ad8dbd212fc91932b509180fd31988f800 Mon Sep 17 00:00:00 2001 From: Phil Betley Date: Wed, 15 Jun 2016 14:46:07 -0400 Subject: [PATCH 1/2] add variable indexing for block cloning Use the same functionality from cloneRow to index variables inside cloned block sections --- src/PhpWord/TemplateProcessor.php | 27 +++++++++++++----- tests/PhpWord/TemplateProcessorTest.php | 3 +- .../_files/templates/clone-delete-block.docx | Bin 22510 -> 17676 bytes 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/PhpWord/TemplateProcessor.php b/src/PhpWord/TemplateProcessor.php index 5f131901..90e9f4e6 100644 --- a/src/PhpWord/TemplateProcessor.php +++ b/src/PhpWord/TemplateProcessor.php @@ -274,9 +274,7 @@ class TemplateProcessor } $result = $this->getSlice(0, $rowStart); - for ($i = 1; $i <= $numberOfClones; $i++) { - $result .= preg_replace('/\$\{(.*?)\}/', '\${\\1#' . $i . '}', $xmlRow); - } + $result .= implode($this->indexClonedVariables($numberOfClones, $xmlRow)); $result .= $this->getSlice($rowEnd); $this->tempDocumentMainPart = $result; @@ -302,10 +300,7 @@ class TemplateProcessor if (isset($matches[3])) { $xmlBlock = $matches[3]; - $cloned = array(); - for ($i = 1; $i <= $clones; $i++) { - $cloned[] = $xmlBlock; - } + $cloned = $this->indexClonedVariables($clones, $xmlBlock); if ($replace) { $this->tempDocumentMainPart = str_replace( @@ -545,4 +540,22 @@ class TemplateProcessor return substr($this->tempDocumentMainPart, $startPosition, ($endPosition - $startPosition)); } + + /** + * Replaces variable names in cloned + * rows/blocks with indexed names + * + * @param integer $count + * @param string $xmlBlock + * + * @return string + */ + protected function indexClonedVariables($count, $xmlBlock) + { + $results = []; + for ($i = 1; $i <= $count; $i++) { + $results[] = preg_replace('/\$\{(.*?)\}/', '\${\\1#' . $i . '}', $xmlBlock); + } + return $results; + } } diff --git a/tests/PhpWord/TemplateProcessorTest.php b/tests/PhpWord/TemplateProcessorTest.php index c5a4b1a3..bd9455f6 100644 --- a/tests/PhpWord/TemplateProcessorTest.php +++ b/tests/PhpWord/TemplateProcessorTest.php @@ -199,13 +199,14 @@ final class TemplateProcessorTest extends \PHPUnit_Framework_TestCase $templateProcessor = new TemplateProcessor(__DIR__ . '/_files/templates/clone-delete-block.docx'); $this->assertEquals( - array('DELETEME', '/DELETEME', 'CLONEME', '/CLONEME'), + array('DELETEME', '/DELETEME', 'CLONEME', 'blockVariable', '/CLONEME'), $templateProcessor->getVariables() ); $docName = 'clone-delete-block-result.docx'; $templateProcessor->cloneBlock('CLONEME', 3); $templateProcessor->deleteBlock('DELETEME'); + $templateProcessor->setValue('blockVariable#3', 'Test'); $templateProcessor->saveAs($docName); $docFound = file_exists($docName); unlink($docName); diff --git a/tests/PhpWord/_files/templates/clone-delete-block.docx b/tests/PhpWord/_files/templates/clone-delete-block.docx index 049d5ca415074504f33050b94f3918c06a280720..986742e369258f906b7771c107e9c6943273b0e8 100644 GIT binary patch literal 17676 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 R008^>C;lnvmHdCa`ajLP=FR{B literal 22510 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 bpN9Y4yI7jikW7? Date: Thu, 16 Jun 2016 08:54:24 -0400 Subject: [PATCH 2/2] 5.3 array syntax --- src/PhpWord/TemplateProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpWord/TemplateProcessor.php b/src/PhpWord/TemplateProcessor.php index 90e9f4e6..aafe63cd 100644 --- a/src/PhpWord/TemplateProcessor.php +++ b/src/PhpWord/TemplateProcessor.php @@ -552,7 +552,7 @@ class TemplateProcessor */ protected function indexClonedVariables($count, $xmlBlock) { - $results = []; + $results = array(); for ($i = 1; $i <= $count; $i++) { $results[] = preg_replace('/\$\{(.*?)\}/', '\${\\1#' . $i . '}', $xmlBlock); }