Rules und Organic-Groups
Eingetragen von Joshua Si (1)
am 22.01.2014 - 14:56 Uhr in
am 22.01.2014 - 14:56 Uhr in
Hallo, ich möchte eine Gruppe bauen. Alle nötigen Module sind natürlich vorhanden. Bei mir fehlt es nur an der richtigen "Rule".
Als Content Types habe ich "Gruppe"(Group Type) und "Gruppenpost" (Group Content).
Ich hätte jetzt gerne ein Rule, die es mir ermöglicht, dass:
- Wenn eine Gruppe created wird, automatisch ein Gruppenpost erzeugt wird. Die "Groups audience" soll dabei automtisch die Gruppe sein, die created wird.
Was muss ich tun? Bzw. wie muss ich diese Rule definieren?
- Anmelden oder Registrieren um Kommentare zu schreiben
Eine Rule: neuer Node in OG wenn User zugewiesen
am 04.02.2014 - 12:41 Uhr
Ich habe mir das mal gerade auch aus Eigeninteresse mal angeschaut und folgenden Rules-Weg gefunden:
Das Event "og_user_insert" reagiert auch auf den User, der die Gruppe anlegt und dieser automatisch zugewiesen wird und stellt den darauf aufbauenden Regeln das Benutzer-Objekt sowie die Gruppen-Zugehörigkeit zur Verfügung. Somit können wir mit "Entity create" einen Node erzeugen und diesem auch den betreffenden User als Author zuweisen. Der Titel im Beispiel ist "Willkommen [account:name]" da auch Tokens genutzt werden können.
Da die Default-OG-Rules-Action "og_group_content_add" eine Entität erwartet, muss zuvor noch die OG-Entität geladen geladen werden mithilfe der Group ID und "entity_fetch". OG ist so flexibel, daß auch mal andere Entitäten Gruppen sein können, muss das Beispiel dann entsprechend angepasst werden, wenn die Gruppe nicht durch ein Node repräsentiert wird.
Eine exportierte Rule ist irgendwie auch selbsterklärend:
{ "rules_create_og_content_on_user_join" : {
"LABEL" : "create og content on user join",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "og" ],
"ON" : { "og_user_insert" : [] },
"DO" : [
{ "entity_fetch" : {
"USING" : { "type" : "node", "id" : [ "og-membership:id" ] },
"PROVIDE" : { "entity_fetched" : { "entity_fetched" : "Fetched entity" } }
}
},
{ "entity_create" : {
"USING" : {
"type" : "node",
"param_type" : "og_content",
"param_title" : "Willkommen [account:name]",
"param_author" : [ "account" ]
},
"PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } }
}
},
{ "og_group_content_add" : { "entity" : [ "entity-created" ], "group" : [ "entity-fetched" ] } }
]
}
}
Ein Import obiger Rule ist ohne Änderung nur möglich, wenn die Gruppen-Entität ein Node des typs "og" ist und der Gruppen-Content den Node-Type "og_content" hat.
# DrupalCenter-Moderator # https://www.drupal.org/u/c-logemann
# CTO der Nodegard GmbH: Tech. Concepts | Security + Availability Operations / Wir unterstützen IT-Abteilungen, Agenturen, Freiberufler:innen