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

Ausgabe eines Feldes modifizieren

Eingetragen von t2k (258)
am 20.09.2013 - 14:47 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x oder neuer

Hallo zusammen,

ich habe ein kleines aber für mich gerade unlösbares Problem.

Ich habe in meinem Inhaltstypen ein Image-Feld mit dem Namen "field_bild" (das sich wiederholen lässt).
Diese Bilder sollen in einer kleinen Galerie angezeigt werden (jQuery-adgallery-Plugin).
Nun habe ich eine Datei "field--field_bild.tpl.php" angelegt, in der ich die Bildausgabe entsprechend aufbereiten möchte.

Dort drin steht nun:

<div class="ad-nav">
        <div class="ad-thumbs">
          <ul class="ad-thumb-list">

     <?php foreach ($items as $item){ ?>
        <li>

            <?php  print render($item); ?>

        </li>
      <?php  } ?>
      </ul>
      </div>
      </div>

Nun brauche ich aber die Felder nicht als schnödes img-Tag, sondern in dieser Form:

<a href="testbild.jpg"  rel="gallery" data-fancybox-group="gallery" class="box">
<img src="testbild-thumbnail.jpg" alt="" longdesc="testbild.jpg" title="" />
</a>

Wie kann ich das erreichen?
In der field.tpl komm ich da ja nicht weiter oder?

Vielen Dank im voraus und Grüße!
t2k

‹ Kommentare auf der Startseite (für angemeldete Benutzer) Ausgabe eines Feldes modifizieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

So etwas löse ich meist über

Eingetragen von wla (9461)
am 20.09.2013 - 15:12 Uhr

