HalloHalo,
ich arbeite gerade an einer Extension für ein Mediawiki-System. Dieses stellt einen Wizard bereit, welcher die benutzer bei der Erstellung neuer Artikel anleitet.
Hierbei müssen die Benutzer in Stufe eins einen Artikelname und einen Oberbegriff angeben. Es soll also geprüft werden, ob beides angegeben wurde und ob ein Artikel mit diesem titel bereits existiert. Also muss ich da irgendwie mit php kommunizieren. Hier kommt also ajax ins Spiel.
Das mediaWiki hat bereits ein framework integriert. SAJAX (nicht gerade jenes, welches ich üblicherweise verwende. bei Prototype würd ich einfach einen synchronen request loschicken und jenachdem true oder false zurückgeben). Wie gesagt bei sajax kenne ich mich nicht so aus.
Hier nun mein Ansatz:
und der js-teil
Hoffe ich habe mich halbwegs verständlich ausgedrückt und mir jemand helfen kann. Ansonsten wäre ich extrem suizidgefährdet, weil ich keinen Ausweg mehr sehe:mrgreen:
Gruß
derTrallala
ich arbeite gerade an einer Extension für ein Mediawiki-System. Dieses stellt einen Wizard bereit, welcher die benutzer bei der Erstellung neuer Artikel anleitet.
Hierbei müssen die Benutzer in Stufe eins einen Artikelname und einen Oberbegriff angeben. Es soll also geprüft werden, ob beides angegeben wurde und ob ein Artikel mit diesem titel bereits existiert. Also muss ich da irgendwie mit php kommunizieren. Hier kommt also ajax ins Spiel.
Das mediaWiki hat bereits ein framework integriert. SAJAX (nicht gerade jenes, welches ich üblicherweise verwende. bei Prototype würd ich einfach einen synchronen request loschicken und jenachdem true oder false zurückgeben). Wie gesagt bei sajax kenne ich mich nicht so aus.
Hier nun mein Ansatz:
PHP-Code:
/* register Ajax function */
$wgAjaxExportList[] = 'wfAjaxValidateTitle';
function wfAjaxValidateTitle($title)
{
$title=Title::newFromText($title);
$article=new Article($title);
if (($title->mArticleID != '0') && $article->exists())
return "1";
else
return "0";
}
Code:
else if (elem1.value != '') { sajax_do_call("wfAjaxValidateTitle", [elem1.value], validateTitel); } } } function validateTitel(request) { if (request.status != 200) { alert("Error: " + request.status + " " + request.statusText + ": " + request.responseText); return; } var result = request.responseText; if (result == 1) { $("naw_title").focus(); $("naw_title").className = 'focus'; $("naw_title").value = 'Ein Artikel mit diesem Titel besteht bereits'; return false; } }
Gruß
derTrallala
Kommentar