fix nested list
This commit is contained in:
parent
33739ea21c
commit
304173c4d7
|
|
@ -93,6 +93,13 @@ abstract class AbstractElement
|
||||||
*/
|
*/
|
||||||
private $nestedLevel = 0;
|
private $nestedLevel = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A reference to the parent
|
||||||
|
*
|
||||||
|
* @var \PhpOffice\PhpWord\Element\AbstractElement
|
||||||
|
*/
|
||||||
|
private $parent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parent container type
|
* Parent container type
|
||||||
*
|
*
|
||||||
|
|
@ -321,6 +328,11 @@ abstract class AbstractElement
|
||||||
$this->commentRangeEnd->setEndElement($this);
|
$this->commentRangeEnd->setEndElement($this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getParent()
|
||||||
|
{
|
||||||
|
return $this->parent;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set parent container
|
* Set parent container
|
||||||
*
|
*
|
||||||
|
|
@ -331,6 +343,7 @@ abstract class AbstractElement
|
||||||
public function setParentContainer(AbstractElement $container)
|
public function setParentContainer(AbstractElement $container)
|
||||||
{
|
{
|
||||||
$this->parentContainer = substr(get_class($container), strrpos(get_class($container), '\\') + 1);
|
$this->parentContainer = substr(get_class($container), strrpos(get_class($container), '\\') + 1);
|
||||||
|
$this->parent = $container;
|
||||||
|
|
||||||
// Set nested level
|
// Set nested level
|
||||||
$this->nestedLevel = $container->getNestedLevel();
|
$this->nestedLevel = $container->getNestedLevel();
|
||||||
|
|
|
||||||
|
|
@ -366,7 +366,7 @@ class Html
|
||||||
*/
|
*/
|
||||||
private static function shouldAddTextRun(\DOMNode $node)
|
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) {
|
if ($containsBlockElement) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -402,7 +402,7 @@ class Html
|
||||||
*/
|
*/
|
||||||
private static function parseList($node, $element, &$styles, &$data)
|
private static function parseList($node, $element, &$styles, &$data)
|
||||||
{
|
{
|
||||||
$isOrderedList = $node->nodeName == 'ol';
|
$isOrderedList = $node->nodeName === 'ol';
|
||||||
if (isset($data['listdepth'])) {
|
if (isset($data['listdepth'])) {
|
||||||
$data['listdepth']++;
|
$data['listdepth']++;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -410,6 +410,9 @@ class Html
|
||||||
$styles['list'] = 'listStyle_' . self::$listIndex++;
|
$styles['list'] = 'listStyle_' . self::$listIndex++;
|
||||||
$element->getPhpWord()->addNumberingStyle($styles['list'], self::getListStyle($isOrderedList));
|
$element->getPhpWord()->addNumberingStyle($styles['list'], self::getListStyle($isOrderedList));
|
||||||
}
|
}
|
||||||
|
if ($node->parentNode->nodeName === 'li') {
|
||||||
|
return $element->getParent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function getListStyle($isOrderedList)
|
private static function getListStyle($isOrderedList)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue