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 - 16: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 (9461)
am 10.03.2015 - 16: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 - 16:56 Uhr

ok. angepasst

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mittels <?php print

Eingetragen von wla (9461)
am 10.03.2015 - 17: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 - 17: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 (9461)
am 10.03.2015 - 17: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 - 18: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 - 19: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 - 19: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 - 21: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

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

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 9 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