Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Drupal7: mehrere Bilder in Node: 1 Bild in Anrisstext

Eingetragen von Vasco (89)
am 06.02.2011 - 09:06 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hi!

Ich bin dabei mit Drupal 7 eine Gallerie zu basteln. Dazu hänge ich die Bilder an eine Node an und organisiere die nodes mittels Views und Taxonomy und gebe die Bilder mittels colorbox aus.

Das klappt soweit wie gewünscht, aber: Ich habe ein Imagefield pro node, welches eine unbegrenzte Anzahl an Bildern erlaubt. Nun werden leider in der Anrissansicht (teaser) alle Bilder angezeigt. Ich hätte es gerne aber auch eine bestimmte Anzahl begrenzt (vorzugsweise 1).

Habe ich diese Einstellmöglichkeit übersehen oder gibt es das so einfach nicht? Auf der Suche nach einer Lösung bin ich über ein paar Workarounds gestolpert, aber alle samt gefallen mir nicht wirklich, da es das immer hinten rum macht:
- 2 Bildfelder anhängen, No1 begrenzt auf 1 als Preview und No2 unbegrenzt für den Rest. Bei der Ausgabe als volle Nodeansicht dann einfach beider hintereinander ausgeben
- mittels CSS alles ausser dem ersten ausblenden (bin mir aber unsicher ob das überhaupt geht, da es keine klasse first etc gibt. Müstte ich noch rumprobieren
- villeicht geht es auch noch über das Theme

Meine bisherigen Versuche sind auf der Testseite zu finden. Ist noch ziemlich roh und einiges zu tun (insb. theming). Aber ich fange ja gerade erst an.

Zurück zur Basisfrage: ist es möglich ein multiple image field aus einer Node für den Anrisstext auf 1 Bild zu beschränken?

Danke für weitere Ideen oder gar Lösungen :)

‹ Profil funktioniert nicht [gelöst] Vokabular einem Inhaltstyp zuweisen D7 ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du könntest in der

Eingetragen von Exterior (2903)
am 06.02.2011 - 12:47 Uhr

Du könntest in der Feld-Anzeige (zu finden bei den Einstellungen des Inhaltstyps, also dort, wo man auch neue Felder einfügt usw.) die Anzeige des Imagefields im Teaser komplett unterbinden, dann gibt das Imagefield von sich aus gar nichts aus.

Dann nimmt man sich eine entsprechende node-Nodetype.tpl.php, prüft darin, ob gerade der Teaser angezeigt werden soll und gibt dafür entsprechend das erste Bild und den Content aus. Dann wird das Bild über die Template-Datei ausgegeben. Für Komplett-Ansicht des Nodes kann man einfach nur den Content ausgeben, weil da das Imagefield die Bilder mit im Content einbindet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vieleicht hilft das hier:

Eingetragen von Thoor (3678)
am 06.02.2011 - 12:51 Uhr

Vieleicht hilft das hier: http://drupal.org/node/622944#comment-3442292

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Exterior, danke für deinen

Eingetragen von Vasco (89)
am 13.02.2011 - 07:52 Uhr

Hi Exterior,

danke für deinen Hinweis. Das wird der Weg, den ich bestreiten werde.

Der Vollständigkeithalber sei erwähnt, dass sich in Drupal 7 die Syntax für die Theming-dateien geändert hat. Es heisst nun node--Nodetype.tpl.php (also 2 Bindestriche).
Das hat mich leider Stunden gekostet weil es recht schlecht oder selten beschrieben ist. (und immer brav den Cache löschen, nachdem man ne neue .tpl.php hochgeladen oder geändert hat)

Sobald ich meine Lösung fertig habe werde ich sie hier posten. Noch scheitere ich an dem ordentlichen Ansprechen des Bildes aus dem Imagefield, da ich Imagecache und die Spracheinstellungen gerne berücksichtigt hätte. Somit noch etwas probieren und lesen vor mir ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ho Thoor auch dir Danke für

Eingetragen von Vasco (89)
am 13.02.2011 - 07:51 Uhr

Ho Thoor

auch dir Danke für deinen Kommentar, aber ich denke es gibt 2 Dinge zu erwähnen:

1) es funktioniert derzeit nur mit der DEV-Version von Views nicht mit der aktuell releasten
2) Views ist denke ich nicht dafür zuständig Teaser eines Nodetyps zu überschreiben. Ich müsste dann alle Seiten durch Views schleusen und es darüber machen. Das ist mir aber ehrlich gesagt zu Aufwendig, daher gehe ich den Weg über die Template-Dateien

