Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] CCK Filefield: 3 Bilder hochladen -> Wie greife ich in node-meinhaus.tpl.php drauf zu?

Eingetragen von PhilB (139)
am 27.04.2010 - 13:28 Uhr in
  • Themes & Theming
  • Drupal 6.x

Hallo,

ich hoffe ihr könnt mir Helfen.
Ich habe einen Inhaltstypen erstellt indem unter anderem 3 Bilder hochgeladen werden können. Das klappt soweit auch wunderbar.
Jetzt habe ich den Inhaltstyp gethemt und weiß nun nicht wie ich die Bilder laden kann.

mit

<?php print $form->field_bild1['0']['filepath'] ?>

kann ich zB den Pfad anzeigen - das funktioniert. Wenn ich nun das PHP Schnipsel oder testweise den ausgeschriebenen Pfad in folgenden Code einfüge wird leider kein Bild angezeigt.

<img src="sites/default/files/3238497111_b700500f63.jpg" alt="Test" title="Test">
<?php   print theme('imagecache', 'Thumbnail','sites/default/files/3238497111_b700500f63.jpg', $alt, $title, $attributes);    ?>

funktioniert beides nicht. Letztere Zeile hab ich in irgendeinen Beitrag gefunden. Hat es Vorteile das ich Imagecache installiert habe? In wieweit beeinflusst ImageCache die Darstellung?

Danke,
gruß Phil

‹ [Gelöst] CSS-Dateien in Zen-Theme reduzieren Für Themekey Sub-Theme erstellen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Phil,

Eingetragen von hermanns (90)
am 27.04.2010 - 13:40 Uhr

1) in der node-wasauchimmer.tpl.php kannst du das Bild per $node->field_bild1... ausgeben. Allerdings du schreibst dass 3 Bilder hochgeladen wurden. Daher brauchst du eine foreach-Schleife. Ungefähr so:
foreach($node->field_bild1 as $bild){ pint '<img src="'.$bild[filepath].'" />'; }

2) Image-Cache bietet dir nun die Möglichkeit nicht das Original-Bild, sondern je nach Preset eine Verkleinerte bzw. veränderte Version des Bildes auszugeben. Unabhängig davon ob das Bild überhaupt so ausgegeben werden soll, kannst du deine node.tpl dann so abändern
foreach($node->field_bild1 as $bild){ pint '<img src="'.conf_path().'/files/imagecache/presetname/'.$bild[filename].'" />'; }
Damit generiert dir ImageCache das Bild nach den Vorgaben des Presets

Allerdings viel Einfacher gehts wenn du die Ausgabe in den Inhaltstypen definierst. Dann brauchst du in der node.tpl gar nichts machen.
Inhaltstypen / z.B. Artikel / Ansicht ...

Viel Spaß
Dirk

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ergänzender Tipp

Eingetragen von hermanns (90)
am 27.04.2010 - 13:42 Uhr

Such mal nach dem Modul drupalforfirebug und der Firebug-Erweiterung Drupal. Dann kannst du auch ohne Devel-Modul sämtliche Variablen der Node einsehen. Das vereinfacht das Templating auf der Ebene der node.tpl ungemein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Dirk, vielen Dank für

Eingetragen von PhilB (139)
am 27.04.2010 - 14:05 Uhr

Hallo Dirk,

vielen Dank für deine schnelle und ausführliche Hilfe. Leider klappt es noch nicht ganz.

Zitat:

in der node-wasauchimmer.tpl.php kannst du das Bild per $node->field_bild1... ausgeben.

Wenn ich das so mache, wird leider nur das Wort "Array" ausgegeben.

Zitat:

Damit generiert dir ImageCache das Bild nach den Vorgaben des Presets

Aber das macht ImageCache schon beim Upload des Bildes und ich kann bei der Ausgabe darauf zugreifen, oder?
Also ImageCache greift nur beim Upload ein - kann man das so sagen?

Danke,

gruß Phil

PS Danke auch für den Tipp mit Firebug, werd ich mir gleich anschauen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nicht ganz

