mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Create support for recursive copying of DOM
This commit is contained in:
parent
09dc17d3dc
commit
971a723607
@ -228,33 +228,48 @@ trait PdfMakerUtilities
|
|||||||
|
|
||||||
$table = $document->getElementById('page-container');
|
$table = $document->getElementById('page-container');
|
||||||
|
|
||||||
$this->document->getElementsByTagName('body')
|
$body = $this->document->getElementsByTagName('body')
|
||||||
->item(0)
|
->item(0);
|
||||||
->appendChild($this->document->importNode($table, true));
|
|
||||||
|
|
||||||
foreach ($this->data['template'] as $element) {
|
$body->appendChild(
|
||||||
if ($element['id'] == 'header' || $element['id'] == 'footer') {
|
$this->document->importNode($table, true)
|
||||||
|
);
|
||||||
|
|
||||||
|
for ($i = 0; $i < $body->childNodes->length; $i++) {
|
||||||
|
$element = $body->childNodes->item($i);
|
||||||
|
|
||||||
|
if ($element->nodeType !== 1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$node = $this->document->getElementById($element['id']);
|
if (
|
||||||
$node->parentNode->removeChild($node);
|
$element->getAttribute('id') == 'header' ||
|
||||||
|
$element->getAttribute('id') == 'footer' ||
|
||||||
|
$element->getAttribute('id') === 'page-container'
|
||||||
|
) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$this->document->getElementById('repeat-content')->appendChild($node);
|
$clone = $element->cloneNode(true);
|
||||||
|
$element->parentNode->removeChild($element);
|
||||||
|
|
||||||
|
$this->document->getElementById('repeat-content')->appendChild($clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($header = $this->document->getElementById('header')) {
|
if ($header = $this->document->getElementById('header')) {
|
||||||
$header = $this->document->getElementById('header');
|
$header = $this->document->getElementById('header');
|
||||||
$header->parentNode->removeChild($header);
|
$clone = $header->cloneNode(true);
|
||||||
|
|
||||||
$this->document->getElementById('repeat-header')->appendChild($header);
|
$header->parentNode->removeChild($header);
|
||||||
|
$this->document->getElementById('repeat-header')->appendChild($clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($footer = $this->document->getElementById('footer')) {
|
if ($footer = $this->document->getElementById('footer')) {
|
||||||
$footer = $this->document->getElementById('footer');
|
$footer = $this->document->getElementById('footer');
|
||||||
$footer->parentNode->removeChild($footer);
|
$clone = $footer->cloneNode(true);
|
||||||
|
|
||||||
$this->document->getElementById('repeat-footer')->appendChild($footer);
|
$footer->parentNode->removeChild($footer);
|
||||||
|
$this->document->getElementById('repeat-footer')->appendChild($clone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user