implementare xajax in una classe

Ciao Gianni sto studiando xajax,

sono riuscito a realizzare un login stand alone, senza troppi problemi, questa libreria è davvero facile ed intuitiva e conoscere javascript non è necessario ( forse un pò, ma visto che io con JS sono al livello -1, credo che non servano grandi conoscenze, giusto l'accesso agli oggetti ed il loro nome)

comunque

ora sorge il problema, dovrei implementare( incorporare ) la sua classe in una mia classe in modo da poterla utilizzare in un contesto più ampio.

sono riuscito a realizzare una funzione che include i file quasi perfettamente funzionante, e ora vorrei che questa fosse utilizzata nella classe, ma non so come fare!

implementarla è l'unica soluzione perchè richiamare tutto dopo che è stato incluso anche un file prima di includere i file della libreria e creare l'istanza della classe, compromette il funzionamento di tutto.( non funziona xajax in pratica )

quindi ho pensato di implementare questa(la libreria) dentro la mia classe e quindi di modificare il codice dell'applicazione standalone e spostarlo dentro la classe.

Non so propio come fare?!  :o  ??? sono molto confuso

in pratica ho questa funzione ( SA )

function getPage($url,$destination = 'pageContent'){
      
         $do = new xajaxResponse();

         if(file_exists($url)&& !eregi("conf\.php|\/class|\/libs",$url)){
            $handle  = fopen($url,'rb');
            $content = fread($handle,1024);
            $do->addAssign($destination,'innerHTML',$content);
         }else{
            $do->addAssign($destination,'innerHTML','oops!');
         }
         return $do;            
   }

funziona quasi del tutto solo che quando da oops! se ripeto l'azione che dà l'errore si impalla alla grande :)

ora dovrei portarla dentro la classe

il codice dove si trova questa funzione è :

<?php
   $xajax = new xajax();
   $xajax->registerFunction("processForm");
   $xajax->registerFunction("getPage");
   
   function getPage($url,$destination = 'pageContent'){
      
         $do = new xajaxResponse();

         if(file_exists($url)&& !eregi("conf\.php|\/class|\/libs",$url)){
            $handle  = fopen($url,'rb');
            $content = fread($handle,1024);
            $do->addAssign($destination,'innerHTML',$content);
         }else{
            $do->addAssign($destination,'innerHTML','oops!');
         }
         return $do;            
   }
   
   function processForm($aFormValues){
   
      $do = new xajaxResponse();
      $error = false;

      $do->addAssign('loadingMessage','innerHTML', '<img src="layout/images/load.gif" alt="" />Verifica dei dati in corso...');
      
      //sleep(1);
            
      if(trim($aFormValues['username']) == '' or strtolower($aFormValues['username']) == "username"){
      sleep(2);
         $do->addAssign('userMessage','style.display','inline ');
         $do->addAssign('userMessage','innerHTML','<img src="layout/images/icons/delete.png" alt="" /> No username, please fill');
         $error = true;
      }elseif(strlen(trim($aFormValues['username'])) < 6 or 
         strlen(trim($aFormValues['username'])) > 32 or 
         eregi('%|\$|£|\!|\\\'|\"|=\.|#',$aFormValues['username'])){
         $do->addAssign('userMessage','style.display','inline ');
         $do->addAssign('userMessage','innerHTML','<img src="layout/images/icons/delete.png" alt="" />'.
         $sm->lang['login']['invalidcharacter']);
         $error = true;
      }else{
         $do->addAssign('userMessage','style.display','none');
      }
      
      if(trim($aFormValues['password']) == '' or strtolower($aFormValues['password']) == "password"){
      sleep(2);
         $do->addAssign('passMessage','style.display','inline');
         $do->addAssign('passMessage','innerHTML','<img src="layout/images/icons/delete.png" alt="" /> No password, please fill');
         $error = true;
      }else{
         $do->addAssign('passMessage','style.display','none');
      }
      
      $do->addAssign("submitButton","value","Login");
      $do->addAssign("submitButton","disabled",false);
      
      if(! $error){
      
         sleep(2);
         $do->addAssign("loadingMessage","style.display","inline");
         $do->addReplace('loadingMessage','innerHTML','<img src="layout/images/load.gif" alt="" />Requesting data...',
            '<img src="layout/images/load.gif" alt="" />Logging in');
         
         $do->addAssign("submitButton","value","Loading...");
         $do->addAssign("submitButton","disabled","disabled");
         $do->addAssign("loginBox",'style.display','none');
         $do->addAssign("shadeContainer",'style.display','none');
      }
      
      
      return $do;      
   }
   
   $xajax->processRequests();
?>

quindi mi ritrovo a non sapere come muovermi,dato che non so dove inserire il codice restante, avevo pensato nel costrutto ... ma nn so se è corretto,

tutto questo sorge per il fatto che ho bisogno di modificare il valore di alcune variabili ( $sm->lang[][] ) ma senza l'istanza della mia classe prima e il medoto setLanguage non posso fare nulla

 :bye:

inviato 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Perdonami trash ma non ho capito il problema.

Non potresti istanziare la classe di XAJAX a livello globale e richiamarla all'interno di altre classi con un global $xajax ?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

si potrei , ma non so come utilizzarla nella classe :( cioè so utilizzarla solo se è da sola :D ma non nella mia classe, cioé non so come fare.

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Istanzia l'oggetto XAJAX esternamente a funzioni e classi (nello "scope globale") e poi metti:

global $xajax;

nelle funzioni o nei metodi delle classi che vorranno accedere all'oggetto $xajax.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

si grazie,

ma non capisco come e dove utilizzare alcuni metodi di xajax, non trovo nessun modo per collegare logicamente le azioni che dovrà fare xajax alla mia classe:

c'è un metodo registerFunction che non so dove richiamare nella mia classe, e poi dove definire le funzioni che utilizzerà xajax ( non sono sicuro se posso descriverle come metodi della mia classe )

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

ma la tua classe che nesso ha con l'oggetto XAJAX? Qual'è lo scopo di questa classe?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

è la classe che regge il sito , solo che non trovando una soluzione alternativa ho pensato di implementare xajax in questa :D, ho fatto male eh?

nulla, sono solo confuso,confusissimo dire.

in pratica xajax lo uso solo per includere il contenuto delle pagine in modo da avere il caricamento( o sarebbe meglio l'include classico ? )

e per qualche effetto al login, motore di ricerca ed altre cose da fighetti :D

:bye:

risposto 9 anni fa
Andrea Turso
Andrea Turso
86
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda