Tach community,
ich tausche eine headergraphik im layout je nach gewählter oberster Kategorie aus.
Meine Lösung ist allerdings hochgradig unelegant und wenig zukunftssicher:
ich führe an der Stelle des headers einen "switch ($idcat)" aus und muss demnach auch alle Unterkategorien mit in die Abfrage einbauen.
-> case 1, case 7, case 81 ...
Ich würde aber gerne ausschließlich nach oberster Kategorie switchen, sodass auch den in Zukunft anzulegenden Unterkategorien automatisch ohne Änderung des templates die richtige Graphik zugewiesen wird, bin da aber mal wieder an meine Grenzen gestoßen.
- 4.6.8.15 mit modRewrite
- gespllittete Hauptnavigation
Vielen Dank für Tipps sacht
Thorsten
Grafik je nach Kategorie Ebene1 ändern
-
- Beiträge: 124
- Registriert: Do 14. Jul 2005, 22:37
- Kontaktdaten:
da gibts ne funktion die das für dich rausfindet...
-> http://contenido.funjumping.de/projekt/ ... index.html
-> http://contenido.funjumping.de/projekt/ ... index.html
*** make your own tools (wishlist :: thx)
-
- Beiträge: 124
- Registriert: Do 14. Jul 2005, 22:37
- Kontaktdaten:
Da ich diese Funktion so wie so nutze, hatte ich das schon mit der Variable "$oberste_kategorie" versucht, habe das Scheitern aber auf das rewrite-modul geschoben. Das ist ja aber kompletter Tinnef, da die Funktion natürlich erst nach dem Header aufgerufen und die Variable erst dann ermittelt wird.emergence hat geschrieben:da gibts ne funktion die das für dich rausfindet...
-> http://contenido.funjumping.de/projekt/ ... index.html
Ich habe jetzt das Modul dupliziert und statt der Ausgabe der Überschrift switche ich die Ausgabe des Headerbildes direkt im Modul.
Vielen Dank, Sir!
Und falls jemand Anderes eine solche Funktion benötigt, poste ich den Code, um auch mal etwas Konstruktives beitragen zu können :-) :
Beschreibung
Code: Alles auswählen
Mit Hilfe dieses Moduls können bestimmten Kategorien bestimmte Grafiken
zugeordnet werden, wobei die jeweiligen Unterkategorien diese automatisch übernehmen.
All credits an den Autor des Originalmoduls und emergence für den Hinweis.
Output:
Code: Alles auswählen
<?php
/*********************************************
* basiert auf Modul : Kategorie Headline
* Abwandlung: Headergraphik austauschen nach oberster Kategorie
* Autor Originalmodul : Stefan Seifarth <info@polycoder.de>
**********************************************/
if ( !function_exists("getCatnamesById") ) {
function getCatnamesById ( $idcat = 0, $idlang = 0 ) {
global $cfg;
$sql = "SELECT name FROM " . $cfg["tab"]["cat_lang"] . " WHERE idcat = " . $idcat . " AND idlang = " . $idlang;
$db = new DB_Contenido();
$db->query($sql);
$db->next_record();
return urldecode($db->f("name"));
}
}
if ( !function_exists("get_top_category")) {
function get_top_category( $int_current_idcat = 0, $int_target_level = 0 ) {
global $client, $cfg;
$db = new DB_Contenido();
$tmp_idcat = $int_current_idcat;
$sql = "SELECT level FROM " . $cfg["tab"]["cat_tree"] . " WHERE idcat = '" . $int_current_idcat . "'";
$db->query($sql);
if ($db->num_rows()> 0) {
$db->next_record();
$int_current_level = $db->f("level");
while ( $int_current_level != $int_target_level ) {
$sql = "SELECT c.parentid, ct.level FROM " . $cfg["tab"]["cat_tree"] . " ct LEFT JOIN " . $cfg["tab"]["cat"] . " c ON ct.idcat = c.parentid WHERE c.idcat = '" . $tmp_idcat . "'";
$db->query($sql);
if ( $db->num_rows() > 0) {
$db->next_record();
$int_current_level = $db->f("level");
$tmp_idcat = $db->f("parentid");
} else {
break;
}
}
}
return $tmp_idcat;
}
}
// kateoriename in bestimmten level bestimmen:
// (2. wert = level - 0 = hauptbaum, 1 = erste unterkategorie, ...
$oberste_kategorie = get_top_category ( $idcat, 1);
switch ($oberste_kategorie):
case 1 :
case 2 :
echo '<img src="images/statics/header_1.jpg" width="972" height="170" border="0">';
break;
case 3:
echo '<img src="images/statics/header_5.jpg" width="972" height="170" border="0">';
break;
case 9:
echo '<img src="images/statics/header_9.jpg" width="972" height="170" border="0">';
break;
case 10:
echo '<img src="images/statics/header_4.jpg" width="972" height="170" border="0">';
break;
case 11:
echo '<img src="images/statics/header_6.jpg" width="972" height="170" border="0">';
break;
case 12:
echo '<img src="images/statics/header_10.jpg" width="972" height="170" border="0">';
break;
default:
echo '<img src="images/statics/header_8.jpg" width="972" height="170" border="0">';
break;
endswitch;
?>
Grüße
Thorsten