Content mit Feldern, die mehrere Werte haben, aufsummieren
am 14.06.2015 - 14:11 Uhr in
Moin,
ich weiß nicht wie ich Nodes, die ein Feld mit mehreren Einträgen haben kann, aufsummieren kann.
Beispiel: Die Nodes haben ein Feld, dass die Farbe beschreibt (Multiple Value zur Taxonomie: Color mit derzeit ca. 16 Farben). Es sind mehrere Farbkombinationen möglich:
node 1: rot, blau, gelb
node 2: rot, grün, gelb
node 3: rot
node 4: rot, blau, gelb
Ich möchte jetzt aufsummieren, was die häufigsten Farbkombinationen sind:
rot, blau, gelb (2)
rot, grün, gelb (1)
rot (1)
Sowie ich in der View (Contenttype) auf "Aggregiere" klicke, sind die Werte nicht mehr hintereinander, sondern es werden pro Node einzelne Einträge mit jeweils einer Farbe generiert. Damit ist die Kombination nicht mehr aufaddierbar ..
Hat jemand eine Idee?
Danke, Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
Hmm...gute Frage...mir fällt
am 14.06.2015 - 15:02 Uhr
Hmm...gute Frage...mir fällt nur folgendes ein:
Du könntest im Template, welches die Zeilen der View aufbaut, in der Schleife einen Zähler für jede Farbkombi mit laufen lassen.
LG Regina Oswald
-------------------------
Montviso - Internetdienstleistungen
http://www.montviso.de
Hat jemand noch eine Idee, es
am 20.08.2015 - 11:43 Uhr
Hat jemand noch eine Idee, es gibt ja soooo viele Kombinationen bei den 16 Farben ....
Ich löse sowas immer mit
am 20.08.2015 - 13:28 Uhr
Ich löse sowas immer mit diesem Modul:
https://www.drupal.org/project/views_aggregator
Probier mal die Funktion "enumerate".
Ansonsten kannst Du hier auch eigene Aggregationsfunktionen bauen und über einen hook einbinden.
OK, das klappt prinzipiell
am 24.08.2015 - 14:06 Uhr
Hallo,
das klappt prinzipiell. Allerdings nicht bei einer großen Anzahl an Nodes.
D.h. bei "Column aggregation row applies to the page shown, if a pager is enabled" und einer Einschränkung auf ca. 2500 Nodes klappt es. Wenn diese Grenzen erhöht wird oder auf "the entire result set" gesetzt wird, erscheint ein "Out of Memory" Fehler.
Schade, ich (wir plus degunino) war ganz dicht dran ...
Das ist dann aber ein
am 24.08.2015 - 14:41 Uhr
Das ist dann aber ein systematisches Problem. Du mußt Dir also etwas einfallen lassen, wie Du Farbenkombination speicherst. Bei weniger als 30 Farben kommst Du mit einer Integer (32 bit) für die Farbkombination aus, indem Du jeweils ein anders Bit pro Farbe setzt. Dann hat jede Farkombination genau einen Wert, der einfacher abgefragt werden kann und dazu nicht so viel Memory benötigt.
Du solltest also im Datensatz ein Feld für den Kombinationswert haben, der beim Speichern berechnet und gesetzt wird. Im Nachhinein ist das auch noch möglich, benötigt aber vermutlich eigene Programmierung (Batch) wegen der Menge an Daten.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *