Drupal Kurs Datenstrukturen und Views

Erläuterung der Aufgabe im Ganzen:

  • zwei eigene Datentypen (Tiko Artikel und Tiko Einkauf)
  • Darstellung des Inhalts über Display Suite und Panels
  • Aufbereiten des Eingabeformulars über Display Suite bzw. CSS


Erste Schritte

  • Zwei zusätzliche Themes sind da, aber nicht aktiv!
  • Startseite erstellen (Text bereitstellen)
  • Im System eintragen
  • Name der Seite ändern
  • Editor fehlt => BUEditor Modul laden
  • Full HTML als default einstellen
  • Bartik und Seven als abgeleitete Themes bereitstellen
    • info-Dateien kopieren
    • Regionen drin lassen und Namen ändern
    • base-Theme eintragen
    • zusätzliche CSS-Datei eintragen
    • my_bartik aktivieren als Default
    • my_seven als Admin-Theme eintragen
    • Admin Menü größer darstellen (font-size 12px)
    • Startseite: Abstände verkleinern

Weitere Module laden

  • Date-Modul
  • Display-Suite
  • Views
  • Ctools
  • Flag
  • IMCE
  • Imageapi
  • Filefield Path
  • Token
  • Transliteration


TiKo Artikel:

Definition  des Datentypes:

  • Kommentare zulassen
  • Autorangabe unterdrücken
  • Definition der Felder
    • Titel (=> Bezeichnung)     => T
    • Artikelnummer (Integer)      => T
    • Bestand (Integer)      => T
    • Packungsgröße (Text)      => T
    • Ausgelaufen (Boolean on => ausgelaufen, gibt-es)      => T
    • Lagerort (Text, mehrfach)      => L
    • Body (=> Beschreibung, 2 Zeilen)      => L
    • Zubereitung (long Text)      => L
    • Haltbarkeitsdatum (Date, mehrfach)      => R
    • Image (Bild)      => R

  • Aufbereitung des Formulars über Display Suite
    • Layout "Two column stacked"
    • Feinarbeit über CSS
    • Kurz die gewünschten Änderungen erklären und wie man dahin kommt (firebug)
    • CSS Dateien bereitstellen, damit es schnell geht.
  • Artikel eingeben

  • Aufbereitung der Ausgabe über Display Suite
    • Image-Style 300x300 einrichten
    • Layout "Two column stacked"
    • Artikelnummer      => L
    • Beschreibung      => L
    • Bestand      => L
    • Lagerort      => L
    • Packungsgröße      => L
    • Haltbarkeitsdatum      => L
    • Zubereitung      => L
    • Ausgelaufen      => L
    • Bild      => R
    • Links      => R
    • Kommentare      => F
    • Feinarbeit über CSS
    • Kurz die gewünschten Änderungen erklären und wie man dahin kommt (firebug)
    • CSS Dateien bereitstellen, damit es schnell geht.

  • Erste Inhalte erstellen
  • Hier gehen wir auf die VM mit dem Zwischenstand
  • Es gibt Probleme mit einigen Bildern, die im Namen Umlaute haben
  • Hier helfen die Module Filefield Path und Transliteration
  • Übersichtsview
    • Tabelle => Felder angeben
    • Artikel
    • Bezeichnung
    • Anzahl
    • Ort
    • Ablauf

  • Bestands View
    • Tabelle => Felder angeben
    • Artikelnummer
    • Bezeichnung
    • Bestand
    • Haltbarkeitsdatum
    • Lagerort

  • View "Achtung Ablauf"
    • Tabelle => Felder angeben
    • Artikelnummer
    • Bezeichnung
    • (Bestand)
    • Haltbarkeitsdatum
  • Bestellen Flag
    • In Darstellung einarbeiten
    • In View Übersicht einbauen
  • View Vormerkliste
    • Tabelle => Felder angeben
    • Artikelnummer
    • Bezeichnung
    • Bestellen Flag
  • Flag Voll/Angebrochen
    • In Ausgabe einarbeiten (trivial)
    • In View Bestand einbauen


Tiefkühl Einkauf
Benötigte Module:

  • Autimatic Nodetitle
  • Entity (mit Entity tokens)
  • Entity Reference
  • Entity Reference View Widget
  • Inline_entity_form
  • Computed_field
  • Field_collection
  • Panels
  • Page manager (in Ctools)
  • Views_field_view
  • Views_content_panes (in Ctools)

Definition  des Datentypes:

  • Automatischer Nodetitel (Einkauf + Datum)
  • Keine Kommentare
  • Keinen Autor anzeigen
  • Definition der Felder
    • Titel
    • Datum (Date)
    • Einzelposition (Field collection)
      • Artikel (Entity Reference)
      • Anzahl (Integer)
      • Stückpreis (Decimal)
      • Preis (Computed)
        $entity_field[0]['value'] = array_pop(array_pop(field_get_items($entity_type, $entity, 'field_stueckpreis'))) * array_pop(array_pop(field_get_items($entity_type, $entity, 'field_anzahl')));
        $display_output = str_replace ('.', ',', $entity_field_item['value']);
  • Achtung: Das Formular der Field Collection ist eingebettet und dadurch nicht mit der DS formatierbar!
  • Inhalte Erstellen


View "Tiefkühl Artikel tabellarisch"

  • Pane 1:
    • Typ Inhalt (Typ Tiefkühl Artikel)
    • Haken bei Seite wegnehmen (also nichts auswählen)
    • Panel Inhalt
    • Format: Tabelle
    • Relationships: Einzelposition und Entity Reference: Referenced entry
    • Kontextfilter Node-ID
    • Felder über entity:
      • Artikelnummer
      • Titel
    • Felder über field collection
      • Anzahl
      • Stückpreis
      • Preis   [field_preis] €, Klartext
    • sortiert nach Titel aufsteigend
    • Argument: Eingabe in Panel Inhalt Einstellungen
  • Pane 2:
    • Zusammenfassung verwenden
    • Alle Felder außer Preis löschen
    • Auf Liste umstellen
    • beim Preis die Summe als Zusammenfassung setzen
    • <strong>Gesamtpreis = [field_preis] €</strong>
    • Sortierung entfernen!!!
    • Argument: Eingabe in Panel Inhalt Einstellungen

  • Aufbau der Node-Display Seite mittels Page Manager und Panels
  • View "Letzte Einkäufe"
    • Der Aufbau erfolgt wie bei der Panel-Page
    • Id (versteckt)
    • Datum
    • Global View Content pane
    • Global View Content pane 2
    • Trennstrich mit CSS
  • View "Einkäufe Übersicht"
    • View mit eingebauten Aggregations Views (Views Field View)
    • View zu Tiefkühl Einkäufen
    • eine zusätzliche Pane in Artikel tabellarisch:
    • Count über Artikelnummern
    • Duplikat von pane 2 mit anderer Ausgabe (Gesamtpreis = und <strong> weg)
    • Node-ID (versteckt)
    • Datum (Überschrift: Einkauf)
    • Überschrieben als: Einkauf vom [field_datum] und als Link mit node/[nid]
    • Ansicht (Überschrift: Positionen)
    • Ansicht (Überschrift: Gesamtpreis)