[gelöst]default webform per Node definieren
Eingetragen von 1000 (764)
am 27.09.2010 - 18:07 Uhr in
am 27.09.2010 - 18:07 Uhr in
Hallo,
ist es möglich eine default webform per Node zu definieren. Bei webform können User sich eine Webform zusammenbasteln. Besser wäre es für mich, wenn ich eine Default webform für alle User anlegen könnte.
// Insert the components into the database. Used with clone.module.
if (isset($node->webform['components']) && !empty($node->webform['components'])) {
foreach ($node->webform['components'] as $cid => $component) {
$component['nid'] = $node->nid; // Required for clone.module.
webform_component_insert($component);
}
}
// Insert emails. Also used with clone.module.
if (isset($node->webform['emails']) && !empty($node->webform['emails'])) {
foreach ($node->webform['emails'] as $eid => $email) {
$email['nid'] = $node->nid;
webform_email_insert($email);
}
}
// Set the per-role submission access control.
foreach (array_filter($node->webform['roles']) as $rid) {
db_query('INSERT INTO {webform_roles} (nid, rid) VALUES (%d, %d)', $node->nid, $rid);
}
}
Der Code sieht wohl soetwas vor. Das Clone Node Modul ist installiert. Habe aber keinerlei Infos im Modul Clone gefunden. Es sollen per Default immer die Webform Elemente von nidirgendetwas automatisch beim Erstellen einer Node gecloned werden.
- Anmelden oder Registrieren um Kommentare zu schreiben
Hab es nun selbst lösen
am 28.09.2010 - 16:28 Uhr
Hab es nun selbst lösen können. Leider nur per Code im Modul: Falls es mal jemanden interessiert:
$sql = "SELECT * FROM {webform_component} WHERE nid=%d";
$result = db_query($sql, 65);
while($row = db_fetch_array($result))
{
$form_key = $row['form_key'];
$name= $row['name'];
$type=$row['type'];
$extra=$row['extra'];
db_query("INSERT INTO {webform_component} (nid, pid, form_key, name, type, value, extra, mandatory, weight) VALUES (%d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d)", $node->nid, $a, $form_key, $name, $type, $componentvalue, $extra, $b, $c);
}
Ein Formular manuell erstellen und dann jeweils per Node kopieren. Es funktioniert zwar ist im Bezug auf Modulaktualisierung ect. allerdings nicht die erste Wahl.
Hm? Was genau macht dein Code
am 23.10.2010 - 20:29 Uhr
Hm? Was genau macht dein Code nun und wo hast du ihn eingefügt? Wird für jeden Node in deinem System ein einzelnes Formular erstellt automatisch oder wie?
Habe den Code im Fall insert
am 24.10.2010 - 14:42 Uhr
Habe den Code im Fall insert der hook_nodeapi eingefügt, so dass beim erstellen von Nodes auch gleichzeitig eine zugehörige Webform eingefügt wird. Die Änderungen habe ich in der webform.module vorgenommen.Dann habe ich noch eine Standard Webform angelegt und diese per Code jeweils per Code einfach beim Anlegen neuer Nodes wieder kopiert. Damit klappt es :-)