Mit Hilfe des outputFrontendTemplate Hooks hab ich jetzt etwas gebastelt. Der Vollständigkeit wegen möcht ich das hier veröffentlichen:
PHP-Code:
if ($strTemplate == 'be_main'){
// only apply in catalog edit mode
if(false === (
Input::getInstance()->get('do') === 'catalog'
&& Input::getInstance()->get('table') === 'tl_catalog_items'
&& Input::getInstance()->get('act') === 'edit'))
{
return $strContent;
}
/*
* load dom
* getKurstypenWithKursart
* addKursartToLabels
* */
$dom = new DOMDocument();
// @ supresses parser warnings
@$dom->loadHTML(utf8_decode($strContent));
$rel = $dom->getElementById("ctrl_kurstypen");
if(!$rel){
return $strtContent;
}
$x = new DOMXPath($dom);
$inputs = $x->query("input[@value]", $rel);
if(count($inputs) > 0){
$dbKurstypen = Database::getInstance()
->prepare("
SELECT t.id as kurstyp_id, a.name as kursart_name FROM cat_kurstyp t
INNER JOIN cat_kursart a ON t.kursart = a.id
ORDER BY kursart_name")
->execute();
$kurstypen = array();
if($dbKurstypen->numRows > 0){
$kurstypenAssoc = $dbKurstypen->fetchAllAssoc();
foreach($kurstypenAssoc as $kurstyp){
$kurstypen[$kurstyp['kurstyp_id']] = htmlentities($kurstyp['kursart_name']);
}
}
foreach($inputs as $i => $input){
$label = $input->nextSibling;
$kurstyp_id = $input->getAttribute("value");
$label->nodeValue .= " (".$kurstypen[$kurstyp_id].")";
}
$strContent = $dom->saveHTML();
}
}
return $strContent;
}
Lesezeichen