Best Practice: Plugin + AJAX?

∆irk

Aktives Mitglied
27. Mai 2014
3
0
Für ein bestehendes Plugin möchte ich einen plugin-spezifischen Ajax-Requesthandler (*.php) definieren. Der Handler soll nur JSON-Daten zurückliefern.

Gibt es eine Möglichkeit diesen Requesthandler (*.php) innerhalb (!) der Plugin-Struktur zu definieren? Oder wo definiere ich ihn am Besten?

Hintergrund
Das Plugin liefert Suchergebnisse einer erweiterte Artikelsuche. Die Anzeige erfolgt mit einer jQuery-"Tablesorter"-Tabelle. Nun möchte ich das Plugin um eine Blätterfunktion auf der Basis des "Tablesorter"-Plugins "Pager" erweitern. Dieses "Pager"-Plugin erwartet die Daten seitenweise im JSON-Format. Den zugehörigen Requesthandler (*.php) würde ich gerne innerhalb des Plugins unterbringen, da er ziemlich plugin-spezifisch ist.

Geht das nur über .htaccess-Regeln?

Bin für jeden Tipp dankbar,
Dirk.
 

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.621
404
AW: Best Practice: Plugin + AJAX?

Keine Ahnung, ob ich dich richtig verstehe, aber du kannst doch eine Datei innerhalb der Plugin Struktur ansprechen, der Pfad ist doch auf php und smarty ebene bekannt... Da brauchste auch keinen htaccess für...

Oder er was meinst du genau?
 

∆irk

Aktives Mitglied
27. Mai 2014
3
0
AW: Best Practice: Plugin + AJAX?

Im Prinzip hätte ich gerne so etwas wie einen "PlainLink" in einem Plugin analog zu einem FrontendLink .


<jtlshop3plugin>
<Name>myplugin</Name>
...
<PlainLink>
<Link>
<Name>myexample</Name>
<Filename>example.php</Filename>
<Template>example.tpl</Template>
...
</Link>
<PlainLink>
...
</jtlshop3plugin>


Aufrufen würde ich das z.B. mit "http://localhost/myexample?foo=bar".
Ausgeführt wird das PHP-Skript "example.php" mit dem Smarty-Template "example.tpl" des Plugins "myplugin".
Zurückgeliefert wird lediglich die Ausgabe des PHP-Skripts und nicht die ganze Shop-Seite wie bei einem FrontendLink.


In dem Beispiel wäre "http://localhost/myexample?..." eine URL die ich als AJAX-Handler verwenden möchte. Der Handler soll nur JSON-Daten zurückliefern. Deshalb käme die Variante "Plugin mit FrontendLink" nicht in Frage.


Ohne FrontendLink (und "PlainLink") müsste ich per .htaccess den Zugriff auf das bestimmte PHP-Skript des Plugins freigeben. Das ist natürlich hässlich, da ich dabei die Plugin-Verwaltung der Adminkonsole ausheble. Wirklich hässlich ...
 

∆irk

Aktives Mitglied
27. Mai 2014
3
0
AW: Best Practice: Plugin + AJAX?

Angenommen ich habe ein Plugin "my_sample_plugin" mit der Version "1.10" aktiviert und ich möchte daraus den Ajax-Requesthandler "my_sample_ajax_requesthandler.php" nutzen.

Dann müsste der Ajax-Client (Browser) diese URL aufrufen:
includes/plugins/my_sample_plugin/version/110/frontend/my_sample_ajax_requesthandler.php

Das darf er ohne Anpassung der .htaccess-Datei im includes-Verzeichnis jedoch nicht.


Was meiner Ansicht nach in der Shop3-Plugin-Spezifikation fehlt, sind einfache (!) Links. Denn im beschriebenen Fall würde ich gerne einen Link definieren, der das Skript "my_sample_ajax_requesthandler.php" des Plugins "my_sample_plugin" der gerade aktiven Version (hier: "1.10") aufruft und lediglich die Ausgabe des "my_sample_ajax_requesthandler.php"-Skripts zurückliefert.


Aktuell habe ich hier nur die sog. Frontend-Links zur Verfügung. Die liefern jedoch viel mehr, als das eigentlich aufgerufene Skript zurück.
 

Ähnliche Themen