So etwas löse ich meist über eine preprocess-Funktion in der template.php-Datei im eigenen Theme. Dort kannst Du dann für das Bild eine Funktion aus der Drupal-API nehmen theme('image', .... dadurch wird die Funktion theme_image aufgerufen, die man über einen Konfigurations-Array steuern kann. Oder Du nimmst theme_image_style mit noch weiteren Möglichkeiten. Das Theming in Drupal ist schon ein etwas umfangreicheres Kapitel und mit den Template-Files kratzt Du nur an der Oberfläche.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist starker Tobak!!! Ich

Eingetragen von t2k (258)
am 21.09.2013 - 17:02 Uhr

Das ist starker Tobak!!!

Ich hab mir nun am das Modul "Custom Formatters" angesehen, da ich las, das dies der beste Weg sei, in die Darstellung einzugreifen.

Dort gibt es ja auch schon einen vorgefertigten Formatter der z.B. ein Thumbnail auswirft und mit einem größeren Bild verlinkt. Dieser sieht so aus:

// Formatter settings.
$settings = $variables['#display']['settings'];

$element = array();
foreach ($variables['#items'] as $delta => $item) {
  $element[$delta] = array(
    '#type' => 'link',
    '#href' => file_create_url(image_style_path($settings['destination_image_style'], $item['uri'])),
    '#title' => theme('image_style', array(
      'style_name' => $settings['source_image_style'],
      'path' => $item['uri'],
    )),
    '#options' => array(
      'html' => TRUE,
    ),
  );
}
return $element;

Ich kann nicht mal ansatzweise erkennen, wie und wo ich das was ändern muss um diese Ausgabe zu erzielen:

<a href="testbild.jpg"  rel="gallery" data-fancybox-group="gallery" class="box">
<img src="testbild-thumbnail.jpg" alt="" longdesc="testbild.jpg" title="" />
</a>

Kann da jemand was zu sagen?
Oder ist dieser Weg zu umständlich?
Das scheint ja wirklich extrem kompliziert... :-(
Vielleicht hat jemand ja auf die schnelle eine Lösung.

Vielen Dank und Grüße!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Schau dir das mal an

Eingetragen von Ionit (1802)
am 21.09.2013 - 17:16 Uhr

Schau dir das mal an ... das kann man machen solange nicht zu viele Images im Multiplem Field vorhanden sind.
http://cvanderlinden.com/blog/drupal-7-node-tpl-php-templating-rendering...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Immer schön nett bleiben

Eingetragen von zwerg (736)
am 21.09.2013 - 23:18 Uhr
t2k schrieb

Das ist starker Tobak!!!

Mit solchen Aussagen hilfst du weder dir, noch anderen mit ähnlichen Problemen.

Wie Werner schon sagt ist Theming in Drupal sehr umfangreich. Je nachdem, wie es bei dir am Ende aussehen soll führen auch viele Wege nach Rom. Manche über .tpl-Datein, Views und CSS, andere über Module.

Vor allem für Views gibt es genug Möglichkeiten, Galerien zu erstellen. Das Öffnen in einer Lightbox o.ä. kannst du z.B. dort direkt einstellen, die Anordnung zur Galerie ist vor allem eine CSS-Sache (Stichwort float:left; margin, ...).

  • Anmelden oder Registrieren um Kommentare zu schreiben

@zwerg: Das war von mir

Eingetragen von t2k (258)
am 22.09.2013 - 19:32 Uhr

@zwerg:
Das war von mir sicherlich nicht unfreundlich oder als Angriff gemeint.
Einen eigenen Fieldformatter zu schreiben ist aber - für mich als Anfänger - nun mal alles andere als intuitiv oder selbsterklärend.
Aber scheinbar ist dies die einzige Möglichkeit, in die Ausgabe grundlegend einzugreifen.
Und das sag ich obwohl ich mich jetzt schon eine Weile damit auseinandergesetzt habe ...

Was die Views-Variante angeht, so weiß ich nicht, wie ich ein View erstellen kann, den ich für unterschiedlichste Seiten einsetzen kann.
In meinem Fall müsste ich von einer Views-Übersichts-Seite (wo alle Artikel gelistet werden) auf ein View (der den Artikel ausgibt) verlinken.
Geht das überhaupt irgendwie?

@Ionit:
Vielen Dank für den Hinweis. Ich hab das in der field.tpl in folgender Form eingesetzt:

<?php
$images
= array();
$i = 0;
foreach (
$items as $image) {
 
$images[$i] = render($image);
 
$i++;
}
?>


<?php
foreach ($images as $printable) {
  echo
$printable;
}
?>

Leider ist mir nicht klar, wie ich hier auf die verschiedenen Bildstile zugreifen kann (also thumb und medium).
Oder geht das hier nicht?

Vielen Dank und Grüße!
t2k

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du versuchst als Anfänger in

Eingetragen von wla (9461)
am 22.09.2013 - 19:56 Uhr

Du versuchst als Anfänger in Drupal bereits recht früh in den Eingeweiden zu basteln. Mache Dich bitte erst mal mit den ganzen vorhandenen Möglichkeiten vertraut. Sieh Dir zum Beispiel das Modul [do:ds Display Suite] und seine Möglichkeiten an und spiele damit. Kenntnisse von anderen Systemen stehen einem bei Drupal oft im Wege. Laß Dich auf Drupal und das, was dort möglich ist, einfach mal ein. Direkt zu Anfang meiner Arbeit mit Drupal tief ins Theming einzusteigen, hätte mich voll überfordert und ich hatte mit vielen Jahren IT Background eigentlich gute Voraussetzungen. Erfahrung muß man selber machen und das setzt viel Probieren und Testen voraus.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hier ein Beispiel: <?php$node

Eingetragen von Ionit (1802)
am 22.09.2013 - 19:59 Uhr

Hier ein Beispiel:

<?php
$node
= node_load($nid);
$image = field_get_items('node', $node, 'field_NAME');
foreach (
$image as $key=>$value) {
$output = field_view_value('node', $node, 'field_NAME', $image[$key], array(
 
'type' => 'image',
 
'settings' => array(
   
'image_style' => 'thumbnail', // <------------------------------------------ place your image style here
   
'image_link' => 'content',
  ),
));
print
render($output);
}
?>

weitere Infos http://benbuckman.net/tech/11/04/how-render-image-fields-drupal-7

Über Google findest du noch weiter zahlreiche Informationen und Examples ....

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Werner: Danke für den

Eingetragen von t2k (258)
am 23.09.2013 - 01:37 Uhr

@Werner:
Danke für den Hinweis!
Ich werde mir Display Suite noch einmal näher ansehen.
Mir schien der Weg über die Template-Dateien als der Richtige, um die Ausgabe wirklich gezielt und sauber anzupassen.
Ich lerne aber gern dazu!

@lonit:
Danke für den Code!
An welcher Stelle ist der einzufügen?
Direkt in die field.tpl? Oder in die template.php? Oder in einen Custom-Formatter anzulegen? Oder in ein Modul?

Beste Grüße,
t2k

  • 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 1 Woche 6 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 15 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

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