Als weitere Option sei übrigens auf Contemplate hingewiesen, was jedoch für Drupal 7 noch sehr sehr roh ist und sich nicht ohne modifikation installieren lassen soll. Von daher für mich ausgeschieden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht hilft Dir auch

Eingetragen von Micha1111 (290)
am 13.02.2011 - 09:30 Uhr

Vielleicht hilft Dir auch mein Lösungsvorschlag unter

http://drupal7.michas-cms-testseite.de

im Buch unter Beispiel 02 - "Die "Ein-Node-Bildergalerie"

  • Anmelden oder Registrieren um Kommentare zu schreiben

die/meine Lösung

Eingetragen von Vasco (89)
am 13.02.2011 - 10:30 Uhr

Hiho,

also ich bin am Ziel. Ich danke allen, die mir auf meinem Weg geholfen haben. Wie so oft ist es in Drupal 7 deutlich einfacher als angenommen. Aber die (noch fehlende) Doku macht es entsprechend schwierig die richtige Lösung zu finden.
Um es der Nachwelt zu vereinfachen folgt hier mal eine art Howto wie ich zum Ziel gekommen bin.

Aufgabenstellung:
Zur Darstellung von Gallerien soll ein Inhaltstyp erstellt werden, welches ein Feld mit unbegrenzter Anzahl an Bildern enthällt. Diese Bilder sollen auf der Vollansicht mittels Colorbox angezeigt werden.
Für die Teaseransicht (Anrisstext z.B. auf der Startseite) soll jedoch nur das jeweils 1. Bild als Thumbnail angezeigt werden und auf den vollen Beitrag verweisen.

Lösungsweg:

  1. erstelle den Inhaltstyp bildergallerie (siehe: http://www.klugpopeln.de/images/drupal7/content_type_bildergallerie.jpg )
  2. kopiere node.tpl.php aus deinem Theme Verzeichnis nach node--bildergallerie.tpl.php (doppelter Bindestrich) im selben Verzeichnis (beide Dateien müssen existieren, nicht umbennen!)
  3. editiere node--bildergallerie.tpl.php vor der Stelle wo es heißt print render($content);
  4. füge davor ein:
          if ($teaser)
            {
            print render($content['field_gallerie_picture'][0]);
            hide($content['field_gallerie_picture']);
            }
  5. lade die modifizierte Datei auf deinen Server (gleiches Verzeichnis wie node.tpl.php aus deinem Theme)
  6. Lösche den Cache deiner Seite um das neue Template zu verwenden
  7. genieße in der Vorschauansicht (Teaser) das jeweils einzelne Bild
  8. modifiziere den Textumfluss oder Rahmen etc über die css-datei deines Themes

Was bewirkt das eigentlich?
- die node--bildergallerie.tpl.php überschreibt die Standard-Seite für Nodes sofern Inhalt vom Typ bildergallerie angezeigt wird.
- if ($teaser) prüft ob die Teaser-Ansicht (Anrisstext) oder die volle Node angezeigt werden soll (ist false für die volle Node)
- $content enthällt den Inhalt deines Beitrages, so wie es unter Struktur --> Inhaltstyp eingestellt ist.
- hide() nimmt einzelne Felder aus dem $content raus (das Theming überschreibt somit die Systemeinstellung)
- print render($content['field_gallerie_picture'][0]); gibt das erste Bild gemäß deinen Einstellungen unter Felder Verwalten zu deinem Inhaltstyp aus.

Zum besseren Verständnis mal etwas mehr Code aus meinem Template. Im übrigen hab ich das an Bartik gemacht, sollte aber eigentlich mit allen Drupal 7 Themes analog funktionieren.

  <div class="content clearfix"<?php print $content_attributes; ?>>
    <?php
     
// We hide the comments and links now so that we can render them later.
     
hide($content['comments']);
     
hide($content['links']);
      if (
$teaser)
        {
        print
render($content['field_gallerie_picture'][0]);
       
hide($content['field_gallerie_picture']);
        }
      print
render($content);
   
?>

  </div>

Ich hoffe das ist halbwegs nachvollziehbar. Ansonsten bitte kommentieren wo es scheitert und vielleicht auch warum und ich werde versuchen es zu ergänzen.
Danke allen, die mir auf meinem Weg behilflich waren.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Super Sache, poste die

Eingetragen von Exterior (2903)
am 13.02.2011 - 14:19 Uhr

Super Sache, poste die Anleitung doch ins Handbuch, dort ist sie besser aufgehoben und versinkt nicht unter anderen Threads :)

