Welcome, Guest. Please login or register.
Did you miss your activation email?
February 12, 2012, 02:27:34 AM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
149621 Posts in 21098 Topics by 7537 Members
Latest Member: lotte2
* Home Help Search Login Register
Pages: [1] 2 3   Go Down
Print
Author Topic: Wechselnde Header Bilder  (Read 12114 times)
Anika

Offline Offline

Posts: 5


« on: October 18, 2007, 10:42:24 PM »

Hallo,

ich habe leider noch keine befriedigende Lösung in WB gefunden, wie ich Bilder im Header für jede Seite wechseln kann (kein random!), wenn ich eine Designvorlage nutze. Das muss doch mit php und css möglich sein, indem z.b. eine klasse für ein <div> mit dem Seitentitel automatisch generiert wird, die dann über css angesprochen werden kann.
Leider bin ich keine php-Expertin.

Danke
Anika
Logged
frankyboy

Offline Offline

Posts: 113



WWW
« Reply #1 on: October 19, 2007, 12:27:57 AM »

rufe die headergrafik doch am besten mit <img src=<?php echo PAGE_TITLE; ?>.jpg"> auf und benenne die jeweiligen Grafiken nach dem Seitentitel der gewünschten Seite. Dürfte am einfachsten gehen...
Logged

Disko-King.de
chio
WebsiteBaker Org e.V.

Offline Offline

Posts: 2264


« Reply #2 on: October 19, 2007, 08:02:33 AM »

PageTitle ist da eine schlechte Wahl, das ändert sich zu leicht.

$page_id ist fix.
also: src="bildnr<?php  echo $page_id;?>.jpg"...

mit css: <div id="header<?php  echo $page_id;?>">...</div>
ergibt <div id="header12".. (zB), der du irgendein Hintergrundbild zuordnen kannst. auf die weise  kannst du sogar jeder Seite eine andere Schrift geben...
Logged

*weg*
frankyboy

Offline Offline

Posts: 113



WWW
« Reply #3 on: October 19, 2007, 10:23:04 AM »

richtig, die bessere variante. fiel mir heute nacht nicht ein. so gehts auf jeden fall!
Logged

Disko-King.de
Anika

Offline Offline

Posts: 5


« Reply #4 on: October 19, 2007, 06:29:55 PM »

Vielen Dank, werde es gleich ausprobieren. Hatte bisher die Variante mit zwei Contents gehabt, aber das war natürlich nur eine Notlösung.
Logged
Frediwan

Offline Offline

Posts: 89


WWW
« Reply #5 on: March 27, 2008, 05:35:06 PM »

wie funktioniert es denn, wenn z.b. nur page_id4 einen anderen header erhalten soll.

vielen dank für eine info!

gruß
frediwan
Logged
chio
WebsiteBaker Org e.V.

Offline Offline

Posts: 2264


« Reply #6 on: March 27, 2008, 05:52:03 PM »

Genauso, mit CSS.

Dann schreibst du eben ins CSS das Hintergrundbild für alle, und dann für #header4 {blabla} ein anderes
Logged

*weg*
Frediwan

Offline Offline

Posts: 89


WWW
« Reply #7 on: March 28, 2008, 04:19:06 PM »

hallo,

muss da jede einzelne page_id aufeglistet werden?
würdest du den css code einmal posten?
hintergrund xy.gif für alle seiten
nur page_id4 xx.gif

besten gruß
frederik
Logged
egnal

Offline Offline

Posts: 331



WWW
« Reply #8 on: March 28, 2008, 08:10:00 PM »

Wäre wirklich nett, wenn's noch etwas detaillierter ginge.
Logged

Gruß Henry
"Es gehört zu den vielen Merkwürdigkeiten des Lebens, dass der Mensch immer bissiger wird, je weniger Zähne er hat." - Stefan Heym
unawave2

Offline Offline

Posts: 77


« Reply #9 on: March 29, 2008, 10:32:00 AM »

Quote from: Frediwan
muss da jede einzelne page_id aufeglistet werden?

In deinem Stylesheet könntest du so etwas definieren:
Code:
#hintergrund-global { ... }
#hintergrund-id4 { ... }

Und in der index.php könntest du dann so einen Weiche einbauen:
Code:
<?php if(PAGE_ID == 4)
{echo 
'<div id="hintergrund-id4">';}
else
{echo 
'<div id="hintergrund-global">';}
 
?>
Logged
StephanLE

Offline Offline

Posts: 136


« Reply #10 on: March 29, 2008, 06:11:56 PM »

Stelle hier mal mein Vorschlag vor.
Denn hab ich dank diesem Forum gefunden.
In die index.php deines Templates
Kopfbereich:
Code:
<?php // Kopfbild der Seite angepasst
$prefix1 TEMPLATE_DIR '/img/' //Pfad zu den Dateien
$prefix2 WB_PATH '/templates/meine/img/'// interner Serverpfad zu den Dateien
$extension '.jpg'//welche Dateierweiterung? 

