Headerwechsel, die 99ste

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
oliban
Posts: 7
Joined: Tue Jul 19, 2011 5:29 am

Headerwechsel, die 99ste

Post by oliban » Tue Jul 19, 2011 6:32 am

Moin Leutz,

mein Post von eben wurde beim Speichern gelöscht - i-wie was mit Save-Draft... :evil:

Also nochmal *stöhn*
Habe hier im Forum und bei Google lange gesucht, aber nix verwertbares gefunden, was einen Wechsel des Header-Images bei Seitenwechsel ermöglicht... Banner mit versteckten Seiten klingt suspekt, das Also-Plugin zu kompliziert. Ich habs mal mit dem Snipet von cmsimple.de versucht:

Code: Select all

.submenuebar 
{ 
background-image:url('<?php 
if(substr($su,0,6)==substr('Startseite',0,6)) echo "templates/2menues/images/startseite.jpg"; 
else if($su=='') echo "templates/2menues/images/startseite.jpg"; 
else if(substr($su,0,6)==substr('Aktuelles',0,6)) echo "templates/2menues/images/aktuelles.jpg"; 
else if(substr($su,0,6)==substr('Grabmale',0,6)) echo "templates/2menues/images/grabmale.jpg"; 
else if(substr($su,0,6)==substr('Restaurierungen',0,6)) echo "templates/2menues/images/restaurierungen.jpg"; 
else if(substr($su,0,6)==substr('Stein_%2B_Bau',0,6)) echo "templates/2menues/images/steinundbau.jpg"; 
else if(substr($su,0,6)==substr('Bildhauerei',0,6)) echo "templates/2menues/images/gartenobjekte.jpg"; 
else if(substr($su,0,6)==substr('Kontakt%2FImpressum',0,6)) echo "templates/2menues/images/kontakt.jpg"; 
else if(substr($su,0,6)==substr('Anfahrt',0,6)) echo "templates/2menues/images/anfahrt.jpg"; 
else echo "templates/2menues/images/default.jpg"; 
?>'); 
background-repeat: no-repeat; 
} 
<
im HEAD von template.htm eingefügt. Seitennnamen und Pfade zu den Bildern angepasst - aber es funzt nicht!!!

DAS KANN DOCH NICHT SO SCHWER SEIN???

Wo ist mein Denkfehler??? Hat Jemand noch eine Idee für einen autodidaktischen Anfänger?

Grüße aus der Hauptstadt
Ole
http://b-fine-design.de

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Headerwechsel, die 99ste

Post by cmb » Tue Jul 19, 2011 7:31 am

Hallo Ole,
oliban wrote: Wo ist mein Denkfehler???
Da änderst das background-image von .submenuebar (ich bin mir nicht mal sicher, ob es diese CSS-Klasse in Deinem Template überhaupt gibt), aber dein Header Image wird im template als <img id="template_r1_c1"> eingebunden. Zum ersten Testen, ob es dann funktioniert, ändere doch einfach mal im Template bei dem entsprechenden <img> das src Attribut.

Dann sehen wir weiter.

Christoph

PS: ich hab schon mal weiter gesehen ;)

Füge nun in /cmsimple/functions.php am einfachsten ganz am Ende (aber vor dem ?>) ein:

Code: Select all

function ole_header_image() {
    global $su;
    
    $images = array(
        'Startseite'    => './templates/2menues/images/Startseite.jpg',
        'Aktuelles'    => './templates/2menues/images/Aktuelles.jpg'
        // hier bitte weitere Seiten => Bilder ergänzen (auf die Kommata am Ende achten)
    );
    return $su == '' ? './templates/2menues/images/Startseite.jpg'
            : isset($images[$su]) ? $images[$su]
            : './templates/2menues/images/default.jpg';
}
 
Dann einfach im Template, im entsprechenden <img> das src Attribut ändern. Wie du das genau machst, kann ich Dir nicht sagen, da ich Dein Template nicht kenne. Im Zweifel einfach das ganze <img>-Tag mal hier posten.

Ach ja, ganz wichtig: die von Dir erweiterte Funktion ole_header_image() unbedingt irgendwo sichern, weil sie bei einem Update überschrieben würde. Und apropos Update: vielleicht solltest Du Dein CMSimple 3.2 mal updaten, vielleicht auf CMSimple_XH 1.4.1 (dort kommt ole_header_image() dann in eine eigene Datei: /cmsimple/userfuncs.php; diese wird bei Updates nicht überschrieben).
Christoph M. Becker – Plugins for CMSimple_XH

Gert
Posts: 3078
Joined: Fri May 30, 2008 4:53 pm
Location: Berlin
Contact:

Re: Headerwechsel, die 99ste

Post by Gert » Tue Jul 19, 2011 8:31 am

cmb wrote:Ach ja, ganz wichtig: die von Dir erweiterte Funktion ole_header_image() unbedingt irgendwo sichern, weil sie bei einem Update überschrieben würde.
In CMSimple_XH kann man in eine userfuncs.php schreiben, dann wird sie auch nicht überschrieben.

functions.php (ganz unten):

Code: Select all

// includes additional userfuncs.php - CMSimple_XH beta3
if ( file_exists ($pth['folder']['cmsimple'].'userfuncs.php') ) {
   include($pth['folder']['cmsimple'].'userfuncs.php');
} 
Gert Ebersbach | CMSimple | Templates - Plugins - Services

