58 lines
1.4 KiB
PHP
58 lines
1.4 KiB
PHP
<?php
|
|
|
|
class renderSpecialContentClass extends renderClass_abstract
|
|
{
|
|
public function createSpecialContent($id, $popupData, $type)
|
|
{
|
|
$html = file_get_contents($this->_pathTpl . $this->_layout . '/tpl_' . $this->_template . '_' . $id . '.php');
|
|
$html = str_replace($this->_renderSearch, $this->_renderReplace, $html);
|
|
$subTpl = new DOMDocument ();
|
|
$subTpl->preserveWhitespace = false;
|
|
$subTpl->formatOutput = true;
|
|
$subTpl->loadHTML($html);
|
|
|
|
$xpath = new DOMXpath ($subTpl);
|
|
$subCont = $xpath->query(".//*[contains(concat(' ', @class, ' '), ' " . $id . " ')]")->item(0);
|
|
|
|
foreach ($popupData as $singleData)
|
|
{
|
|
$tmp_node = $subCont->firstChild->cloneNode(true);
|
|
if (isset ($singleData['id']))
|
|
{
|
|
$subCont->setAttributeNode(new DOMAttr ('id', $type . '_' . $singleData['id']));
|
|
}
|
|
|
|
foreach ($singleData as $key => $data)
|
|
{
|
|
$nodeList = $xpath->query(".//*[contains(concat(' ', @class, ' '), ' " . $key . " ')]", $tmp_node);
|
|
if ($nodeList->length !== 0)
|
|
{
|
|
|
|
foreach ($nodeList as $node)
|
|
{
|
|
switch ($key)
|
|
{
|
|
case 'link' :
|
|
$node->setAttributeNode(new DOMAttr ('href', $data));
|
|
break;
|
|
|
|
default :
|
|
$node->appendChild(new DOMCdataSection ($data));
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
$subCont->appendChild($tmp_node);
|
|
}
|
|
|
|
$subCont->removeChild($subCont->firstChild);
|
|
|
|
|
|
$new_node = $this->_tpl->importNode($subCont, true);
|
|
return $new_node;
|
|
}
|
|
|
|
} |