From a5ec49d99dd3783571b9e477ecc24583cd194bf9 Mon Sep 17 00:00:00 2001 From: Daniel Morris Date: Wed, 26 Dec 2018 21:45:32 +0200 Subject: [PATCH 1/3] Add plain text SDT type --- src/PhpWord/Element/SDT.php | 2 +- src/PhpWord/Writer/Word2007/Element/SDT.php | 12 ++++++++++++ tests/PhpWord/Element/SDTTest.php | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/PhpWord/Element/SDT.php b/src/PhpWord/Element/SDT.php index a866d1bd..5548f768 100644 --- a/src/PhpWord/Element/SDT.php +++ b/src/PhpWord/Element/SDT.php @@ -90,7 +90,7 @@ class SDT extends Text */ public function setType($value) { - $enum = array('comboBox', 'dropDownList', 'date'); + $enum = array('plainText', 'comboBox', 'dropDownList', 'date'); $this->type = $this->setEnumVal($value, $enum, 'comboBox'); return $this; diff --git a/src/PhpWord/Writer/Word2007/Element/SDT.php b/src/PhpWord/Writer/Word2007/Element/SDT.php index 21020a0f..fc1540b9 100644 --- a/src/PhpWord/Writer/Word2007/Element/SDT.php +++ b/src/PhpWord/Writer/Word2007/Element/SDT.php @@ -73,6 +73,18 @@ class SDT extends Text $this->endElementP(); // w:p } + /** + * Write text. + * + * @see http://www.datypic.com/sc/ooxml/t-w_CT_SdtText.html + * @param \PhpOffice\Common\XMLWriter $xmlWriter + * @param \PhpOffice\PhpWord\Element\SDT $element + */ + private function writePlainText(XMLWriter $xmlWriter, SDTElement $element) + { + $xmlWriter->startElement("w:text"); + $xmlWriter->endElement(); // w:{$type} + } /** * Write combo box. * diff --git a/tests/PhpWord/Element/SDTTest.php b/tests/PhpWord/Element/SDTTest.php index 6e40bae0..2328dd76 100644 --- a/tests/PhpWord/Element/SDTTest.php +++ b/tests/PhpWord/Element/SDTTest.php @@ -29,8 +29,8 @@ class SDTTest extends \PHPUnit\Framework\TestCase */ public function testConstruct() { - $types = array('comboBox', 'dropDownList', 'date'); - $type = $types[rand(0, 2)]; + $types = array('plainText', 'comboBox', 'dropDownList', 'date'); + $type = $types[rand(0, 3)]; $value = rand(0, 100); $alias = 'alias'; $tag = 'my_tag'; From d84da93a362ffb58aceb80c2b9f319a9c0b9315b Mon Sep 17 00:00:00 2001 From: troosan Date: Wed, 26 Dec 2018 22:50:19 +0100 Subject: [PATCH 2/3] Add test and fix warnings --- src/PhpWord/Writer/Word2007/Element/SDT.php | 8 ++++---- tests/PhpWord/Writer/Word2007/ElementTest.php | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/PhpWord/Writer/Word2007/Element/SDT.php b/src/PhpWord/Writer/Word2007/Element/SDT.php index fc1540b9..edf89b53 100644 --- a/src/PhpWord/Writer/Word2007/Element/SDT.php +++ b/src/PhpWord/Writer/Word2007/Element/SDT.php @@ -78,13 +78,13 @@ class SDT extends Text * * @see http://www.datypic.com/sc/ooxml/t-w_CT_SdtText.html * @param \PhpOffice\Common\XMLWriter $xmlWriter - * @param \PhpOffice\PhpWord\Element\SDT $element */ - private function writePlainText(XMLWriter $xmlWriter, SDTElement $element) + private function writePlainText(XMLWriter $xmlWriter) { - $xmlWriter->startElement("w:text"); - $xmlWriter->endElement(); // w:{$type} + $xmlWriter->startElement('w:text'); + $xmlWriter->endElement(); // w:text } + /** * Write combo box. * diff --git a/tests/PhpWord/Writer/Word2007/ElementTest.php b/tests/PhpWord/Writer/Word2007/ElementTest.php index dc75a335..703f4590 100644 --- a/tests/PhpWord/Writer/Word2007/ElementTest.php +++ b/tests/PhpWord/Writer/Word2007/ElementTest.php @@ -387,6 +387,7 @@ class ElementTest extends \PHPUnit\Framework\TestCase $section->addSDT('comboBox')->setListItems(array('1' => 'Choice 1', '2' => 'Choice 2'))->setValue('select value'); $section->addSDT('dropDownList'); $section->addSDT('date')->setAlias('date_alias')->setTag('my_tag'); + $section->addSDT('plainText'); $doc = TestHelperDOCX::getDocument($phpWord); @@ -405,6 +406,8 @@ class ElementTest extends \PHPUnit\Framework\TestCase $this->assertTrue($doc->elementExists($path . '[3]/w:sdt/w:sdtPr/w:date')); $this->assertTrue($doc->elementExists($path . '[3]/w:sdt/w:sdtPr/w:alias')); $this->assertTrue($doc->elementExists($path . '[3]/w:sdt/w:sdtPr/w:tag')); + + $this->assertTrue($doc->elementExists($path . '[4]/w:sdt/w:sdtPr/w:text')); } /** From dcf637df5a03235d86699b198399f1774a1f5167 Mon Sep 17 00:00:00 2001 From: troosan Date: Wed, 26 Dec 2018 22:53:49 +0100 Subject: [PATCH 3/3] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c2c73ef..70d2f392 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ v0.16.0 (xx dec 2018) - Add ability to pass a Style object in Section constructor @ndench #1416 - Add support for hidden text @Alexmg86 #1527 - Add support for setting images in TemplateProcessor @SailorMax #1170 +- Add "Plain Text" type to SDT (Structured Document Tags) @morrisdj #1541 ### Fixed - Fix regex in `cloneBlock` function @nicoder #1269