| |||||||
| Registrieren | Lexikon | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| PostRank: 4 ![]() Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Authentifizierung Admin-Session / AJAX / XmlHttpRequest Hallo. Ich plane gerade die Überarbeitung meines Statistikplugins, die Grundidee ist es statt vieler einzelner Adminseiten alle Satistikausgaben übersichtlich auf einer Seite zu plazieren. Beispiel 'Besuche': Man stelle sich ein Tab-Menü mit unterhalb gelegenem Datenfenster vor Code: -----------------------------------------------------------------------
TAGE | WOCHEN | MONATE | JAHRE
-----------------------------------------------------------------------
... hier dann Diagramm und Daten ...
für die jeweiligen Menüpunkte
-----------------------------------------------------------------------
Statt nun alle Daten per MySQL komplett auszulesen und zu verarbeiten (Overkill bei grösserer Datenmenge) und in versteckte DIVs zu packen habe ich mir überlegt dass man bei Klick auf einen TAB die Daten per externem Script generieren lassen könnte und dann per XmlHttpRequest in das DIV laden könnte. Benutzt werden soll hierfür Ajax Tabs Content documentation sofern Lizenzkompatibel, muss ich noch gucken. Zur Frage: Wenn die Daten/Diagramme von einem externen Script generiert werden sollen - Wie sichere ich das externe Script ab (nur Benutzung durch Admin) ? - Wie bekomme ich am günstigsten/schnellsten die Datenbankverbindung (über include() der wp-config) ? V.a. die Absicherung ist mein grosses Problem, weiss da jemand Näheres? Ich suche mir einen Wolf und kann absolut nichts finden... |
| | |
| | #2 (permalink) |
| WPD-Moderator ![]() Registriert seit: 31.05.2005 Ort: Gera Ghetto
Beiträge: 2.399
| Also ich arbeite da mit WP-Bordmitteln, sprich SACK und jQuery. Die werden eh schon im Admin-Bereich instanziert, von daher kann man die nutzen ohne neue Frameworks dazupacken zu müssen. Den Aufruf starte ich z.B. mit: HTML-Code: function deine_function( var1, var2 ) {
var sack = new sack(
http://www.domain.de/wp-admin/admin-ajax.php);
sack.execute = 1;
sack.method = 'POST';
sack.setVar( "action", "php_funktion" );
sack.setVar( "var1", var1 );
sack.setVar( "var2", var2 );
sack.onError = function() { alert('Ajax error') };
sack.runAJAX();
}
PHP-Code: Btw, als Tabs würde ich auch auf jQuery setzen: jQuery UI Tabs / Tabs 3 Damit hast du die Möglichkeit, mit Callbacks zu arbeiten, um z.B. die DB-Abfrage bei Klick zu starten... Geändert von Alphawolf (28.05.2008 um 17:04 Uhr). |
| | |
| | #3 (permalink) |
| PostRank: 4 ![]() Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Hmja, die UI-Tabs sind definitiv interessant, danke. Von SACK habe ich bisher noch nicht viel mitbekommen, allgemein orientiert sich mein Wissen eher in Richtung PHP/XHTML/CSS und weniger AJAX/JS. AJAX in Plugins « WordPress Codex werde ich mir mal zu Gemüte führen müssen, ich bin mir nach grobem überfliegen aber nicht sicher ob es das ist was ich benötige: - User klickt im Adminbereich auf 'CyStats' ---> Container mit Tagesbesuchen wird angezeigt ------> User klickt auf Tab 'Wochenübersicht' ---------> jetzt soll die Seite nicht neu geladen sondern ein XmlHttpRequest an z.B. eine /plugins/cystats/build-graph.php mit Parameter z.B. 'week' abgesetzt werden. -------------> die build-graph.php muss jetzt eine DB-Verbindung aufbauen und vorher den Adminstatus prüfen. ----------------> Wenn alles ok, Diagramm o.Ä. generieren und zurückschicken, soll im gleichen Container angezeigt werden. So soll das Prinzip sein wenn möglich, bin für jede Hilfe dankbar Grüsse und danke |
| | |
| | #4 (permalink) |
| WPD-Moderator ![]() Registriert seit: 31.05.2005 Ort: Gera Ghetto
Beiträge: 2.399
| Ja, dafür ist SACK prädestiniert. Der Vorteil daran ist, dass du zum Verarbeiten der AJAX-Daten nicht eine extra PHP-Datei brauchst, sondern dies dann alles in der http://www.domain.de/wp-admin/admin-ajax.php geschieht. Ohne deinen Code zu kennen, mal ein Beispiel für deinen Fall. - Bei Klick auf ein Tab, wird als Callback die obige JS-Funktion deine_function() ausgeführt. Damit wird die Anfrage gestellt. - Die Anfrage bearbeitet eine PHP-Funktion PHP-Code: Den Inhalt der Variablen $q kannst du dann in dein Tab/DIV schreiben lassen. Ist eigentlich recht einfach und ein mächtiges Feature für Entwickler von WP wie ich finde. |
| | |
| | #5 (permalink) |
| PostRank: 4 ![]() Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Vielen Dank,mit diesem Ansatz kann ich schonmal arbeiten, werde mich einlesen, testen und mich ggf. hilfeschreiend oder dankend wieder hier melden Edit: Gibt es da abgesehen von der o.g. WordPress.Org-Seite noch andere Dokumentationen ? |
| | |
| | #6 (permalink) |
| PostRank: 4 ![]() Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Hmja, der erste Schritt ist getan, JQuery und UITabs sind eingebaut und funktionieren. Frage: Die Anzeigefunktionen des Statistiksystems sind derzeit in eine eigene Klasse gekapselt die bei is_admin() eingebunden ( include() ) wird. Muss ich diese Klasse im Plugin instant(z?)iieren und an SACK irgendwie übergeben oder wie kann ich die einbinden? Ist evtl. sogar ein komplettes Rewrite des Systems dafür nötig? |
| | |
| | #8 (permalink) |
| PostRank: 4 ![]() Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Genau so habe ich das gemeint, danke Versuche imernoch die tieferen Geheimnisse und Beziehungen in der Kombination PHP/jQuery|SACK zu verinnerlichen... lange ( jahrelang) habe ich alles was mit Javascript zu tun hat abgelehnt, so langsam fängt es an Spass zu machen... Danke nochmal. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |