Rules Best Practice für Berechnungen über referenced Entity
am 23.01.2017 - 17:48 Uhr in
Hallo Zusammen,
Bin wieder mal mit Rules dran, und habe ein eigentlich triviales "Standard-Problem". Folgende Situation (als vereinfachtes Beispiel):
Es gibt einen Inhaltstyp "Kopf" mit einem Feld "Anzahl Positionen". Default ist natürlich 0.
Ferner gibt es einen Inhaltstyp "Positionen" mit einem refEntity-Feld "Verweis auf Kopf", der Verweis ist optional. Es können also x Posititionen auf den Kopf verweisen. Es kann aber auch Positionen geben, die keinen Kopf haben!
Soweit OK.
Ziel: Ich möchte via Rules das Feld "Anzahl Positionen" auf dem Kopf immer aktuell mit der ihm zugewiesenen Anzahl Positionen haben.
Noch überschaubar ist der Fall, wenn man eine Position sofort MIT Kopf-Referenz erfasst (+1) oder löscht (-1).
Wie aber erstellt man die Rule, wenn die Position OHNE Kopf schon dasteht, und dann den Kopf zuweist? Die Rule muss doch erkennen, dass vorher KEIN Kopf da war und neu einer da ist (also +1).
Selbes Problem, wenn man der Position einfach den Kopf wegnimmt (-1).
Noch übler, wenn man den Kopf einfach wechselt: -1 bei alten Kopf, +1 beim neuen Kopf.
Ich vernute mal, sowas geht über Rules gar nicht direkt über "Wert berechnen/setzen".
In meinem konkreten Fall werde ich wohl in einem eigenen Modul über pre/after-Hooks gehen müssen.
Übersehe ich eventuell etwas in Rules, womit sich das "Standard-Problem" lösen liesse, und, wie löst ihr sowas?
Danke und lg leda
- Anmelden oder Registrieren um Kommentare zu schreiben
Das macht man auch nicht mit
am 23.01.2017 - 19:44 Uhr
Das macht man auch nicht mit Rules sondern mit Views. Mit dem Modul [do:viewfield] zeigst Du in der Ausgabe Deines Nodes einen View. Dieser View ermittelt die Referenzen und gibt als Ausgabe "nur" das globale Count-Field zurück. Das ist dann schon alles.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Nun, ja, die Anzeige war
am 23.01.2017 - 20:37 Uhr
Nun, ja, die Anzeige war nicht gefragt. Der Wert muss gespeichert werden. Ich habe das Beispiel nur vereinfacht.
Ähnliche Fragestellung: wie kann in Rules auf einen Parent-Wechsel reagiert werden.
Wie gesagt, mit einem Modul kann man das schon lösen, aber ginge sowas mit Rules und wenn ja, wie?
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch