Autor Freespacer
Datum 13.01.2007 05:57
Beiträge: stefan schrieb am 08.01.2007 um 21:21:56 Uhr folgendes:

Ich würde das nicht in der master.php inializieren


Da du mir ja die Möglichkeit OPN von der Shell zu starten gezeigt hast, so habe ich mir überlegt, ob man die Ajax-Klasse nicht manuell in jeweiligen Modulen nachladen sollte. Und die class.opn_output.php sollte eben prüfen, ob die Ajax-Klasse geladen wurde und entsprechend handeln. Bevor dann die Ajax-Klasse eingebunden wird, wird zuerst geprüft, ob in der Grundeinstellung (Schalter) Ajax eingebunden werden soll oder nicht und ob der Browser dazu in der Lage ist.

stefan schrieb am 08.01.2007 um 21:21:56 Uhr folgendes:

ja nur ist das nicht ganz so geschickt. weil man im code dann jeden einzeln (oder als array) über geben muss. geschickter wäre wenn er "automatisch" alle elemente holt und über gibt

ne "krücke" wäre denkbar durch die form class aber auch das wäre nur ne krücke


Automatisch holen?! Hmmm. Das bedeutet, auch die class.formular.table.php musste wegen der Integration von Ajax daran glauben und dort alle Namen wie auch Input/Textarea/Select-Elemente pro Form pro Modul sich merken. Obwohl dieses Array bereits schon in der Ajax-Klasse gebaut wird, kann man diese in das Formular auslagern, um die Übergabe der Element und deren Namen zu automatisieren. Stimmt schon, sollte man machen.

(Sehe mir gerade die Ajax-Klasse an und da fällt es mir auf, dass man das Array weiter optimieren kann, aber da es ja sowieso nach class.formular.table.php ausgelagert werden soll, werde ich die Optimierung dort vornehmen.)

Dann müsste z.B. wie folgt eingebunden werden:
$this->_forms['modul']['formname']['element']['name'] = $value;

Dann könnte die Ajax-Klasse damit auch "arbeiten", wenn man dieses Array von der Form-Klasse sich holt.

z.B.:
$form = & new opn_FormularClass ('default');
$form->Init ($opnConfig['opn_url'] . '/system/search/index.php', 'post', 'mainsearch');

...

$form->GetFormular ($boxtext);
$opnConfig['opnajax']->add_formdata_js($form->_forms);


Dann muss aber die Klasse class.formular.table.php auch wissen, ob Ajax aktiv ist, dann kann er auch gleich den JS-Aufruf der Ajax-Klasse $opnConfig['opnajax']->ajax_get_function_javascript(true) bzw. $opnConfig['opnajax']->ajax_get_function_javascript() einfügen.

Wird eigentlich auch der Name des Modules wie z.B. "search" irgendwo in $opnConfig gespeichert? Dann kann man den Namen des Modules auch automatisch an die Ajax-Klasse abtreten lassen. (z.b. function search_mainsearch oder function search_mainsearch2) für den Direkt-Aufruf per AJAX in PHP.

Gruß

Sebastian


Diese Seite drucken
Diese Seite schließen

Dieser Artikel kommt von: OpenPHPNuke - das Open Source CMS

http://www.openphpnuke.info/