HTML checkbox input field
This commit is contained in:
parent
b8346af548
commit
726c8caf54
|
|
@ -161,6 +161,7 @@ class Html
|
|||
'img' => array('Image', $node, $element, $styles, null, null, null),
|
||||
'br' => array('LineBreak', null, $element, $styles, null, null, null),
|
||||
'a' => array('Link', $node, $element, $styles, null, null, null),
|
||||
'input' => array('Input', $node, $element, $styles, null, null, null),
|
||||
);
|
||||
|
||||
$newElement = null;
|
||||
|
|
@ -233,6 +234,24 @@ class Html
|
|||
return $newElement;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse input node
|
||||
*
|
||||
* @param \DOMNode $node
|
||||
* @param \PhpOffice\PhpWord\Element\AbstractContainer $element
|
||||
* @param array &$styles
|
||||
*/
|
||||
protected static function parseInput($node, $element, &$styles)
|
||||
{
|
||||
$attributes = $node->attributes;
|
||||
|
||||
if (($type = $attributes->getNamedItem('type')->value) === 'checkbox') {
|
||||
$checked = ($checked = $attributes->getNamedItem('checked')) && $checked->value === "true" ?? false;
|
||||
$textrun = $element->addTextRun();
|
||||
$textrun->addFormField('checkbox')->setValue($checked);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse heading node
|
||||
*
|
||||
|
|
|
|||
|
|
@ -632,4 +632,23 @@ class HtmlTest extends AbstractWebServerEmbeddedTest
|
|||
$this->assertTrue($doc->elementExists('/w:document/w:body/w:p/w:r/w:rPr/w:spacing'));
|
||||
$this->assertEquals(150 * 15, $doc->getElement('/w:document/w:body/w:p/w:r/w:rPr/w:spacing')->getAttribute('w:val'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests checkbox input field
|
||||
*/
|
||||
public function testInputCheckbox()
|
||||
{
|
||||
$phpWord = new \PhpOffice\PhpWord\PhpWord();
|
||||
$section = $phpWord->addSection();
|
||||
$html = '<input type="checkbox" checked="true" /><input type="checkbox" />';
|
||||
Html::addHtml($section, $html);
|
||||
|
||||
$doc = TestHelperDOCX::getDocument($phpWord, 'Word2007');
|
||||
|
||||
$this->assertTrue($doc->elementExists('/w:document/w:body/w:p[1]/w:r/w:fldChar/w:ffData/w:checkBox'));
|
||||
$this->assertEquals(1, $doc->getElement('/w:document/w:body/w:p[1]/w:r/w:fldChar/w:ffData/w:checkBox/w:checked')->getAttribute('w:val'));
|
||||
|
||||
$this->assertTrue($doc->elementExists('/w:document/w:body/w:p[2]/w:r/w:fldChar/w:ffData/w:checkBox'));
|
||||
$this->assertEquals(0, $doc->getElement('/w:document/w:body/w:p[2]/w:r/w:fldChar/w:ffData/w:checkBox/w:checked')->getAttribute('w:val'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue