Hallo Community,
ich hoffe ihr könnt mir mit meinem Itemid-Problem helfen. Ich habe schon des Öfteren danach gesucht und bin verwundert, dass so etwas simples nicht funktionieren soll.
Also mein Szenario:
Hab eine eigene Komponente. Dort gibt es 2 Seiten. Startseite (Auflistung meiner speziellen Beiträge) und eine Detailseite (ein spezieller Beitrag).
Nun habe ich auf der Startseite ein Modul, welches mir dieTitel der besten Beiträge darstellt und verlinkt.
Und in diesen Links brauche ich nun die Itemid der Detailseite (auf welcher ich mich ja gerade nicht befinde). Und das ist mein Problem.
Zur Lösung habe ich eine kleine Methode geschrieben
die aber nur funktioniert, wenn ich gerade auf einer Seite mit meiner Komponente bin.PHP-Code:function get_itemid($viewname, $onlynb = false) {
global $option, $item_ids;
// ID wird nur ausgelesen, wenn sie nicht bereits im Array steht
if(count($item_ids) == 0 || !array_key_exists($viewname, $item_ids)) {
// JSite ist nur eine Fake-Klasse die auf JMenu zugreift und aus der DB im Feld
// param1 nach param2 sucht. param3 bestimmt ob onlyfirstitem retourniert wird.
$menu = &JSite::getMenu();
$item = $menu->getItems('link', "index.php?option=$option&view=$viewname", true);
$prefix = $onlynb ? '' : '&Itemid=';
$item_ids[$viewname] = isset($item) ? $prefix . $item->id : '';
}
return $item_ids[$viewname];
}
Da muss es doch was schöneres geben...


LinkBack URL
About LinkBacks
Zitieren
Lesezeichen