[gelöst] Wie kann man aus einem externen HTML-Code (mit JavaScript) eine Drupal-page machen?
![](https://www.drupalcenter.de/files/imagecache/upic_mini/pictures/picture-10268.jpg)
am 16.09.2010 - 17:14 Uhr in
Problem: Es gibt einen Verein, dessen Mitglieder (es sind viele) in einer Datenbank (SugarCRM) verwaltet werden. Die Daten neuer Mitglieder (eingetragen in ein Formular auf der Webseite des Vereines) sollen automatisch in die Datenbank eingetragen werden.
Die Webseite wird derzeit erstellt.
Über Funktionen der Datenbank kann man ein Formular erstellen, das in HTML und JavaScript alle Informationen (und Formatierungen) enthält, um die vom neuen Mitglied eingetragenen Daten an die richtigen Stellen der Datenbank einzufügen. Das Formular kann man (mit Einschränkungen) gestalten, ähnlich wie bei einem webform-Formular.
Meine Frage: Wie kann ich aus diesem Code (der ein komplettes Formular darstellt mit allen Informationen zum Übertragen und zur Integration in eine bestimmten Datenbank) einen node/xy machen, der über einen Link aufgerufen werden kann?
Anders formuliert: Wie kann man eine extern erstellte Webseite (HTML + JavaScript) in eine DP-Seite verwandeln?
Wenn ich den Code als Quellcode (mit dem CKEditor) in eine neue Seite eintrage, dann entsteht wohl das Formular, aber da der js-Code, der im Quelltext des Editors noch aufscheint, lt. Firefox verloren geht, passiert natürlich beim "Absenden" nichts.
.
Danke für Eure Hilfe.
Albert
- Anmelden oder Registrieren um Kommentare zu schreiben
Eingabefilter
am 16.09.2010 - 19:50 Uhr
Könntest du
[...] aber da der js-Code, der im Quelltext des Editors noch aufscheint, lt. Firefox verloren geht, passiert natürlich beim "Absenden" nichts.
etwas genauer erläutern?
Vielleicht hilft es auch, den Eingabefilter auf "PHP Code" umzustellen. Dann sollte es mit JavaScript eigentlich keine Probleme mehr geben.
Mach dir doch ein kleines
am 16.09.2010 - 20:05 Uhr
Mach dir doch ein kleines Mini-Modul, dort kannst du dann einen Pfad definieren, unter dem das Formular aufgerufen werden soll (sowas in einem Node unterzubringen erscheint mir nicht optimal).
Dann noch eine Funktion, welche das HTML-Gerüst enthält und ausgibt. Außerdem packst du den JavaScript-Code in eine extra Datei und bindest die über drupal_add_js ein.
Die Modul-Datei könnte dann grob so aussehen:
<?php
function wasserwacht_verwaltung_menu()
{
$items = array();
//Code für hook_menu um alle Zusagen eines Termins anzuzeigen
$items['mein_formular'] = array(
'title' => 'Mein Formular',
'page callback' => 'mein_modul_formular_funktion',
'type' => MENU_CALLBACK
);
return $items;
}
function mein_modul_formular_funktion()
{
$output = '';
$output = //hier kommt jetzt der HTML-Code als String rein
$path = drupal_get_path('module', 'mein_modul');
drupal_add_js("$path/mein_javascript.js", 'module');
return $output;
}
?>
Dann könnte man example.com/mein_formular aufrufen und bekommt die entsprechende Seite geliefert und das JS dürfte auch eingebunden sein.
Der Code oben ist natürlich nur sehr grundlegend und müsste entsprechend angepasst sein.
Und wäre es nicht vielleicht besser, das Formular über Drupals Form API zu erstellen und die nötigen Eintragungen über die Submit-Funktion laufen zu lassen?
Alle HTML-Filter ausschalten
am 24.09.2010 - 22:43 Uhr
Danke für Eure Beiträge.
Es ging eigentlich ganz einfach. Ich habe ein neues "Eingabeformat" erstellt (genannt "Really Full HTML"), bei dem alle Filter und Nachbearbeitungsaktionen ausgeschaltet wurden. Zusätzlich habe ich noch die php-Eingabe aktiviert. Wenn ich dann eine neue Seite erstelle und unter "Eingabeformat" das "Really Full HTML" aktiviere, dann wird ein Quellcode, den ich über den CKEditor direkt eingebe, nicht mehr verändert. Eingebettete JavaScripts bleiben erhalten und funktionieren. So konnte ich einen Formularcode, der von der SugarCRM-Datenbank erstellt wurde, auf eine node übertragen. Das ausgefüllte Formular hatte (insbesondere im action-Tag und in einigen hidden-Feldern) alle Infos für das Übertragen in die Datenbank.
Herzliche Grüße
Albert