[gelöst] Wechselnder Header-Hintergrund per Node
am 13.04.2010 - 11:35 Uhr in
Hallo zusammen,
ich befasse mich seit kurzem (beruflich) mit Drupal, bin also noch ein Anfänger, aber in PHP bzw. auch CMS bewandert.
Ich möchte folgendes erreichen: Bei der Erstellung einer Page soll der Benutzer ein Bild zuordnen können, dass dann als Hintergrund für den Header angezeigt wird. Wird kein Bild ausgewählt, wird das korrespondierende HTML-Element nicht angezeigt.
Ich habe dazu einen Inhaltstyp "header_image" angelegt, dort kann man Bilder hochladen.Für das Feld habe ich eingestellt, dass die URL zum Bild angezeigt werden soll (Diese packe ich für das Header-Div in style="background-image: usw.). Mein Problem ist nun, dass diese im Beitrag selbst UND an der Stelle angezeigt wird, wo ich es in der page.tpl.php definiert habe. Es soll aber nur dort erscheinen, nicht noch einmal im Beitrag. Außerdem erscheinen, wenn ich die URL ausgeben will, jede Mange DIVs drum herum. Ich möchte nur die URL ausgegeben bekommen.
Wie kann ich das erreichen? Vielen Dank im voaus für Eure Hilfe!
Christoph
- Anmelden oder Registrieren um Kommentare zu schreiben
CCK und preprocess
am 13.04.2010 - 12:04 Uhr
Hi
kannst du dir hier ansehen:
http://www.comm-press.de/blog/drupal-session-bildbearbeitung-mit-imageca...
http://www.vermietung-am-see.de/
http://www.drupalcenter.de/handbuch/23606
Die Nodes bekommen ein CCK Imagefield und das wird dann verwendet. Du kannst das über preprocess in die page.tpl.php laden.
Viele Grüße,
Kars-T
Header image per Node
am 13.04.2010 - 12:25 Uhr
Hallo.
Ich schreib mal auf, wie ich das machen würde. Eventuell möchtest Du diesen Weg ja auch gehen.
Wenn man als Argument-Code dann diesen Code verwendet ...
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) {
return arg(1);
}
?>
dann sollte das zum Node gehörende Bild in dem Block angezeigt werden.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank für deine
am 13.04.2010 - 12:43 Uhr
Vielen Dank für deine Antwort. Das jedoch ist nicht ganz die Lösung für mein Problem. Ich will die URL des Bildes ausgeben und so im Style-Attribut "background-image" nutzen. Nicht als img-Tag.
Fast klappt es ja auch. Ich muss nur wissen, wie ich das Feld header_image_node im Template aufrufe, dass wirklich nur die URL ausgegeben wird. Momentan mache ich das so:
print $node->field_header_image_node[0]['view']
Dazu habe ich für den Inhaltstyp ein eigenes Template angelegt, dass nur
print $content
beinhaltet. Die Ausgabe klappt, um die URL herum jedoch sind mehrere DIVs mit Klassen wie "field", "field-items" usw. Diese möchte ich verschwinden lassen.
Gruß,
Christoph
Hallo stBorchert, Danke auch
am 13.04.2010 - 12:51 Uhr
Hallo stBorchert,
Danke auch für diesen Tipp. Auch hier klappt die Ausgabe, jedoch habe ich auch hier ganz viele DIV's um den Inhalt herum. Ich benötige aber nur die URL. Kann ich das über ein Template für diese View steuern? Wie exkludiere ich dann diese ganzen DIV's, sodass letztlich nur der Inhalt ausgegeben wird.
Gruß,
Christoph
Views-Template
am 13.04.2010 - 13:06 Uhr
Wie exkludiere ich dann diese ganzen DIV's, sodass letztlich nur der Inhalt ausgegeben wird.
1. stellst Du beim Feld ein, dass nur die URL zum Bild ausgegeben wird und 2. überschreibst Du das entsprechende View-Template.
Warum Du allerdings nicht gleich die Bild-Ausgabe vom View verwendest ist mir schleierhaft. Da könntest Du sogar die Bildgrösse über ImageCache steuern.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Vielen Dank für Deine
am 13.04.2010 - 15:44 Uhr
Vielen Dank für Deine ausführliche Hilfe! Nachdem ich mich zunächst etwas blöd angestellt habe (Inhaltstyp falsch konfiguriert), habe ich es nun genau so hinbekommen, wie von Dir geschildert.
Das ich es ursprünglich nicht als Image aus der View heraus anzeigen wollte, liegt am umzusetzenden Layout, aber nun habe ich eine Lösung gefunden.
Gruß,
Christoph