Eingetragen von hermanns (90)
am 27.04.2010 - 14:41 Uhr

Imagecache ist eigentlich getrennt vom File-Upload zusehen. Da es lediglich ein vorhandenes Bild, wie der Name schon sagt, cached. Nicht mehr und nicht weniger. Von welcher Quelle ist dabei sekundär.
Die Array-Ausgabe ist richtig. Das bedeutet lediglich, dass dies nicht der letzte Zweig des Datenstroms ist, sondern noch viele Werte folgen. Somit musst du das ganze mit der foreach-Schleife durchlaufen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank

Eingetragen von PhilB (139)
am 27.04.2010 - 16:34 Uhr

Hallo Dirk,

vielen Dank für deine Hilfe. Würdest du mir nochmal weiterhelfen?

Leider klappt es bei mir nicht so wie du schreibst. Ich habe jetzt Testweise einen Inhaltstyp erstellt: /admin/content/node-type/profile/fields/field_profilfoto
Ich habe keine Einstellungen geändert. Unter "Felder anzeigen" ist als Ausgabe auch das Bild eingestellt.

Folgenden Code habe ich in die node-profile.tpl.php geschrieben:

<?php foreach($node->field_profilfoto as $bild){ print "<img src=\"".$bild['0']['filepath']."\" />"; } ?>

Mit dieser Anweisung klappt es nicht. Ich sehe keine Image, kein Platzhalter, einfach nichts. Cache auch geleert.

Auch mit der Anweisung klappt es nicht :(

<img src="<?php $node->field_profilfoto['0']['filepath']?>" />

<?php print $node->field_profilfoto['0']['view']; ?>

Nur mit dieser Anweisung klappt es. Allerdings wird dann das Foto in Originalgröße ausgegeben. Ich denke hier käme dann ImageCache zum Einsatz.
Unter admin/build/imagecache habe ich eine neue Voreinstellung "Profilfoto" angelegt. In dieser wird jedes Bild auf eine Breite von 200px skaliert. Aber wie verknüpfe ich nun ImageCache mit obiger Ausgabe? Das ist mir leider nicht ganz schlüssig.

Vielen Dank für deine Geduld,

gruß Phil

  • Anmelden oder Registrieren um Kommentare zu schreiben

Probier mal: <?phpglobal

Eingetragen von hermanns (90)
am 27.04.2010 - 17:09 Uhr

Probier mal:

<?php
global $base_url;
foreach(
$node->field_profilfoto as $bild){
    print
'<img src="';
    print
$base_url.'/'.conf_path().'/files/imagecache/profilfoto/'.$bild[filename]; // Wichtig: Imagecache so aufrufen! Nicht über Filepath! Bestimme den Pfad manuell.
   
print '" />';
}
?>

Weitere Erklärungen:
$base_url = http://www.deinedomain.de
conf_path() = Dein Config-Pfad, im normal Fall /sites/default/

Wenn du Die Bilder in einen Seperaten Ordner hochgeladen hast, also nicht direkt in den Files-Ordner, trage diesen nach profilfoto ein.
Z.B. /files/imagecache/profilfoto/Profilfoto/....
Das erste "profilfoto" bestimmt das Imagecache Preset, dass Zweite den Ordner den du im CCK-Feld bestimmt hast.

Der Fehler lag
print "<img src=\"".$bild['0']['filepath']."\" />"; } ?>
in der [0], die gibt nur die Array-Position aus. Das brauchst du bei der foreach-Abfrage nicht, dafür ist diese da. Sie geht jeden Array durch und ergänzt die [0] und [1] und wieviele Bilder du sonst noch hast.

Viel Spaß

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super es klappt

Eingetragen von PhilB (139)
am 27.04.2010 - 17:31 Uhr

Hallo Dirk,

vielen Dank für deine Geduld und tolle Hilfe.
Jetzt klappt alles. Schönen Abend noch,

gruß Phil

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 18 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Tagen 10 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 8 Wochen 9 Stunden
  • Update: jetzt gibt's ein
    vor 8 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 23 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association