Modulinterne AJAX-Funktion auf modulinterne PHP Datei lenken
am 20.07.2015 - 10:42 Uhr in
Hallo Forum,
ich habe ein Modul geschrieben, welches URLs verarbeitet. Das heißt ich habe an beliebiger Stelle einen Button, welcher ein Overlay erzeugt. Dieses Overlay beherbergt ein Formular mit einem input-Feld. In das Inpit-Feld wird eine URL eingefügt. Meine Ajax-Funktion schickt diese URL nun an eine PHP-Datei (ich nenne Sie proxyparser.php) und liefert ein geparstes Dokument an meine Anwendung zurück. Aktuell habe ich die php Datei direkt im "home" ordner unter /php/proxy.php. Kann ich irgendwie steuern, das ich die Datei in meinem Modul hinterlege und die Datei trotzdem finde?
In meinem Javascript-Code
steht folgendes
[code]
jQuery.ajax({
type:'POST',
url: '/php/proxyparser.php', //hier hätte ich gerne einen Pfad zur Datei, welche im Modulordner hinterlegt wird.
data: {'url':jQuery('#url').val()},
context: document.body
})
[/code]
- Anmelden oder Registrieren um Kommentare zu schreiben

schau mal nach base_path()
am 20.07.2015 - 12:46 Uhr
Damit solltest du alles bekommen können, was du brauchst.
Auch wenn due den ersten / weglässt, bist du innerhalb.
Hallo, du benötigst
am 20.07.2015 - 13:08 Uhr
Hallo,
du benötigst drupal_get_path um den Pfad relativ zum modul Ordner zu bekommen.
https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_get_path/7
drupal_get_path('module', '<deinmodulname>').'/php/<deinedatei>.php';So, kannst Du dein Modul beliebig verschieben, ohne den Pfad anpassen zu müssen.
MfG
Robert
Hi Robert, wenn ich PHP Code
am 20.07.2015 - 13:33 Uhr
Hi Robert,
wenn ich PHP Code bin ist mir das bewusst, aber geht das auch direkt in Javascript so?
Hi Ronald,
wenn ich das mit base_path mache bin ich ja nur im Kernordner und nicht in den Modulen.
mit bestem Gruß und vielen Dank für eure Lösungsansätze
egal was du tust
am 20.07.2015 - 13:41 Uhr
wichtig ist doch, dass du weißt wo du bist.
Einfach als Gedanke: du könntest dir im Template eine Variable setzen lassen, die sich aus dem Modulpfad (get_path) und einem Zusatzpfad zusammensetzt.
das ist nicht ganz so
am 20.07.2015 - 14:07 Uhr
das ist nicht ganz so einfach, wenn ich das ganze auf einer lokalen Installations bastel brauche ich loacalhost/projekt/sites/all...., wenn ich aber www.domain.de/sites/all unterwegs bin sieht das anders aus. auf diese prüfung wollte ich gerne verzichten.
Hi,du kannst es wie folgt
am 20.07.2015 - 14:37 Uhr
Hi,
du kannst es wie folgt machen.
In der init Funktion Deines Moduls:
$my_settings = array('meinpfad' => drupal_get_path('module','<deinmodul>').'/php/<deinedatei>.php';,
'meineoption' => 'irgendwas'
);
drupal_add_js(array('<deinmodul>' => $my_settings), 'setting');
Dann kannst Du in javascript auf die Variablen in Drupal settings wie folgt zugreifen:
var basePath = Drupal.settings.<deinmodul>.meinpfad;var option = Drupal.settings.<deinmodul>.meineoption;
Gruss
Robert
PS: Sorry, nochmal bearbeitet. War ein Typo im code ;-)
Super danke, das ist es.
am 20.07.2015 - 14:34 Uhr
Super danke, das ist es.