Einfach mal diesen Link aufrufen: http://www.drupalcenter.de/handbuch/147

Und dann unten auf "Untergeordnete Seite hinzufügen" klicken.

  • Anmelden oder Registrieren um Kommentare zu schreiben

oh, danke für den Hinweis.

Eingetragen von Vasco (89)
am 13.02.2011 - 14:45 Uhr

oh, danke für den Hinweis. Hab ich doch glatt gemacht :)

http://www.drupalcenter.de/handbuch/33559

  • Anmelden oder Registrieren um Kommentare zu schreiben

Manchen reicht vielleicht auch einfach ein 2. Bild-Feld

Eingetragen von kurbelursel (54)
am 13.02.2011 - 15:12 Uhr

Hallo,

zunächst stand ich auch vor diesen Anforderungen. Aber ich kann mir vorstellen, dass wir vielleicht mal ein anderes Bild für den Anrißtrext möchten, als durch irgendeinen Programmeingriff automatisch festgelegt.

Daher habe ich einen Inhaltstypen "Galerie" mit einem einfachen Bildfeld und Beschränkung auf 1 angelegt,
sowie ein weiteres Bildfeld mit der Bezeichnung Galerie mit unbegrenzt angelegt.

In der Ansicht lege ich wieder fest, dass im Anrißtext das Bildfeld als Thumpnail gezeigt wird etc.
Und in der Vollansicht ist die Reihenfolge dann: Titel, Bild, Body, Galerie (auch natürlich dargestellt mit colorbox).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sowas ist natürlich die

Eingetragen von Exterior (2903)
am 13.02.2011 - 15:48 Uhr

Sowas ist natürlich die einfachste Lösung (sowas verwende ich auch, also ein extra Titelbild-Feld) aber dafür benötigt man eben ein extra Feld. Hat beides seine Daseinsberechtigung. Das eine ist flexibler, dafür ist das andere einfacher für den Endnutzer und spart Speicherplatz.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wieso spart das Speicherplatz?

Eingetragen von kurbelursel (54)
am 13.02.2011 - 16:02 Uhr

Das eine Bild, das ich für den Anrißtext und für die Vollansicht nehme, braucht doch deshalb nicht mehr Speicherplatz als die unbeschränkt in die Galerie eingespeisten Bilder. - Oder doch?

Das könnte ich nur annehmen, wenn ich das Bild doppelt hoch lade. Aber wenn ich es im Anrißtext und neben dem Body-Text zeige, brauche ich es ja nicht auch nochmal in die darunter angebrachte Galerie rein packen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Beispiel: Variante 1 - Man

Eingetragen von Exterior (2903)
am 13.02.2011 - 17:29 Uhr

Beispiel:

Variante 1 - Man zeigt das 1. Bild der Galerie im Teaser über das Template an

Man läd 30 Bilder in die Galerie
--> Das erste Bild wird im Teaser angezeigt, auf der Platte liegen 30 Bilder

Variante 2 - man zeigt ein extra Titelbild an

Man läd 30 Bilder in die Galerie
--> Das Titelbild wird in ein extra Feld geladen --> Es liegen 30 Galerie-Bilder + das Titelbild auf der Festplatte --> mehr Speicherverbrauch

Zitat:

Aber wenn ich es im Anrißtext und neben dem Body-Text zeige, brauche ich es ja nicht auch nochmal in die darunter angebrachte Galerie rein packen.

Damit geht die klare Trennung der Galerie-Bilder flöten, das finde ich persönlich z. B. nicht gut. Bei den Galerie-Bildern sollte das angezeigt werden, was ich als Galerie-Bilder hochlade. Ein Galerie-Bild ist ein Galerie-Bild und ein Titelbild eben nicht - meine Meinung.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also kein vermehrter Speicherplatz.

Eingetragen von kurbelursel (54)
am 13.02.2011 - 18:44 Uhr

Danke für Deine Antwort. Ich fürchtete schon, bei mir läge ein Denkfehler vor.

Exterior schrieb

Variante 2 - man zeigt ein extra Titelbild an

Man läd 30 Bilder in die Galerie
--> Das Titelbild wird in ein extra Feld geladen --> Es liegen 30 Galerie-Bilder + das Titelbild auf der Festplatte --> mehr Speicherverbrauch

Aha deshalb der vermehrte Speicherplatz. Mein Vorschlag beruhte natürlich, um bei Deinem Beispiel zu bleiben, auf 1 "Titelbild" und 29 Galeriebildern. - Was also doch kein vermehrter Speicherplatz darstellt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie gesagt, kann man so

