Neu Beispiel für Ajax POST über Plugin

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

OmKFJ

Aktives Mitglied
2. August 2016
18
0
#1
Hallo,

ich würde gerne mittels Plugin Daten über Ajax an meinen Plugin mittels jQuery Ajax POST senden. Laut Forum Recherche sollte das Ganze über die io.php laufen, aber wie sieht das am Ende technisch aus? Ich weiß, man muss ein Hook (123) für den request bereitstellen. Mir fehlt aber das Ganze drum herum, wäre sehr hilfreich wenn ich einen Beispiel hätte wie die Implementierung aussehen sollte.

Wie sieht der ajax aufruf aus (url)?
Wie sieh eine Funktion vom Hook 123 aus(einfach hello word return)?

Vielen Dank!
 

Mirko.Schmidt

Moderator
Mitarbeiter
14. August 2015
1.753
117
#2
Hallo,
am besten einmal hier einlesen. Dort steht beschrieben, wie man Plugins erstellt. Es kommt halt drauf an was das Plugin können soll. Hooks werden bei bestimmten Methoden Aufrufen getriggert und können dann entweder Werte verändern, erweitern oder neuen Content hinzufügen.
 

OmKFJ

Aktives Mitglied
2. August 2016
18
0
#3
Hallo Mirko,

vielen Dank für deine Nachricht.
Also ich habe schon mehrere Plugins erfolgreich programmiert und mit verschiedenen Hooks gearbeitet und Daten manipuliert.
Die Doku kenne ich auch, doch es gibt keine Infos bezüglich Ajax.

Ich brauche lediglich ein snippet für einen sehr simplen Ajax Aufruf über ein Plugin, was auf eine PHP Datei im frontend Ordner zugreift.

Geht mir mir hauptsächlich um die Ajax url und den Hook für die Registrierung der Ajax Funktion.


Gesendet von iPhone mit Tapatalk
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
3.734
508
Berlin
#4
Ich schicke meine Daten an die io.php, denn die ist immer an der gleichen Stelle und die sorgt dafür das alle Variablen die ich benötige dann auch vorhanden sind.
für einen io aufruf gibt es auch einen Hook: HOOK_IO_HANDLE_REQUEST

Du solltest eine eindeutige Kennung über POST/GET schicken damit du wenn der Request nicht für dich bestimmt ist nicht einfach annimmst.

Abfrage hierfür z.B.:
if(!isset($_REQUEST['io']) || $_REQUEST['io']!='css_zubehoer') return ;

Alles andere was du dann machst ist dein Ding, findet sich kein Abnehmer bei einem solchen Request dann gibt die io.php einen 500er Error raus, bzw. ich glaube das wurde in neueren Versionen geändert.

Um das zu verdeutlichen, dies ist ein Teil meiner Hook Datei die auf jeden Hook reagiert und diesen an die entsprechende Funktion verteilt:

Code:
switch($oPlugin->nCalledHook) {

    case HOOK_SMARTY_OUTPUTFILTER:
        $cssPlugin->hookSmartyOutputfilter();
        break;
    case HOOK_IO_HANDLE_REQUEST:
        if(!isset($_REQUEST['io']) || $_REQUEST['io']!='css_zubehoer') return ;
        $cssPlugin->hookIoHandleRequest();
        break;
       
    case HOOK_ARTIKEL_PAGE:
        $cssPlugin->hookArtikelPage($args_arr);  
        break;
   
    case HOOK_ARTIKEL_INC_XSELLING:
        $args_arr = $cssPlugin->hookArtikelIncXselling($args_arr);
        break;

    case HOOK_CSS_JS_LIST:
        $cssPlugin->hookCssJsList($args_arr);
        break;
}
 

Ähnliche Themen