$kopfbild $prefix1 $page_id $extension;  // Pfad + id der Seite + Erweiterung
$kopfbild1 $prefix1 'kopfbild.jpg';
?>

da wo das Bild erscheinen soll:
Code:
<img id="bild" src="<?php if (file_exists($prefix2 $page_id $extension)) {  // wenn die Datei mit dieser page_id existiert
echo $kopfbild;  // dann wird die page_id.jpg ausgegeben
}
else { echo 
$kopfbild1;  //wenn keine page_id.jpg hinterlegt ist, dann nimm die Standarddatei
?>
" width="760" height="175" alt="kopfbild" />
Ist etwas anderes als über css gelöst, aber funktioniert bei mir wunderbar.
« Last Edit: March 29, 2008, 06:14:54 PM by StephanLE » Logged
egnal

Offline Offline

Posts: 331



WWW
« Reply #11 on: March 30, 2008, 09:08:46 AM »

Noch ein Vorschlag mit css und der Möglichkeit verschiedenen Seiten unterschiedliche Header zu geben:
Code:
<?php
if ((PAGE_ID == 11) or (PAGE_ID == 13)){$bild '<div id="header_11">';}
if (
PAGE_ID == 12){$bild '<div id="header_12">';}
if(
$bild){$wechselbild $bild;}
else{
$bild '<div id="header">';}
     
$wechselbild $bild;
     echo 
$wechselbild;
?>

</div>
« Last Edit: March 30, 2008, 09:10:44 AM by egnal » Logged

Gruß Henry
"Es gehört zu den vielen Merkwürdigkeiten des Lebens, dass der Mensch immer bissiger wird, je weniger Zähne er hat." - Stefan Heym
gaby

Offline Offline

Posts: 7


« Reply #12 on: March 30, 2008, 07:11:40 PM »

Hallo,

ich versuche schon seit Stunden "wechselnde headerbilder" zu erzeugen und habe die hier vorgestellten
Code-"schnippsel" abwechselnd ausprobiert.
Es funktioniert einfach nicht.
Ich hätte eine sehr große Bitte - könntet ihr php-Mächtigen ein wenig mehr Code posten und vielleicht auch noch wo genau dieser hingeschrieben werden soll?
Diese Bitte geht vorallem an chio, egnal, stephenle und unawave bzw. jeden anderen, der es kann und die Geduld mitbringt es einer php-"blinden" zu erklären.
Vielen Dank schon mal und liebe Grüße

Gaby
Logged
egnal

Offline Offline

Posts: 331



WWW
« Reply #13 on: March 31, 2008, 08:29:20 AM »

Auf einer Testseite mit zwei Blöcken im Headbereich sieht es bei mir so aus:
Code:
<div id="header"> <!-- gesamter Bereich -->

<!-- ######## Zuweisung anderes Bild linker Block ############### -->
<?php
if ((PAGE_ID == 11) or (PAGE_ID == 13)){$bild '<div id="headerlinks_11">';}
if (
PAGE_ID == 12){$bild '<div id="headerlinks_12">';}
if(
$bild){$wechsel $bild;}
else{
$bild '<div id="headerlinks">';}
     
$wechsel $bild;
     echo 
$wechsel;
?>

</div>
<!-- ######## Ende Zuweisung ############### -->

<div id="headerright"></div> <!-- rechter Block -->

Und in der css gib's natürlich #headerlinks, #headerlinks_11 bzw. 12 usw.

Ich hoffe es hilft.
Logged

Gruß Henry
"Es gehört zu den vielen Merkwürdigkeiten des Lebens, dass der Mensch immer bissiger wird, je weniger Zähne er hat." - Stefan Heym
kweitzel
Forum administrator
*****
Offline Offline

Posts: 6819


WWW
« Reply #14 on: March 31, 2008, 06:23:00 PM »

Hi Henry,

ich denke, dass Du das vielleicht ein wenig generischer machen solltest ... Nimm Tatsache die Page_ID als Basis. Dann machst Du eine Abfrage ob in Deinem Template_Dir die Page_ID als Image vorliegt. Tut sie das, zeigst Du das Bild an, Tut Sie das nicht, zeigst Du ein generisches an.

So kannst Du dann spaeter auch zusaetzlich Aenderungen vornehmen, ohne das Script anzupassen. Der einzige Nachteil ist, dass Du die Bilder teilweise dann doppelt auf dem Webspace liegen hast.

Code:
<?php
$backgroundimage 
TEMPLATE_DIR.'/image/'.PAGE_ID.'.gif';
if (
file_exists($backgroundimage) {
    echo 
'<div style="background: url('.$backgroundimage.';)"';
} else {
    echo 
'<div style="background: url('.TEMPLATE_DIR.'/image/normal_image.gif)>';
}
?>


(Code nicht getestet! Austausch von TEMPLATE_DIR mit MEDIA_DIR fuer useruploads problemlos moeglich)

cheers

Klaus
Logged

WebsiteBaker Org e.V. - for WebsiteBaker

egnal

Offline Offline

Posts: 331



WWW
« Reply #15 on: March 31, 2008, 07:50:53 PM »

Danke Klaus,

das werde ich schnellstens testen. Sieht viel feiner und logischer aus. Muss nur noch sehen, wie ich es mit der css hin bekomme.
Logged

Gruß Henry
"Es gehört zu den vielen Merkwürdigkeiten des Lebens, dass der Mensch immer bissiger wird, je weniger Zähne er hat." - Stefan Heym
niemand

Offline Offline

Posts: 101


« Reply #16 on: March 31, 2008, 11:23:07 PM »

@Anika
@gaby
Wie wär's mit der Angabe von Template und aktueller Domain für pragmatische Lösungen?
Wird  überhaupt noch eine Lösung gesucht?
Gruß, Hans J. G.
« Last Edit: April 01, 2008, 12:26:33 AM by wb_gaschler » Logged
chio
WebsiteBaker Org e.V.

Offline Offline

Posts: 2264


« Reply #17 on: April 01, 2008, 07:46:04 AM »

Kurz noch mein Senf dazu (AUCH nicht getestet, schnell getippt)

Im Template:
<div class="headerbild" id="hintergrundbild<?php echo $page_id; ?>">&nbsp;</div>

im CSS:
.headerbild {width: 800px; height:200px; background: url(standard.jpg);}

#hintergrundbild  {background: url(startseite.jpg);}
#hintergrundbild0  {background: url(suche.jpg);}

#hintergrundbild12 {background: url(bild12.jpg);}
..
#hintergrundbild22, #hintergrundbild52  {background: url(bildwasweis.jpg);}


Eleganter wäre eventuell:
ganz oben:
<body id="seite<?php echo $page_id; ?>">

dann wäre das CSS:

#seite12.headerbild {background: url(bild12.jpg);}

Auf die Art kann man auch nachträglich JEDES Element pro Seite einzeln ansprechen und ändern, zb:
#seite12 p {Farbe, größe...}

Die Variante von Klaus ist besser, wenn das Bild nicht per CSS reinkommt, sondern im <img>:

Code:
//is there a picture in media/hpics/
        $purl = WB_URL . MEDIA_DIRECTORY. "/hpics/hpic-".$page_id . ".jpg";    
        $ppath = WB_PATH . MEDIA_DIRECTORY. "/hpics/hpic-".$page_id . ".jpg";        
        $palt="";
        if (!file_exists($ppath)) {
          $purl = WB_URL . "/templates/dastemplate/nopic.jpg";
          $palt = "not found: hpic-".$page_id.".jpg";
        }
       
        echo '<img src="'.$purl.'" alt="'.$palt.'" />;

Das  $palt zeigt als Alt-Tag, ob das Bild fehlt, das kann man natürlich weglassen.
« Last Edit: April 01, 2008, 07:57:47 AM by chio » Logged

*weg*
egnal

Offline Offline

Posts: 331



WWW
« Reply #18 on: April 01, 2008, 08:28:07 PM »

Hallo Chio,
der Senf hat geschmeckt.
So macht ein Forum Spaß und Sinn. Danke an alle, obwohl das eigentlich gar nicht mein spezielles Thema war.
Logged

Gruß Henry
"Es gehört zu den vielen Merkwürdigkeiten des Lebens, dass der Mensch immer bissiger wird, je weniger Zähne er hat." - Stefan Heym
gaby

Offline Offline

Posts: 7


« Reply #19 on: April 02, 2008, 07:13:02 AM »

Hallo ihr Hilfsbereiten,

erstmal Danke. Ich werde mir eure Tipps und Vorschläge zu Gemüte führen und ausprobieren und mich dann natürlich melden um hoffentlich von meinen "Erfolgen" grin  berichten zu können.
Dann auch mit Quelltext usw.

liebe, dankbare Grüße von

Gaby
Logged
egnal

Offline Offline

Posts: 331



WWW
« Reply #20 on: April 07, 2008, 08:39:30 PM »

Dieses Thema scheint ja ungemein wichtig zu sein.  Bei 1140 Besuchen sollte es ein grundsätzliches Thema werden, um WB perfekter zu machen.
Logged

Gruß Henry
"Es gehört zu den vielen Merkwürdigkeiten des Lebens, dass der Mensch immer bissiger wird, je weniger Zähne er hat." - Stefan Heym
gaby

Offline Offline

Posts: 7


« Reply #21 on: April 09, 2008, 03:18:56 PM »

Hallo Henry,

ich denke auch, dass es wirklich wichtig ist, vorallem weil es eigentlich viele verschiedene Wege gibt und man als PHP-Anfänger echt schnell den Durchblick verliert.
Meiner Ansicht nach wäre dies etwas für die Dokumentation.
By the way. ich habe folgenden Code-Schnippsel im englischen Forum gefunden und er funktioniert auch.
Auszug:
<body>
<div id="container">
<div id="header">
<img src="http://www.meineseite.de/wb/media/header/<?php echo page_title('','[PAGE_TITLE]'); ?>.gif">
</img>

</div>
.......
In den Mediaordner lade ich meine Bilder hoch, die den Namen der jeweiligen Seite haben.
Für meine Anforderungen reicht diese schlichte Lösung völlig aus.
Frage: Spricht irgendetwas dagegen, z.B. nicht stabil oder so?Huh

Danke und liebe Grüße

Gaby
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #22 on: April 09, 2008, 03:25:51 PM »

Hi Gaby,

vom Prinzip her ist deine Lösung das gleiche, was Chio ziemlich am Anfang dieses threads bereits gepostet hatte.
Und wie dort auch erwähnt:
page_id wäre evtl. die bessere Wahl, da sich der page_title ja ändern kann, die page_id hingegen fix bleibt.

Blödes Beispiel:
eine deiner Seiten heißt "Bilder" also hast du dazu die Grafik "Bilder.gif" - jetzt kommst du auf die Idee die Seite umzubenennen in "Meine Bilder" ... und schon geht's schief mit der Grafik.
Die ID die der Seite zugeordnet ist hingegen, ändert sich dadurch nicht.

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
gaby

Offline Offline

Posts: 7


« Reply #23 on: April 09, 2008, 03:36:35 PM »

Hallo Bernd,

danke für deine Antwort. Das es mit der Page_id besser wäre habe ich mir schon gedacht und ich habe es auch schon ausprobiert. Aber wahrscheinlich war ich zu doof meine Bilder dementsprechend richtig zu benennen, es hat nämlich nicht geklappt. undecided
Deshalb jetzt Page_title.

liebe Grüße

Gaby
Logged
Cygn

Offline Offline

Posts: 6


« Reply #24 on: April 09, 2008, 03:46:33 PM »

Hallo Henry,

ich denke auch, dass es wirklich wichtig ist, vorallem weil es eigentlich viele verschiedene Wege gibt und man als PHP-Anfänger echt schnell den Durchblick verliert.
Meiner Ansicht nach wäre dies etwas für die Dokumentation.
By the way. ich habe folgenden Code-Schnippsel im englischen Forum gefunden und er funktioniert auch.
Auszug:
<body>
<div id="container">
<div id="header">
<img src="http://www.meineseite.de/wb/media/header/<?php echo page_title('','[PAGE_TITLE]'); ?>.gif">
</img>

</div>
.......
In den Mediaordner lade ich meine Bilder hoch, die den Namen der jeweiligen Seite haben.
Für meine Anforderungen reicht diese schlichte Lösung völlig aus.
Frage: Spricht irgendetwas dagegen, z.B. nicht stabil oder so?Huh

Danke und liebe Grüße

Gaby


Das ganze ist meiner Ansicht nach stabil solange für jede Seite auch wirklich ein Bild existiert. Ich korrigiere den Code mal in Rückblick darauf.

Code:
<img src="<?php 
$pfad
"bilder"// Hier den Bilderordner angeben
$endung ".jpg"// Hier die Dateiendung der Bilder angeben
$platzhalter "blank.gif"// hier den Pfad zu einem Platzhalter Bild angeben
$pfad "../".$pfad."/";
if(
file_exists($pfad.PAGE_TITLE.$endung))
{
echo 
$pfad.PAGE_TITLE.$endung;
}
else {
echo 
$pfad.$platzhalter;



?>

" />

Dieser Script erklärt sich denke ich von selbst. Er wählt Bilder mit der angegebenen Endung aus dem angegeben Ordner mit dem Namen der aktuellen Seite, falls nicht vorhanden die Platzhalter Datei die ihr auch angeben müsst. Viel Spaß ich hoffe es hilft.

Mein zweiter Post und schon sowas Wink na dass kann hier ja heiter werden. Falls sich jemand revanchieren möchte. Ich brauche Hilfe: http://www.websitebaker2.org/forum/index.php/topic,9283.0.html ^^
« Last Edit: April 09, 2008, 03:50:17 PM by Cygn » Logged
Pages: [1] 2 3   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!