From b23024212709ee9d91e0403b20e03a5f74209f9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bc=2E=20=C5=A0tefan=20Kubini?= Date: Tue, 5 Nov 2019 10:46:24 +0100 Subject: [PATCH 1/2] fixed List item fail #1711 --- .../Writer/HTML/Element/ListItemRun.php | 50 +++++++++++++++++++ tests/PhpWord/Writer/HTML/ElementTest.php | 2 +- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/PhpWord/Writer/HTML/Element/ListItemRun.php diff --git a/src/PhpWord/Writer/HTML/Element/ListItemRun.php b/src/PhpWord/Writer/HTML/Element/ListItemRun.php new file mode 100644 index 0000000000..6842b23941 --- /dev/null +++ b/src/PhpWord/Writer/HTML/Element/ListItemRun.php @@ -0,0 +1,50 @@ +element instanceof \PhpOffice\PhpWord\Element\ListItemRun) { + return ''; + } + + $writer = new Container($this->parentWriter, $this->element); + + if (Settings::isOutputEscapingEnabled()) { + $content = '

' . $this->escaper->escapeHtml($writer->write()) . '

' . PHP_EOL; + } else { + $content = '

' . $writer->write() . '

' . PHP_EOL; + } + + return $content; + } +} diff --git a/tests/PhpWord/Writer/HTML/ElementTest.php b/tests/PhpWord/Writer/HTML/ElementTest.php index 101e226f50..c8ee4b2650 100644 --- a/tests/PhpWord/Writer/HTML/ElementTest.php +++ b/tests/PhpWord/Writer/HTML/ElementTest.php @@ -34,7 +34,7 @@ class ElementTest extends \PHPUnit\Framework\TestCase */ public function testUnmatchedElements() { - $elements = array('Container', 'Footnote', 'Image', 'Link', 'ListItem', 'Table', 'Title', 'Bookmark'); + $elements = array('Container', 'Footnote', 'Image', 'Link', 'ListItem', 'ListItemRun', 'Table', 'Title', 'Bookmark'); foreach ($elements as $element) { $objectClass = 'PhpOffice\\PhpWord\\Writer\\HTML\\Element\\' . $element; $parentWriter = new HTML(); From 1451fadc4ad1cecad3c567b9b7bea049cec71b87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bc=2E=20=C5=A0tefan=20Kubini?= Date: Thu, 28 Nov 2019 23:33:10 +0100 Subject: [PATCH 2/2] Add List for docx to html writer #1717 --- .../Writer/HTML/Element/ListItemRun.php | 11 ++------ tests/PhpWord/Writer/HTML/ElementTest.php | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/PhpWord/Writer/HTML/Element/ListItemRun.php b/src/PhpWord/Writer/HTML/Element/ListItemRun.php index 6842b23941..a4d7e46073 100644 --- a/src/PhpWord/Writer/HTML/Element/ListItemRun.php +++ b/src/PhpWord/Writer/HTML/Element/ListItemRun.php @@ -17,14 +17,12 @@ namespace PhpOffice\PhpWord\Writer\HTML\Element; -use PhpOffice\PhpWord\Settings; - /** * ListItem element HTML writer * * @since 0.10.0 */ -class ListItemRun extends ListItem +class ListItemRun extends TextRun { /** * Write list item @@ -38,12 +36,7 @@ public function write() } $writer = new Container($this->parentWriter, $this->element); - - if (Settings::isOutputEscapingEnabled()) { - $content = '

' . $this->escaper->escapeHtml($writer->write()) . '

' . PHP_EOL; - } else { - $content = '

' . $writer->write() . '

' . PHP_EOL; - } + $content = $writer->write() . PHP_EOL; return $content; } diff --git a/tests/PhpWord/Writer/HTML/ElementTest.php b/tests/PhpWord/Writer/HTML/ElementTest.php index c8ee4b2650..4eb92fe557 100644 --- a/tests/PhpWord/Writer/HTML/ElementTest.php +++ b/tests/PhpWord/Writer/HTML/ElementTest.php @@ -163,6 +163,31 @@ public function testWriteTitleTextRun() $this->assertContains($expected, $content); } + /** + * Test write element ListItemRun + */ + public function testListItemRun() + { + $expected1 = 'List item run 1'; + $expected2 = 'List item run 1 in bold'; + + $phpWord = new PhpWord(); + $section = $phpWord->addSection(); + + $listItemRun = $section->addListItemRun(0, null, 'MyParagraphStyle'); + $listItemRun->addText($expected1); + $listItemRun->addText($expected2, array('bold' => true)); + + $htmlWriter = new HTML($phpWord); + $content = $htmlWriter->getContent(); + + $dom = new \DOMDocument(); + $dom->loadHTML($content); + + $this->assertEquals($expected1, $dom->getElementsByTagName('p')->item(0)->textContent); + $this->assertEquals($expected2, $dom->getElementsByTagName('p')->item(1)->textContent); + } + /** * Tests writing table with layout */