fix nested list

This commit is contained in:
troosan 2018-02-08 07:02:28 +01:00
parent 33739ea21c
commit 304173c4d7
2 changed files with 18 additions and 2 deletions

View File

@ -93,6 +93,13 @@ abstract class AbstractElement
*/
private $nestedLevel = 0;
/**
* A reference to the parent
*
* @var \PhpOffice\PhpWord\Element\AbstractElement
*/
private $parent;
/**
* Parent container type
*
@ -321,6 +328,11 @@ abstract class AbstractElement
$this->commentRangeEnd->setEndElement($this);
}
public function getParent()
{
return $this->parent;
}
/**
* Set parent container
*
@ -331,6 +343,7 @@ abstract class AbstractElement
public function setParentContainer(AbstractElement $container)
{
$this->parentContainer = substr(get_class($container), strrpos(get_class($container), '\\') + 1);
$this->parent = $container;
// Set nested level
$this->nestedLevel = $container->getNestedLevel();

View File

@ -366,7 +366,7 @@ class Html
*/
private static function shouldAddTextRun(\DOMNode $node)
{
$containsBlockElement = self::$xpath->query('.//table|./p|./ul|./li', $node)->length > 0;
$containsBlockElement = self::$xpath->query('.//table|./p|./ul|./ol', $node)->length > 0;
if ($containsBlockElement) {
return false;
}
@ -402,7 +402,7 @@ class Html
*/
private static function parseList($node, $element, &$styles, &$data)
{
$isOrderedList = $node->nodeName == 'ol';
$isOrderedList = $node->nodeName === 'ol';
if (isset($data['listdepth'])) {
$data['listdepth']++;
} else {
@ -410,6 +410,9 @@ class Html
$styles['list'] = 'listStyle_' . self::$listIndex++;
$element->getPhpWord()->addNumberingStyle($styles['list'], self::getListStyle($isOrderedList));
}
if ($node->parentNode->nodeName === 'li') {
return $element->getParent();
}
}
private static function getListStyle($isOrderedList)