oliban
Posts: 7
Joined: Tue Jul 19, 2011 5:29 am

Re: Headerwechsel, die 99ste

Post by oliban » Tue Jul 19, 2011 11:22 am

Hallo Chritoph, hallo Gert,

erstmal vielen Dank für die schnelle Antwort. :D Das Einbauen der PHP-Funktion krieg ich schon irgendwie hin. Das mit dem src-Attribut vom IMG ist ein bisschen schwieriger...

Ich benutze hier ein dcwd-Template. Die Einbindung des headers erfolgt über den nachstehenden tag.

Code: Select all

  <tr>
   <td colspan="7"><img name="template_r1_c1" src="<?=$pth['folder']['templateimages']?>template_r1_c1.png" width="778" height="151" border="0" id="template_r1_c1" usemap="#m_template_r1_c1" alt="" /></td>
   <td><img src="<?=$pth['folder']['templateimages']?>spacer.gif" width="1" height="151" border="0" alt="" /></td>
  </tr>
Wie muss ich den Pfad ändern, damit das Template das array in function.phph ausliest???
Vielleicht sollte ich mir doch mal PHP draufschaffen... :lol:

Ick sachma schonma danke mitten aus dit wundascheene Ballin! 8-)
Ole

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Headerwechsel, die 99ste

Post by cmb » Tue Jul 19, 2011 11:46 am

Hallo Ole,

Einfach statt

Code: Select all

<?=$pth['folder']['templateimages']?>template_r1_c1.png

Code: Select all

<?=ole_header_image()?>
schreiben. Eigentlich sollten da m.E. keine short tags (<?=) verwendet werden, weil nicht alle Server damit klar kommen. Aber bei Dir scheint es ja zu funktionieren -- also kein Problem.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

oliban
Posts: 7
Joined: Tue Jul 19, 2011 5:29 am

Re: Headerwechsel, die 99ste

Post by oliban » Tue Jul 19, 2011 12:22 pm

Kaum macht man's richtig, muss man sich nicht wundern, dass es geht.... ;)

Danke Männer - funzt prima. Werd mal für das neue Projekt CMSimple_XH runterladen....

IHR SEID HELDEN ! ! !

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Headerwechsel, die 99ste

Post by cmb » Tue Jul 19, 2011 12:29 pm

Hallo Ole,

das hört man gerne. Wenn Du CMSimple_XH installierst, am besten erst mal "parallel" zu Deiner jetzigen Installation. Dann kannst Du erst mal ausprobieren, ob auch alles klappt, bevor Du damit richtig online gehst.

Und vielleicht schaust Du Dir mal http://www.cmsimpleforum.com/viewtopic.php?f=16&t=3199 an; da ging's kürzlich um das gleiche Thema.

Christoph
Christoph M. Becker – Plugins for CMSimple_XH

oliban
Posts: 7
Joined: Tue Jul 19, 2011 5:29 am

Re: Headerwechsel, die 99ste

Post by oliban » Tue Jul 19, 2011 1:27 pm

Zu früh gefreut.... :?

wenn ich die Testseite erstmalig aufrufe - also von einer anderen Website komme, kann das Skript das Header-Bild nicht auflösen. Erst nachdem ich ein bischen im Menü rumgeklickt habe...

Noch ne Idee, wie man das umgehen kann? Ist ärgerlich, wenn ausgerechnet die Startseite keinen Header hat... :mrgreen:

Gruß Ole

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Headerwechsel, die 99ste

Post by cmb » Tue Jul 19, 2011 1:46 pm

Hallo Ole,

das hatte ich eigentlich bedacht, aber wohl nicht korrekt implementiert :oops:

Ich schau's mir mal an, und melde mich gleich zurück.

Christoph

PS:
oliban wrote: Noch ne Idee, wie man das umgehen kann? Ist ärgerlich, wenn ausgerechnet die Startseite keinen Header hat...
Wenn's wirklich nur die Startseite ist, dann einfach den unteren Teil von ole_header_image() wie folgt ändern:

Code: Select all

    return $s == 0 ? './templates/2menues/images/Startseite.jpg'
            : isset($images[$su]) ? $images[$su]
            : './templates/2menues/images/default.jpg';
 
Und da musst Du das Bild für die Startseite unbedingt eintragen. Im oberen Teil ist es eigentlich nicht nötig.

Und die Zeile mit global muss nun lauten:

Code: Select all

global $su, $s;
 
Christoph
Christoph M. Becker – Plugins for CMSimple_XH

oliban
Posts: 7
Joined: Tue Jul 19, 2011 5:29 am

Re: Headerwechsel, die 99ste

Post by oliban » Tue Jul 19, 2011 2:20 pm

Hi Christoph,

tut's leider immer noch net... Hab mal die ganze function kopiert - i-welche Syntaxfehler???

Code: Select all

function header_image() {
    global $su, $s;
    
    $images = array(
        'Welcome'    => './templates/easystyles/images/template_r1_c1.png',
        'Bye'        => './templates/easystyles/images/template_r1_c1.jpg'
        // hier bitte weitere Seiten => Bilder ergänzen (auf die Kommata am Ende achten)
    );
    return $s == 0 ? './templates/easystyles/images/template_r1_c1.png'
                : isset($images[$su]) ? $images[$su]
            : './templates/easystyles/images/template_r1_c1.png';
}
Muss doch hinzukriegen sein....

Gruß Ole

Post Reply