Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Rules und Loops

Eingetragen von Belmondo (29)
am 27.07.2015 - 09:17 Uhr in
  • Module
  • Drupal 7.x

Hallo zusammen,

kennt sich jemand ein bisschen mit den Loops des Rules Moduls aus? Ich wollte eine scheinbar recht einfache Sache damit machen, bin mir aber nicht sicher ob es geht.

Event: "Nach dem Speichern von neuem Inhalt of Typ..."

Aktion: "Send mail to all users of a role"

Innerhalb der Aktion soll aber geprüft werden welcher Taxonomie-Term dem Node gegeben wurde und dann erst die Rolle bestimmt an die die E-Mail geht, also ein Loop:

Event (wie gehabt): "Nach dem Speichern von neuem Inhalt of Typ..."

Aktion: Check welchen Term der Node hat und sende dann an eine bestimmte Rolle (Beispiel: Node hat Term "X" -> sende Mails an Rolle "X", Node hat Term "Y" -> sende Mails an Rolle "Y").

Zur Zeit mache ich es mit einer "Data comparison" als Condition:
Condition: Taxonomie-Term ist "X"
Aktion: Sende Mail an die Rolle "X"

Sehr einfach und funktioniert auch, allerdings benötige ich dann lauter einzelne Rules, für jeden Term eine. Das wollte ich vermeiden und EINE schlaue Rule bauen. Ich habe gelesen, dass man innerhalb eines Loops eine "List" abklappern kann auf deren Ergebnisse dann eine Aktion gesetzt wird. Diese "List" soll das Vokabular sein. Das Vokabular soll durchgecheckt werden bis der Term gefunden ist den der Node hat. Dann soll die Mail an die Rolle gehen die genauso heisst wie der Term ("X", "Y").

Nach meinen bisherigen Versuchen befürchte ich, dass man keine "List" aus den Terms eines Vokabulars bilden kann, dann wäre ich auf dem Holzweg. Kann das jemand bestätigen oder einen anderen Tip geben? Wenn nicht: ist es eigentlich ein Problem bei jedem Speichern eines Nodes 40 Rules untereinander abzuklappern oder ist das klar zu viel

Ich bin dankbar für jegliche Anregungen zu dieser Geschichte.

‹ Test Drupal 8 - Module [gelöst]Drupal Commerce Coupon Modul mit mwst. ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du erstellst dir eine Views

Eingetragen von rogerpfaff (248)
am 27.07.2015 - 11:56 Uhr

Du erstellst dir eine Views Bulk Operations View. Das ist eine View mit dem Steuerelementfeld von VBO drin. Diese kannst du dann in deiner Rule laden und darauf die Loop laufen lassen.

Die View selbst zieht einfach die Benutzer, die mit dem entsprechenden Term belegt sind. Argumente können dabei als Tokens übergeben werden.

Viele Grüße

Roger

Drupalentwickler München
CMS Frameworker Drupal @ Reinblau

  • Anmelden oder Registrieren um Kommentare zu schreiben

OK, das ist ein neuer Ansatz,

Eingetragen von Belmondo (29)
am 27.07.2015 - 12:12 Uhr

OK, das ist ein neuer Ansatz, danke schön. Das auszuprobieren wird eine Weile dauern, habe noch nichts gemacht mit den Views Bulk Operations.

Danke und schönen Gruß von mir

  • Anmelden oder Registrieren um Kommentare zu schreiben

Belmondo

Eingetragen von marco.b (643)
am 28.07.2015 - 09:50 Uhr
Belmondo schrieb

...allerdings benötige ich dann lauter einzelne Rules, für jeden Term eine. Das wollte ich vermeiden und EINE schlaue Rule bauen. ..

Ganz nett ist auch https://www.drupal.org/project/rules_conditional, um das in 1 Rule zu kriegen, allerdings musst du hier schon die Actions der einzelnen Bedingungen einzeln in die Rule schreiben.

Am elegantesten ist das von rogerpaff beschriebene Vorgehen mit einer vbo Rule, die dann eine Liste von user entities in Rules aufruft, um an deren Mailadressen zu senden (nicht an users einer Rolle). Das ist dann zu empfehlen, wenn du viele verschiedene terms hast, die dann nicht nur die nodes, sondern auch die user referenzieren, so dass die Rule die User Liste erzeugt, indem terms als kontextfilter dem view übergeben werden und der die entspr. Liste zurückgibt.

EDIT: Ich schrieb mail statt Rule.

– Grüße aus Franken –

"Eine Entscheidung ist dann eine gute Entscheidung, wenn Sie zu mehr Möglichkeiten führt.”
Heinz von Foerster (Kybernetiker)

www.bienlein-kommunikation.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

marco.b schrieb wenn du viele

Eingetragen von Belmondo (29)
am 28.07.2015 - 00:26 Uhr
marco.b schrieb

wenn du viele verschiedene terms hast, die dann nicht nur die nodes, sondern auch die user referenzieren

und

rogerpfaff schrieb

Die View selbst zieht einfach die Benutzer, die mit dem entsprechenden Term belegt sind.

Leider ist es in dem Konzept nicht so, dass die Terms auch den Benutzern zugeordnet sind. Die Terms sind nur den Nodes zugeordnet und je nach Term muss ich (oder die Rule) sagen "jetzt sende Mail an alle Benutzer einer bestimmten Rolle" (die Rolle hat zwar den gleichen Namen aber das ist lediglich manuell so vergeben).
Auf eine Term-Reference in den Benutzerprofilen habe ich verzichtet. Ich hoffe die VBO-Idee scheidet damit nicht direkt aus?

