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

Content-Rendering anders realisieren

Eingetragen von olek07 (20)
am 10.03.2015 - 17:39 Uhr in
  • Themes & Theming

Hallo zusammen,

ich habe einen Inhalts-Typ erstellt, der oben eine Header-Grafik und unten 2 Spalten hat. Da ich Zurb Foundaction CSS nutze, möchte ich, dass die HTML-Ausgabe etwa so aussieht:

<div class="row">
  <div class="small-12 columns">
        <img typeof="foaf:Image" src="/rsc/sites/default/files/haefner1030x390.jpg" width="1030" height="390" alt="" />
  </div>
</div>

<div class="row">
  <div class="small-12 medium-6 columns">
     <p>Text in der linken Spalte</p>
  </div>

  <div class="small-12 medium-6 columns">
     <p>Text in der rechten Spalte</p>
  </div>
</div>

Ich habe zu node.tpl.php <div class="row"> hinzugefügt und die Function rsc_preprocess_field so überschriben:

<?php

function rsc_preprocess_field(&$variables, $hook) {
   
$element = $variables['element'];
   
#krumo($element['#bundle']);
   
if ($element['#bundle'] == '2_spaltige_seite') {
        if (
$element['#field_name'] == 'field_header_bild') {
           
$variables['classes_array'] = array(
               
'small-12 columns',
            );
        }
        else {
           
$variables['classes_array'] = array(
               
'small-12 medium-6 columns',
            );
        }
    }
}
?>

und bekomme die folgende Ausgabe:

<div class="row">
  <div class="small-12 columns">
     <img typeof="foaf:Image" src="/sites/default/files/haefner1030x390.jpg" width="1030" height="390" alt="" />
  </div>
  <div class="small-12 medium-6 columns">
     <p>Text in der linken Spalte</p>
  </div>
  <div class="small-12 medium-6 columns">
     <p>Text in der rechten Spalte</p>
  </div>
</div>

Der macht also <div class="row"> um den ganzen Inhalt herum.

Gibt es eine Möglichkeit, die einzelnen Elemente zu wrappen?
Soll ich die function drupal_render überschreiben?

Vielen Dank?

‹ Darstellung node Content-Rendering anders realisieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Setz doch bitte überall eine

Eingetragen von wla (9466)
am 10.03.2015 - 17:47 Uhr

Setz doch bitte überall eine Code-Klammer um alles, was Du in spitzen Klammern hast. Dann kann man Deine Frage auch verstehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ok. angepasst

Eingetragen von olek07 (20)
am 10.03.2015 - 17:56 Uhr

ok. angepasst

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mittels <?php print

Eingetragen von wla (9466)
am 10.03.2015 - 18:13 Uhr

Mittels <?php print render($content['FELDNAMEl']); ?> kannst Du einzelne Felder dediziert im node.tpl.php ausgeben lassen. Du brauchst also nicht drupal_render zu überschreiben. Lies einfach die Dokumentation zu render und auch die Kommentare, die man oft auf diesen Seiten findet. Da gibt es oft Beispiele oder Hinweise, was man tun oder lassen sollte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja, das wollte ich wissen. Da

Eingetragen von olek07 (20)
am 10.03.2015 - 18:32 Uhr

ja, das wollte ich wissen. Da ich ein Drupal-Anfänger bin, wusste ich noch nicht genau, ob ich es darf. Aber es stimmt schon, man kann einfach mit if prüfen, mit welchem Inhalts-Typ grad gearbeitet wird, und dann entweder render() nutzen, oder die Felder einzeln ausgeben.

Danke Dir.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn ich so etwas wirklich

Eingetragen von wla (9466)
am 10.03.2015 - 18:55 Uhr

Wenn ich so etwas wirklich benötige, was eher selten vorkommt, schreibe ich einen speziellen Template-file für diesen Nodetyp. Der liegt dann neben dem "normalen" node.tpl.php im eigenen Theme. Welche Namen diese Template Dateien haben können findest Du auf "Drupal 7 Template (Theme Hook) Suggestions".

  • Anmelden oder Registrieren um Kommentare zu schreiben

Und gleich habe ich ein

Eingetragen von olek07 (20)
am 10.03.2015 - 19:03 Uhr

Und gleich habe ich ein Problem. Soll ich jetzt das ganze Image-Rendering selbst programmieren? Über $content['field_header_bild']['#object']->field_header_bild[LANGUAGE_NONE][0]['filename'] bekomme ich den Dateinamen. Soll ich jetzt das img-Tag selber bauen oder gibt es interne Drupal-Funktionen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

DisplaySuite

Eingetragen von stBorchert (6003)
am 10.03.2015 - 20:03 Uhr

Moin.
Lade Dir mal [do:ds Display Suite] herunter und installiere dann "Display Suite Extras" und "Display Suite UI". Dann gehst Du auf Deiner Seite zu admin/structure/ds/list/extras und setzt das Häckchen bei "Enable Field Templates":

Jetzt kannst Du in den Anzeigeeinstellungen Deines Inhaltstypen für jedes Feld festlegen, wie es ausgegeben werden soll; der Mode "Expert" erlaubt es dabei, das komplette HTML für die Feldausgabe umzuschreiben.
Hier ein Beispiel für 3 Felder eines Speiseplans, den wir mal gebaut haben:

Die Ausgabe sieht dann ungefähr so aus:

hth,

 Stefan

AnhangGröße
2015-03-10 18-51-34.png 52.48 KB
2015-03-10 18-56-28.png 24.35 KB
2015-03-10 19-01-17.png 157.82 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

OMG. old good Drupal. Zu

Eingetragen von olek07 (20)
am 10.03.2015 - 20:57 Uhr

OMG. old good Drupal. Zu jedem Anlass braucht man ein Modul, das noch ein paar Anhängigkeiten hat. Ich probiere das Modul aus, aber ich weiß nicht, ob ich es wirklich für eine kleine Website brauche. Nutzt du es, oder kommt sowas bei dir ehe selten zustande?

  • Anmelden oder Registrieren um Kommentare zu schreiben

DisplaySuite

Eingetragen von stBorchert (6003)
am 10.03.2015 - 22:28 Uhr
olek07 schrieb

Nutzt du es, oder kommt sowas bei dir ehe selten zustande?

Ich glaube, es gibt keine Webseite bei uns, bei der wir [do:ds Display Suite] nicht einsetzen.

Für mich ist gerade der Fakt, dass es für (nahezu) jede Anforderung (mindestens) ein Modul gibt, eine der Stärken von Drupal ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
Weiter

Neue Kommentare

  • Gefunden
    vor 7 Wochen 4 Tagen
  • Vielen Dank für die ausführlichen Hinweise...
    vor 8 Wochen 1 Tag
  • Mögliche Ursachen und nächste Schritte
    vor 8 Wochen 1 Tag
  • Was für einen Server benutzt
    vor 10 Wochen 4 Tagen
  • Wenn die Subdomain auf
    vor 10 Wochen 6 Tagen
  • ordnerstruktur
    vor 11 Wochen 2 Stunden
  • Die Subdomain muß auf den
    vor 11 Wochen 2 Tagen
  • Verwende doch das Tag dafür,
    vor 14 Wochen 4 Tagen
  • Guckst du hier: step by step
    vor 14 Wochen 3 Tagen
  • Guckst du hier: step by step
    vor 14 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250294
Registrierte User: 20543

Neue User:

  • 888sportsPles
  • Kupit_hiPi
  • Thomasbxh

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 4 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