Für den Adminbereich wird die Verwendung einer anderen Schnittstelle empfohlen, als die die für das Frontend empfohlen wird (siehe hier). Als Übertragungsformatierung wird ebenfalls JSON verwendet.
Im Adminbereich gibt es im main_window
-Objekt die Funktion request()
, welche folgende Parameter kennt:
- file: Pfad zur PHP Datei, die Funktionen enthält (der Pfad zur Datei ist ausgehend vom CMS Installationsverzeichnis).
- func: Die aufzurufende Funktion.
- params: Die Parameter für diese Funktion (als Array oder Objekt).
- onComplete: Die Callback-Funktion für die Antwort (Parameter response, params).
- onError (optional): Die Callback Funktion im Fehlerfall (Parameter response, params).
- handleAs (optional): Das zu verarbeitende Format (Standard json).
- timeout (optional): Das verwendete Timeout (Standard 60000, übergeben Sie undefined um den Standardwert zu verwenden).
- sync (optional): Den Aufruf synchron ausführen (Standard false).
Beispiel JavaScript:
main_window.request('pub/theme/<DESIGN>/site/admin/functions.php', 'foobar', {
a : 1,
b : 2
}, function(response, params) {
console.log(response, params);
});
Beispiel PHP:
function foobar($params) {
return $params['a'] + $params['b'];
}
Falls Sie die aktuelle Seite im Adminbereich dem Ajax Call übergeben möchten, müssen Sie Informationen zum aktuellen Mandanten, Sprache und ID oder Identität als Parameter dem request() Aufruf übergeben und aus diesen Informationen das Page Objekt erzeugen. Die folgenden Beispiele verwenden vorhandene Variablen im Frame dlg.
1. Beispiel mit Mandant, Sprache und ID:
main_window.request('pub/theme/<DESIGN>/site/admin/functions.php', 'foobar', {
site : parent.site,
lang : parent.lang,
id : parent.id
}, function(response, params) {
console.log(response, params);
});
Entsprechend in PHP:
function foobar($params) {
$site = new Site($params['site'], $params['lang']);
$page = $site->getPage($params['id']);
return $page->field['name'];
}
2. Beispiel mit Identität:
main_window.request('pub/theme/<DESIGN>/site/admin/functions.php', 'foobar', {
identity : parent.identity
}, function(response, params) {
console.log(response, params);
});
Entsprechend in PHP:
function foobar($params) {
$page = Page::byIdentity($params['identity']);
return $page->field['name'];
}