Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

[gelöst] Addition von Feldern in einer View und Anzeige im überschriebenen Inhalt eines anderen Feldes.

Eingetragen von Emilie (4)
am 20.01.2014 - 09:14 Uhr in
  • Anfängerfragen
  • Drupal 7.x

Hallo Drupal-Community,

Ich würde gern die Summe von 3 Feldern einer View im überschriebenen Text eines anderen Feldes anzeigen.
Angenommen ich habe in einer View die Felder A, B, C und D. Ich habe den Inhalt von Feld D überschrieben und darin die Felder A,
B und C mit in den angezeigten Text integriert (Nach dem Ersetzungsmuster). Dazu habe ich benutzerdefinierten Text und die entsprechenden
Ersetzungs-Tokens eingegeben. Jetzt würde ich gern zusätzlich in dem diesem benutzerdefinierten Text die Summe aus Feld A, B und C als
Ersetzungstoken (oder wie auch immer) mit anzeigen lassen. Zunächst dachte ich, ich würde dazu das Modul View Calc benutzen können, allerdings ist
mir unklar, in welcher Form ich dann die Felder addiere. Wie würdet ihr vorgehen?

‹ [gelöst] Fatal error: Unsupported operand types in /includes/form.inc on line 1773 [gelöst] Addition von Feldern in einer View und Anzeige im überschriebenen Inhalt eines anderen Feldes. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde

Eingetragen von Ionit (1802)
am 20.01.2014 - 11:49 Uhr

Ich würde https://drupal.org/project/views_php nehmen.

Damit hast du ein Global PHP Feld in dem du die Berechnungen durchführen kannst ... als Ergebniss kannst hast du dann einen Token den du z.B. in Feld D ausgeben kannst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Computed Field

Eingetragen von Emilie (4)
am 21.01.2014 - 08:54 Uhr

Danke für den Tipp. Da es nur eine Developer Distribution von Views php gab, habe ich das Modul Computed Field genommen.
Im Inhaltstyp habe ich das Feld XY als computed Field angelegt und im Computed Code zunächst das Entity-Objekt auf den Feldwert referenziert
und dann die Summe Berechnen lassen.

<?php

$A
= $entity->field_A[LANGUAGE_NONE][0]['value'];
$B = $entity->field_B[LANGUAGE_NONE][0]['value'];
$C = $entity->field_C[LANGUAGE_NONE][0]['value'];

$entity_field[0]['value'] = $A + $B + $C
?>

Als Display Code:

<?php

$display_output
= $entity_field_item['value'];
?>

Das ganze gespeichert und in der View das Überschriebene Feld angepasst und dort den Token für das Computed Field XY eingesetzt.
Großes Kino war dann, dass ich bei jeder Änderung auch den Inhaltstyp noch einmal speichern musste, weil das Feld nur bei Aktualisierung/Erstellung computed wird.
Zwischendurch hat es dann tatsächlich mal funktioniert.
Jetzt nachdem ich die View und den Inhaltstypen mit allen Feldern fertig habe, habe ich einen neuen Test.Inhalt angelegt und OH WUNDER...er zeigt keinen Wert für Feld XY in der View an. Ideen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie schonmal gesagt nutze ich

Eingetragen von Ionit (1802)
am 21.01.2014 - 12:08 Uhr

Wie schonmal gesagt nutze ich "Views PHP" dafür .... obwohl es dev ist , funzt es tadellos.

Wenn du dieses Modul nicht nutzen willst, kann ich nicht weiterhelfen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da man PHP-Code möglichst

Eingetragen von eigentor (1424)
am 21.01.2014 - 13:04 Uhr

Da man PHP-Code möglichst nicht in der Datenbank speichern sollte, wäre ein Views Template bzw. eine Preprocess-Funktion evtl. sauberer. Dann führst du deine Berechungen im Template / in der Preprocess Funktion durch und gibst die Daten auch dort aus.
Läßt sich auch wesentlich besser debuggen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie mach ich das?

Eingetragen von Emilie (4)
am 21.01.2014 - 13:15 Uhr

Ich weiß gerade nicht, wie ich das machen müsste. Kannst du mir das erklären? (Nachsicht, Drupal und ich wurden uns erst vor kurzer Zeit bekannt gemacht...)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Views Template

Eingetragen von eigentor (1424)
am 21.01.2014 - 15:34 Uhr

Also die wirklichen Programmierer würden mich schlagen und sagen, ich soll im Views Template die Daten wiederum über eine Preprocess oder sonstige Funktion laden.

Wenn du aber ein finsterer Wochenendprogrammierer bist wie ich, dann kannst du das schon machen.

Du machst also ein Views Field Template für Feld D.
Das dafür passende Template mit Code und Namen findest du hier http://screencast.com/t/0mVwAE9V
Genauer ist das hier erklärt:
http://www.ostraining.com/blog/drupal/views-templates/

In dem Field Template müßtest du die Werte der drei anderen Felder laden. Dazu könntest du dir das $view oder $row-Objekt laden, je nachdem wo die für die entsprechende row (das wären jeweils die zusammenpassenden Felder) drinnestehen.

Das gibst du dir mit dpm() aus (Devel-Modul installieren) http://ratatosk.net/drupal/tutorials/debugging-drupal.html
Krumo gibt dir die ganzen Objekte und Arrays schön geordnet aus, so daß du dir alles passend raussuchen kannst.

Die Werte kannst du dann schön zusammenrechnen und die eigentliche Ausgabe des Feldes mit dem errechneten Wert überschreiben.
Da du dich im Views Template befindetst, ist das einfach. Da steht normalerweise nur die Variable $output, die mußt du vorher überschreiben, bevor sie ausgegeben wird.

Du kannst dir dann noch die gewünschte Formatierung drumbauen, wenn das Standard-HTML nicht reicht.

Auf die Art kannst du mit Views so ziemlich alles in jeder gewünschten Formatierung ausgeben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Lösung gestaltete sich

Eingetragen von Emilie (4)
am 21.01.2014 - 16:21 Uhr

Die Lösung gestaltete sich für mich wesentlich einfacher...vielleicht unschön, das kann ich nicht beurteilen...aber es funktioniert zumindest und bekanntlich führen viele Wege nach Rom:

Ich habe neben dem Computed Field Modul auch die Computed Field Tools installiert und dann einmal alle Computed Fields re-computet und dann...oh Wunder...zeigte meine View im überschriebenen Feld den Wert meines Feldes an. :)

Danke für Eure Hilfe!

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