[gelöst] Eingebettete node create form soll beim Erzeugen Relation zum enthaltenden node erzeugen. Wer kann mir helfen?
am 20.12.2014 - 19:41 Uhr in
Hallo,
da ich bei meinem Problem mit einem hook_form_alter scheitere, muss ich eine andere Lösung finden. Keine Ahnung, ob es dazu ein Modul oder eine andere Standard-Lösung gibt - gefunden hab ich nach langem Suchen immer noch nichts! :((
Ich habe einen Nodetypen A, der am Ende in einem Block ein Formular zum Erstellen eines Nodetypen B enthält. Wenn Typ B erzeugt wird, soll dann über eine rule eine Relation zu demjenigen Node des Typs A erzeugt werden, in dem das Formular enthalten war.
Kann mir bitte jemand dabei helfen, das hinzukriegen? Versuche mich schon seit Tagen erfolglos an diesem scheinbar so einfachen Problem... :(((
Wäre für jeden Hinweis dankbar, wie man sowas am schlauesten hinkriegt!!!
Ganz lieben Dank schon mal im Voraus!
Hans
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich würde sowas mit Entity
am 21.12.2014 - 13:55 Uhr
Ich würde sowas mit Entity Reference umsetzen, Rules braucht man dazu nicht. Schau Dir mal die folgenden Module an:
https://www.drupal.org/project/entityreference
https://www.drupal.org/project/entityreference_prepopulate
https://www.drupal.org/project/cer
Genial! Superherzlichen Dank
am 22.12.2014 - 19:01 Uhr
Genial! Superherzlichen Dank für den Modul-Tip! Kannte das reference_prepopulate Modul noch nicht!
Jetzt hab ich nur noch das Problem, wie ich den Parameter, den das Modul braucht, am schicksten an die Pfade ranhänge. Wenn ich in den Pfad-Mustern den Parameter anhänge, würde es so aussehen: expertenprofil/[node:title]?field_expertenprofil=[node:nid]. Aber leider wird das ? und das = kodiert. Die URL sehen dann so aus:
.../de/expertenprofil/regina%3Ffield_expertenprofil%3D91
Hat jemand einen Tip für mich, wie ich den Parameter "?field_expertenprofil=[node:nid]" an die URLs eines bestimmten Nodetypen anhänge?
Vielen Dank schon mal
Hans
So, für alle, die mal vor dem
am 24.12.2014 - 23:46 Uhr
So, für alle, die mal vor dem selben Problem stehen schreib ich mal kurz nieder, wie ich es jetzt gemacht habe.
Ich habe die funktion hook_url_inbound_alter benutzt:
function mein_modul_url_inbound_alter(&$path, $original_path, $path_language) {
if (preg_match('/^node\/(\d*)$/', $path, $matches)) {
$nid = $matches[1];
$node = node_load($nid);
if ($node->type == "expertenprofil") {
$append = 'field_expertenprofil=' . $nid;
$_GET += drupal_get_query_array($append);
}
}
}
Damit war es allerdings noch nicht getan. Ich hatte mich gewundert, dass es damit nicht funktioniert und das entityreference_prepopulate den parameter nicht bekommen hat.
Meine Vermutung war, dass es nur an der Reihenfolge der Abarbeitung der Module liegen kann. Dafür hab ich dann das Modul module_weight installiert. Das hat mir zwar dann das admin menü leicht zerschossen (es ist jetzt in sehr kleiner Schrift dargestellt), aber immerhin kriegt das prepopulate modul jetzt den Parameter und das ganze sogar noch recht SEO freundlich, da der ursprüngliche alias erhalten ist.
Bislang sieht diese Lösung also gut aus - hoffe mal, dass sich das nicht noch ändert! :)
Viele Grüße
Hans