Unterschiedliches Hintergrundbild je Seite
am 13.10.2010 - 10:26 Uhr in
Hallo Community,
hab jetzt eine ganze Weile (hier im Forum) nach einer Lösung gesucht und nix gefunden. Daher frag ich jetzt einfach mal...
Bin gerade dabei meine dritte Website in Drupal zu erstellen und suche nun nach einer "Funktion", mit der man beim erstellen eines Beitrags (Seite, Artikel, Blog) ein separates Hintergrundbild zuweisen kann. D. h. ein Hintergrundbild für die gesamte Seite, nicht nur für den Content oder so.
Habe bereits ein kleines Tut gefunden, wo dies mit Hilfe von CCK, FileField und ImageField gelöst wurde. (http://schnere.bveml.net/de/content/drupal-6-verschiedene-hintergrundbil...)
Klappt soweit eigentlich alles, bis auf die Tatsache, dass mein "Hintergrundbild" immer nur als Content-Hintergrundbild eingebunden wird. Hier mal ein Screenshot: http://www.qpic.ws/images/bg.png
Wäre euch echt dankbar für eine kleine Anregung, wo mein Fehler liegt. Ich denke nämlich, dass ich der Lösung bereits dicht auf den Fersen bin.
Vielen Dank für eure Antworten!
- Anmelden oder Registrieren um Kommentare zu schreiben
Und möchtest du es als
am 13.10.2010 - 16:37 Uhr
Und möchtest du es als body-Hintergrund haben, oder wie?
Sonst aber schon wie in dem Bsp, dass es direkt mit hochgeladen wird?
-----------
Luca Curella
Kooperative Netze - Berlin
Genau, ich hätte das gerne
am 14.10.2010 - 07:46 Uhr
Genau, ich hätte das gerne als Body-Hintergrundbild, und ich würde es gerne mit Hilfe von CCK hochladen können, wenn ich einen Beitrag verfasse. Also Beitrag verfassen, Hintergrundbild wählen/hochladen, speichern und gut.
Ich hab das jetzt einmal im Body-Tag probiert:
<body class="<?php print $classes; $base_path.$backgroundimage; ?>">
bzw
<body class="<?php print $classes . $base_path.$backgroundimage; ?>">
weil ich keine Ahnung groß von PHP hab. :(
Und einmal hab ich das in Form eines DIVs eingefügt:
<div id="..."><?php print $base_path.$backgroundimage; ?></div>
edit: code-tags eingefügt
Warum verwendest Du nicht das
am 14.10.2010 - 09:43 Uhr
Warum verwendest Du nicht das Headerimage Modul und weist über die entsprechenden Parameter die URL / NodeID zu wo es ausgegeben werden soll.
So ist das hier auch umgesetzt von mir: www.emotions4life.de
Die Anleitung von mir findest Du im Handbuch: http://www.drupalcenter.de/handbuch/28502
Das Ganze musst Du dann nur noch entsprechend positionieren oder Dir nach Deinen Belieben umschreiben.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Wow, das is echt mal eine
am 01.09.2023 - 12:43 Uhr
Wow, das is echt mal eine starke Site!
Vielen Dank auch für deine Antwort und den Tip mit dem Headerimage-Modul! Ich werde mir das gleich mal genauer angucken und anschließend berichten.
Genau das ist das "Problem" mit Drupal für Anfänger ... es gibt so viele Module, sodass man den Wald vor lauter Bäumen nicht sieht. Und ich habe wirklich (!) eine ganze Zeit lang nach einer Lösung gesucht.
Ok, bin deiner Anleitung nun
am 01.09.2023 - 12:43 Uhr
Ok, bin deiner Anleitung nun Schritt für Schritt gefolgt ...
Bislang habe ich jetzt aber nur das selbe Ergebnis erzielen können, wie zuvor auch schon - das eingebundene Bild wird nur im Content-Bereich dargestellt.
http://www.qpic.ws/images/unbenanntszs.png
Was mir nicht ganz klar ist - und wo bereits ein Fehler liegen könnte - egal, wohin ich den "Header Image"-Block auch schiebe, das Bild wird immer im selben Bereich des Contents eingebunden. Btw. ich benutze als Grundlage das Zen-Theme.
Ich habe auch versucht das Hintergrund-Bild über das CSS "page-backgrounds" einzubinden.
#page-wrapper {
background-image:url(<?php print $headerimage; ?>);
}
Hier tut sich aber auch garnix :(
Ebenso wenn ich den Hintergrund in den Body-Tag einfüge:
<body class="<?php print $classes; ?>" style="background-image:url(<?php print $headerimage; ?>);">
oder in Form eines divs unterhalb des Body-Tags:
<div style="background-image:url(<?php print $headerimage; ?>)"></div>
"Flush all caches" habe ich gewissenhaft nach jeder Änderung ausgeführt.
Wo liegt denn mein Denkfehler - abgesehen davon, dass ich mich noch nicht weiter mit PHP auseinandergesetzt habe? ;)
Das Problem ist recht simpel:
am 14.10.2010 - 11:30 Uhr
Das Problem ist recht simpel: Die $headerimage Variable beinhaltet einen vollständigen img Tag.
Du hingegen benötigst aber nur den Pfad zum Bild, dazu musst Du die themename_preprocess_headerimage_block Funktion anpassen:
<?php
/**
* Process variables to format the headerimage block.
*
* $variables contains:
* - $node
* - $teaser: TRUE = display node as teaser; FALSE = display full node
*
* @see headerimage-block.tpl.php
*/
function themename_preprocess_headerimage_block(&$variables) {
$node = $variables['node'];
$teaser = $variables['teaser'];
$variables['unpublished'] = !$node->status;
if ($teaser && isset($node->teaser)) {
$variables['content'] = $node->teaser;
}
else {
$variables['content'] = $node->body;
}
$variables['headerimage'] = $node->field_headerimage[0]['filepath'];
}
?>
Das Bild kannst Du dann mit:
<img src="<?php echo base_path(). $headerimage; ?>" alt="" />
ausgeben
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Vielen Dank für deine
am 01.09.2023 - 12:43 Uhr
Vielen Dank für deine schnelle Antwort, Sense! Wie du siehst bin ich was PHP anbelangt nicht so eine Leuchte - ich gelobe aber Besserung! ;)
Im Moment kann ich deine Anleitung nicht testen. Werde dir aber baldmöglichst Rückmeldung geben.