Eingetragen von Exterior (2903)
am 13.02.2011 - 19:12 Uhr

Wie gesagt, kann man so machen, würde ich persönlich allerdings nicht in Erwägung ziehen, weil ich es nicht mag, Bilder in getrennte Felder zu laden und sie dann zusammen zu werfen. Wenn ich zwei Felder verwende, würde ich auch eine klare Trennung festlegen - Das Titelbild wird nur als solches gezeigt und wird nicht nebenbei noch als Galerie-Bild angezeigt. Und bei den Galerie-Bildern werden nur die Bilder angezeigt, die man auch als solche hochläd. Beides getrennt hochzuladen und getrennt zu behandeln aber dann zusammen als Galerie-Bilder anzuzeigen finde ich zu durcheinander.

Aber wie gesagt, das ist meine persönliche Meinung und hängt mit meinen Vorlieben zusammen, man kann es natürlich trotzdem so machen ;) Aber ich "verschwende" dann lieber etwas Speicherplatz zu Gunsten einer klareren Struktur oder würde einfach das erste Bild der Galerie-Bilder im Teaser anzeigen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bin völlig Deiner Meinung.

Eingetragen von kurbelursel (54)
am 13.02.2011 - 22:26 Uhr

Bin völlig Deiner Meinung. Das heißt aber in seiner Konsequenz, dass Du dann doch auch nicht einfach Galeriebild als Titelbild verwendest, um nicht zu sagen, "missbrauchst"?

Das Titelbild muß ja erst mal die gesamte Galerie repräsentieren. Das kann natürlich mal eines der Galeriebilder (oder ein Ausschnitt daraus) sein, muß aber nicht.

Zum Beispiel bei meiner Sternzeichenparty zeigen sich die 13 Puppen in ihren 12 Sternzeichenkostümen in der Galerie von allen 4 Seiten.
Aber fürs Titelbild mussten sie dann noch für ein Gruppenbild posieren.

Oder bei meiner Anleitung zum Kurbelanfang, da habe ich das Bild heraus gestellt, das ich sonst tatsächlich nach jedem Bild hätte dazwischen schieben müssen. Weil sich dieser Grifff immer wiederholt.

Will sagen, ich machte automatisch gleich auch Titelbilder, wenn ich in Serie fotografiere. Und tatsächlich möchte ich mein Titelbild nicht unbedingt in der Galerie haben, sondern lege Wert auf seinen speziellen Zweck und daher den gesonderten Platz.

Dies war natürlich auch nur meine persönliche Meinung. Damit Deine nicht so alleine ist ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

mehrere Wege fuehren nach Drupal

Eingetragen von Vasco (89)
am 14.02.2011 - 04:36 Uhr

Hiho,

wie in Drupal ueblich fuehren mehrere Wege zum Ziel. Der von mir skizzierte Weg beschreibt denke ich aber einen durchaus ueblichen Weg, den viele Gallerien (ausserhalb von Drupal) so beschreiten. Natuerlich gibt es andere Loesungen, die sicher auch ihre Daseinsberechtigung haben. Fuer meine Zwecke stellt diese Loesung jedoch das Optimum dar, da es fuer den Benutzer leicht und eingaengig ist. Sollte der Administrator mal eingriff nehmen wollen, so kann die Reihenfolge ueber ein Edit der Node angepasst werden, was sich auch auf das Vorschaubild auswirkt.
Von ungewollten Umsortierungen aus dem System heraus habe ich bisher noch nichts feststellen koennen. Mag aber sein, dass andere Module (als die meinigen) z.B. nach Dateinamen sortieren und somit meine (manuelle) Reihenfolge vom Hochladen oder umsortieren aendert.
Mit meinen Modulen geschieht es bislang nicht, somit finde ich die Loesung fuer mich durchaus elegant.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 22 Stunden 38 Minuten
  • Hey danke
    vor 1 Tag 17 Stunden
  • Update: jetzt gibt's ein
    vor 2 Tagen 11 Stunden
  • Hallo, im Prinzip habe ich
    vor 6 Tagen 21 Stunden
  • Da scheint die Terminologie
    vor 1 Woche 14 Minuten
  • Kannst doch auch alles direkt
    vor 1 Woche 4 Tagen
  • In der entsprechenden View
    vor 1 Woche 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 4 Tagen
  • gelöst
    vor 4 Wochen 19 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 13 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