Bild in Kopfzeile abhängig vom Artikel
Bild in Kopfzeile abhängig vom Artikel
Hallo
Ich möchte folgendes:
In der Kopfzeile hab ich jeweils nur ein bild das sich, vom jeweiligen Artikel abhängig, ändern soll. Der Rest des Layouts bleibt also immer gleich.
Wie löse ich die Geschichte am besten. Möchte nämlich nicht für jeden Artikel ein anderes Layout erstellen.
Besten Dank im Voraus
zed
Ich möchte folgendes:
In der Kopfzeile hab ich jeweils nur ein bild das sich, vom jeweiligen Artikel abhängig, ändern soll. Der Rest des Layouts bleibt also immer gleich.
Wie löse ich die Geschichte am besten. Möchte nämlich nicht für jeden Artikel ein anderes Layout erstellen.
Besten Dank im Voraus
zed
hallo
http://www.phpwcms.de/forum/viewtopic.php?t=1817
http://www.phpwcms.de/forum/viewtopic.php?t=1817
Code: Select all
<?php
switch($GLOBALS['content']['cat_id']) {
// BOF 1=Your cat with ID 1
case 1: echo '<img src="img/head/my_img_1.jpg" alt="alt">'; break;
// EOF
// BOF 2=Your cat with ID 2
case 2: echo '<img src="img/head/my_img_2.jpg" alt="alt">'; break;
// EOF
// to be continued...
default: echo '<img src="img/head/my_def_img.jpg" alt="alt">';
}
?>
Hallo,
nach langem Suchen hab ich nichts so recht gefunden.
Wenn ich das richtig sehe, (hab's noch nicht probiert) dann zeigt o.g. Script, wenn definiert, das zur ID passende Bild, sonst "default" an. Das ist's schon fast was ich bräuchte, ABER ich habe zu den Artikeln "Unterartikel" etwa so:
Artikel 1
Artikel 1.1
Artikel 1.2
Artikel 2
Artikel 2.1
usw.
Es soll das zur Oberkategorie passende Bild auch bei den Unterkategorien angezeigt werden. Also so:
Artikel 1->Bild 1
Artikel 1.1 -> Bild 1
Artikel 1.2 -> Bild 1
Artikel 2 -> Bild 2
Artikel 2.1 -> Bild 2
usw.
Muss ich da zu jeder Kategorie einen "case" definieren, oder geht da eleganter?
Danke für eure Mühe...
nach langem Suchen hab ich nichts so recht gefunden.
Wenn ich das richtig sehe, (hab's noch nicht probiert) dann zeigt o.g. Script, wenn definiert, das zur ID passende Bild, sonst "default" an. Das ist's schon fast was ich bräuchte, ABER ich habe zu den Artikeln "Unterartikel" etwa so:
Artikel 1
Artikel 1.1
Artikel 1.2
Artikel 2
Artikel 2.1
usw.
Es soll das zur Oberkategorie passende Bild auch bei den Unterkategorien angezeigt werden. Also so:
Artikel 1->Bild 1
Artikel 1.1 -> Bild 1
Artikel 1.2 -> Bild 1
Artikel 2 -> Bild 2
Artikel 2.1 -> Bild 2
usw.
Muss ich da zu jeder Kategorie einen "case" definieren, oder geht da eleganter?
Danke für eure Mühe...
NEIEN!!!
Da hab ich mich offensichtlich nicht verständlich ausgedrückt
Es soll ein anderes Headerbild bei jedem Menüpunkt des obersten Levels der Navigation angezeigt werden. Bei jedem Unterpunkt soll dann das gleiche Bild bleiben, eben so:
Level 1->Bild 1
Level 1.1 -> Bild 1
Level 1.2 -> Bild 1
Level 2 -> Bild 2
Level 2.1 -> Bild 2
usw.
Das würde ja bedeuten man müsste für jedes "Unterlevel" einen neuen Fall definieren, nicht ganz im Sinne eines CMS...
Hoffe mich besser ausgedrückt zu haben.
Ciao Heiko...
Da hab ich mich offensichtlich nicht verständlich ausgedrückt
Es soll ein anderes Headerbild bei jedem Menüpunkt des obersten Levels der Navigation angezeigt werden. Bei jedem Unterpunkt soll dann das gleiche Bild bleiben, eben so:
Level 1->Bild 1
Level 1.1 -> Bild 1
Level 1.2 -> Bild 1
Level 2 -> Bild 2
Level 2.1 -> Bild 2
usw.
Das würde ja bedeuten man müsste für jedes "Unterlevel" einen neuen Fall definieren, nicht ganz im Sinne eines CMS...
Hoffe mich besser ausgedrückt zu haben.
Ciao Heiko...
Die Werte 0, 10, 20, etc. sind deine Cat IDs für die Hauptebenen, die du natürlich entsprechend eintragen kannst und mußt!<?php
// Copyright 2004 by Manfred "pepe" Peperkorn
//
// Script gibt den Code aus {IMAGE:header/xxxxx.jpg}, basierend auf der vorhandenen CAT-ID.
// Verwendung nur einer Vorlage für alle Kategorien!
// In der Vorlage {PHP:scripts/header-image_switch.php} eingeben, anstelle von {IMAGE:header/xxxxx.gif}
// Prüfung der CAT-ID des "obersten" Levels der aktuellen Ebene
$check_id = $GLOBALS['content']['cat_id'];
while( $GLOBALS['content']['struct'][$check_id]['acat_struct'] > 0 ) {
$check_id = $GLOBALS['content']['struct'][$check_id]['acat_struct'];
}
switch($check_id) {
case 0: echo '{RANDOM:picture/random-header-home}'; break;
case 10: echo '{IMAGE:random-header-200/Bild1.jpg}'; break;
case 20: echo '{IMAGE:random-header-200/Bild2.jpg}'; break;
.
.
.
default: echo '{RANDOM:picture/random-header}'; // Vorgabe, wenn keine andere Zuweisung!
}
?>
Gibst du keine keine passenden ein, wird die letzte Zeile abgearbeitet.
Du kannst hier sowohl einzelne Header mit IMAGE ansprechen als auch eine zufällige Reihe mit RANDOM!
Viel Spass beim "Spielen"
seufz
keiner versteht mich...
Was der code macht ist mir völlig klar.
Bei den Unterebenen soll das gleiche Bild wie bei der dazu gehörigen Hauptebene erscheinen, was bei diesem code eine case-Anweisung pro Haupt- und Unterebene von Nöten macht. Was besonders nervig ist, wenn Unterebenen ständig wechseln, verschwinden oder dazukommen...
Deswegen meine Frage nach einer evtl. eleganteren Lösung.
Trotzdem Danke für eure Mühen...
keiner versteht mich...
Was der code macht ist mir völlig klar.
Bei den Unterebenen soll das gleiche Bild wie bei der dazu gehörigen Hauptebene erscheinen, was bei diesem code eine case-Anweisung pro Haupt- und Unterebene von Nöten macht. Was besonders nervig ist, wenn Unterebenen ständig wechseln, verschwinden oder dazukommen...
Deswegen meine Frage nach einer evtl. eleganteren Lösung.
Trotzdem Danke für eure Mühen...
Tja Heiko,
da hast du leider nicht recht Hier hast du die Mühe eben nicht
Nur einmal die Bilder für die Hauptebenen festlegen... die ändern sich ja nicht sooo schnell... und dann kannst du zufügen was du willst... und zugucken, daß es geht... automatisch!
Also ich fand die Lösung schon so elegant, das ich sie bei mehreren sites verwende... und bei denen klappt das sogar.
Versuchs doch noch mal... 5 Minuten Arbeit, und dann ist Ruhe!
PS
Schick mir dann doch bitte deine elegantere Lösung, bei der das Script alles selber macht, werde es gerne verwenden...
da hast du leider nicht recht Hier hast du die Mühe eben nicht
Nur einmal die Bilder für die Hauptebenen festlegen... die ändern sich ja nicht sooo schnell... und dann kannst du zufügen was du willst... und zugucken, daß es geht... automatisch!
Also ich fand die Lösung schon so elegant, das ich sie bei mehreren sites verwende... und bei denen klappt das sogar.
Versuchs doch noch mal... 5 Minuten Arbeit, und dann ist Ruhe!
PS
Schick mir dann doch bitte deine elegantere Lösung, bei der das Script alles selber macht, werde es gerne verwenden...
Hallo Heiko,
vielleicht hilft das hier:
Christoph
vielleicht hilft das hier:
Code: Select all
[PHP]
$id = $GLOBALS['content']['cat_id'];
$parent_id=$GLOBALS['content']['struct'][$id]['acat_struct'];
While ($parent_id<>0){
$id=$parent_id;
$parent_id=$GLOBALS['content']['struct'][$id]['acat_struct'];
}
switch($id) {
// Für Ebene 0
case 0:
$links = "bild0";
break;
// Für Ebene 1
case 1:
$links = "bild1";
break;
// Für Ebene 2
case 2:
$links = "bild2";
break;
default:
$links = "defaultbild";
break;
}
echo $links;
[/PHP]
Hello, i am new here ...
... and I have a question to the struct levels in this older Thread.
Let's assume, that I have a site struktur like this:
- DE
-- Angebot
-- Kontakt
-- Support
--- Foo
- EN
-- Offers
-- Contact
-- Support
--- Foo
In this case the above-mentioned Solutions doesn't work, because
they catch up only the ID´s from DE and EN. This works fine, but I need
a different Header-Pict for the Sub categories, like Offers, Support and so on. In my Example the Page "Foo" will have the same pict like "Support".
Any Suggestion?
Cheers, Thomas
Let's assume, that I have a site struktur like this:
- DE
-- Angebot
-- Kontakt
-- Support
--- Foo
- EN
-- Offers
-- Contact
-- Support
--- Foo
In this case the above-mentioned Solutions doesn't work, because
they catch up only the ID´s from DE and EN. This works fine, but I need
a different Header-Pict for the Sub categories, like Offers, Support and so on. In my Example the Page "Foo" will have the same pict like "Support".
Any Suggestion?
Cheers, Thomas
Frage zu Pepes Lösung??
Ich bin noch Anfänger, und verstehe die Vorgehensweise noch nicht ganz. Sorry, aber wo muss ich das Skript einfügen?
@egres try this:
Einfach an der Stelle in das template, an der du sonst die Headerbilder eingebunden hättest
@svl[PHP]
// Prüfung der CAT-ID der aktuellen Ebene
$check_id = $GLOBALS['content']['cat_id'];
switch($check_id) {
case 10: echo '{IMAGE:Bild1.jpg}'; break;
case 20: echo '{IMAGE:Bild2.jpg}'; break;
.
.
.
default: echo '{RANDOM:picture/random-header-images}'; // Vorgabe, wenn keine andere Zuweisung!
}
[/PHP]
Einfach an der Stelle in das template, an der du sonst die Headerbilder eingebunden hättest
Bild wird nicht angezeigt
Hallo Pepe,
ich habe den oben abgebildeten Code in eine Tabellenzelle meiner html-Vorlage kopiert. Statt der Bilder wird aber nur der Code angezeigt. Du musst Geduld mit mir haben, php ist für mich ebenfalls ziemlich neu. Habe ich vielleicht irgendwelche überflüssigen Kommentarzeichen mit eingebunden?
Ich habe folgenden Code eingebunden:
<td width="180" height="120">
<!--Bild einfügen ******************************************************************-->
[php]
$check_id = $GLOBALS['content']['cat_id'];
while( $GLOBALS['content']['struct'][$check_id]['acat_struct'] > 0 ) {
$check_id = $GLOBALS['content']['struct'][$check_id]['acat_struct'];
}
switch($check_id) {
case 0: echo '{RANDOM:picture/random-header-home}'; break;
case 10: echo '{IMAGE:random-header-200/Bild1.jpg}'; break;
case 20: echo '{IMAGE:random-header-200/Bild2.jpg}'; break;
case 30: echo '{IMAGE:random-header-200/Bild3.jpg}'; break;
case 40: echo '{IMAGE:random-header-200/Bild4.jpg}'; break;
case 50: echo '{IMAGE:random-header-200/Bild5.jpg}'; break;
case 60: echo '{IMAGE:random-header-200/Bild6.jpg}'; break;
case 70: echo '{IMAGE:random-header-200/Bild7.jpg}'; break;
case 80: echo '{IMAGE:random-header-200/Bild8.jpg}'; break;
case 90: echo '{IMAGE:random-header-200/Bild9.jpg}'; break;
default: echo '{RANDOM:picture/random-header}'; // Vorgabe, wenn keine andere Zuweisung!
}
[/php]
</td>
ich habe den oben abgebildeten Code in eine Tabellenzelle meiner html-Vorlage kopiert. Statt der Bilder wird aber nur der Code angezeigt. Du musst Geduld mit mir haben, php ist für mich ebenfalls ziemlich neu. Habe ich vielleicht irgendwelche überflüssigen Kommentarzeichen mit eingebunden?
Ich habe folgenden Code eingebunden:
<td width="180" height="120">
<!--Bild einfügen ******************************************************************-->
[php]
$check_id = $GLOBALS['content']['cat_id'];
while( $GLOBALS['content']['struct'][$check_id]['acat_struct'] > 0 ) {
$check_id = $GLOBALS['content']['struct'][$check_id]['acat_struct'];
}
switch($check_id) {
case 0: echo '{RANDOM:picture/random-header-home}'; break;
case 10: echo '{IMAGE:random-header-200/Bild1.jpg}'; break;
case 20: echo '{IMAGE:random-header-200/Bild2.jpg}'; break;
case 30: echo '{IMAGE:random-header-200/Bild3.jpg}'; break;
case 40: echo '{IMAGE:random-header-200/Bild4.jpg}'; break;
case 50: echo '{IMAGE:random-header-200/Bild5.jpg}'; break;
case 60: echo '{IMAGE:random-header-200/Bild6.jpg}'; break;
case 70: echo '{IMAGE:random-header-200/Bild7.jpg}'; break;
case 80: echo '{IMAGE:random-header-200/Bild8.jpg}'; break;
case 90: echo '{IMAGE:random-header-200/Bild9.jpg}'; break;
default: echo '{RANDOM:picture/random-header}'; // Vorgabe, wenn keine andere Zuweisung!
}
[/php]
</td>
Hi,
dann schalte mal in der conf.inc.php das hier ein:
Gruß Knut
dann schalte mal in der conf.inc.php das hier ein:
Code: Select all
$phpwcms["allow_cntPHP_rt"] = 0; //allow PHP replacement tags and includes in content parts
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Hallo Knut,
das war es nicht
Ich habe das ganze jetzt nocheinmal gemacht, der Code wird nun nicht mehr angezeigt - die Bilder aber auch nicht. Der php-code wird ausgeführt, denn ein "echo Hallo;" wird angezeigt.
In welchen Ordner müssen die Bilder?
Viele Grüße
Ich habe das ganze jetzt nocheinmal gemacht, der Code wird nun nicht mehr angezeigt - die Bilder aber auch nicht. Der php-code wird ausgeführt, denn ein "echo Hallo;" wird angezeigt.
In welchen Ordner müssen die Bilder?
Viele Grüße