Jetzt habe ich einiges auszutesten, danke euch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es macht es nicht einfacher.

Eingetragen von rogerpfaff (248)
am 28.07.2015 - 09:35 Uhr

Es macht es nicht einfacher. Eventuell kannst du aber eine View bauen, die auf den Rollennamen filtert und wärst dann wieder im Rennen. ;)

Viele Grüße

Roger

Drupalentwickler München
CMS Frameworker Drupal @ Reinblau

  • Anmelden oder Registrieren um Kommentare zu schreiben

Belmondo schrieb Leider ist

Eingetragen von marco.b (643)
am 28.07.2015 - 10:01 Uhr
Belmondo schrieb

Leider ist es in dem Konzept nicht so, dass die Terms auch den Benutzern zugeordnet sind. ...

Das dachte ich mir, deshalb mein Hinweis.

Also musst du mit deiner Modellierung für jeden term eine Rolle anlegen. Deshalb die Einladung zum überdenken, gerade wenn du viele Terms hast: Ist dein Ansatz wirklich sinnvoll und gut? Werden hier Rollen vielleicht nur für eine Art Kategorisierung genommen, wo eine term Ref. o.ä. für die User besser wäre? Rollen lege ich in der Regel nur an, wenn ich sie für permissions brauche.

– Grüße aus Franken –

"Eine Entscheidung ist dann eine gute Entscheidung, wenn Sie zu mehr Möglichkeiten führt.”
Heinz von Foerster (Kybernetiker)

www.bienlein-kommunikation.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

rogerpfaff schrieb Es macht

Eingetragen von Belmondo (29)
am 28.07.2015 - 20:27 Uhr
rogerpfaff schrieb

Es macht es nicht einfacher. Eventuell kannst du aber eine View bauen, die auf den Rollennamen filtert und wärst dann wieder im Rennen. ;)

Du meinst eine View die mit einem contextual filter auf den Rollennamen filtert und das Ergebnis in Rules als Liste für den Loop verfügbar macht?

  • Anmelden oder Registrieren um Kommentare zu schreiben

marco.b schrieb Also musst du

Eingetragen von Belmondo (29)
am 28.07.2015 - 20:32 Uhr
marco.b schrieb

Also musst du mit deiner Modellierung für jeden term eine Rolle anlegen. Deshalb die Einladung zum überdenken, gerade wenn du viele Terms hast: Ist dein Ansatz wirklich sinnvoll und gut? Werden hier Rollen vielleicht nur für eine Art Kategorisierung genommen, wo eine term Ref. o.ä. für die User besser wäre? Rollen lege ich in der Regel nur an, wenn ich sie für permissions brauche.

Ich verteile mit dem Modul "tac_lite" Zugriffsrechte auf Nodes anhand der Terms. So lassen sich recht einfach für verschiedene Rollen Nodes unzugänglich machen und vor allem für bestimmte Rollen einfach ausblenden, z.B. aus Views-Blocks. Ich hatte dadurch den Vorteil mit wenigen Inhaltstypen auszukommen und mich nicht in Views mit komplizierten Contextual Filters zu verwurschteln. Bisher ist tatsächlich der einzige Nachteil der, dass ich jetzt vielleicht eine lange Liste von Rules habe die bei jedem Speichern eines Nodes dieses Inhaltstyps durchgeklappert wird. Die Liste der Terms im betreffenden Vokabular wird bei ca. 30 enden. Das geht schon alles noch, es ist mir eher eine Frage der Eleganz. Ausserdem muss bei der jetzigen Lösung immer mal wieder eine Rule hinzugefügt oder geändert werden und das würde ich gerne vermeiden.

Vielleicht hätte ich anstelle der Rollen auch mit der Term-Reference in den Benutzerprofilen zurechtkommen können, das muss ich dringend überprüfen.

Nochmals schönen Dank

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • DDEV: Website vom lokalen Server auf Webspace übertragen
  • MariaDB 10.6
  • Wie kann man die Ansicht der Benutzer erweitern?
  • (Gelöst) SIMPLE XML SITEMAP liefert die Sitemap für das Menü nicht aus
  • Entity Reference - Title Felder werden als Link angezeigt
  • PHP 8.1 - Deprecated function: rtrim()
  • Preloader / Spnner entfernen Menu Link Modal-Modul
  • Schriftgröße standard einstellen
  • Drupal Website gestalten
  • Tokens werden in Viev als Link angezeigt
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
Weiter

Neue Kommentare

  • Hallo Werner, super, vielen
    vor 5 Stunden 21 Minuten
  • Du mußt die Struktur
    vor 12 Stunden 8 Minuten
  • Ergebnis des upgrade
    vor 1 Tag 5 Stunden
  • Danke, funktioniert einwandfrei!
    vor 1 Tag 6 Stunden
  • Bei Drupal 7 war diese Seite
    vor 1 Tag 7 Stunden
  • Es ist ein Paragraph
    vor 2 Tagen 9 Stunden
  • Danke fürs Feedback. Gut dass
    vor 5 Tagen 1 Stunde
  • Patch angewandt
    vor 5 Tagen 5 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 6 Stunden
  • core_version_requirement: ^8
    vor 1 Woche 6 Stunden

Statistik

Beiträge im Forum: 247875
Registrierte User: 19594

Neue User:

  • Davidsnins
  • kudes
  • Tkakah

» Alle User anzeigen

User nach Punkten sortiert:
wla9215
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 5 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