Back to top

Autore Topic: Funzione utilizzabile da più models  (Letto 1605 volte)

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Funzione utilizzabile da più models
« il: 07 Set 2010, 19:27:24 »
Ciao a tutti ho un problema: ho scritto questo file:

Codice: [Seleziona]
    function getUser(){
        $user = JFactory::getUser();
        if ($user->id==0){
            $this->setError("NO_LOGGATO");
            return false;
        }
        $aut = $this->_getList("SELECT * FROM #__eventmanager_autorizzazioni ORDER BY Campo");
        //------- controllo accesso ------ UTENTI AUT
        $UTaut = explode(",",$aut[0]->Valori);
        // ------ gruppi ----
        $GRPaut = explode(",",$aut[1]->Valori);
        // ---- gruppi CB -----
        $query= "SELECT Valori FROM #__eventmanager_autorizzazioni WHERE Campo=3";
        $dati = $this->_getList($query);
        $campi = $dati[0]->Valori;
        $query="SELECT filterfields FROM #__comprofiler_lists WHERE listid IN($campi)";
        $dati = $this->_getList($query);
        $pulizia='';
        for ($i=0;$i<count($dati)-1;$i++){
            $pulizia.=$this->pulizia($dati[$i]->filterfields). " OR ";
        }
        $pulizia.=$this->pulizia($dati[$i]->filterfields);
        if($pulizia=="")$pulizia=0;
        $CBquery="
        SELECT count(*) as conto
        FROM (SELECT ID FROM #__comprofiler WHERE $pulizia) AS a
        WHERE ID=$user->id";
        $dati = $this->_getList($CBquery);
        if($dati[0]->conto==0) $CBaut==false; else $CBaut=true;
        //----- merge -----
        if(in_array($user->id,$UTaut)||in_array($user->gid,$GRPaut)||$CBaut){
            return $user;
        } else {
            $this->setError(JText::_("NO_LOGGATO"));
            return false;   
        }
    }
   
    function pulizia($str){
    $str=str_replace("s(","",$str);
    $str=str_replace("`","",$str);
    $str=str_replace(")","",$str);
    $str=str_replace("%20"," ",$str);
    return $str;
    }

e poi ho scritto un altro file:

jimport( 'joomla.application.component.model' );

require(JPATH_COMPONENT . DS . 'helpers' . DS . 'utenti.php');

class EventManagerModelStatistiche extends JModel
{
    function getUser(){
        return EventManagerHelperUtenti::getUser();   
    }
}

Mi restituisce questo errore: Fatal error:  Call to undefined method EventManagerModelStatistiche::pulizia() in C:\xampp\htdocs\Joomla\components\com_eventmanager\helpers\utenti.php on line 26

Perchè?

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #1 il: 10 Set 2010, 14:34:02 »
Scusa ma hai dichiarato la classe EventManagerHelperUtenti?Oppure il codice che hai scritto è solo una funzione?
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #2 il: 10 Set 2010, 15:55:03 »
Assolutamente si! ho scritto la classe EventManagerHelperUtenti e poi all'interno la funzione

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #3 il: 10 Set 2010, 16:17:36 »
Dentro alla funzione getUSer prova a richiamare il metodo pulizia in questo modo EventManagerHelperUtenti::(pulizia($dati[$i]->filterfields)) invece che utilizzare $this->


Oppure controlla bene di non aver chiuso qualche parentesi graffa in più o in meno, cosi senza vedere il resto del codice xo non te lo potrei dire!
« Ultima modifica: 10 Set 2010, 16:26:16 da simone83 »
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #4 il: 10 Set 2010, 16:26:30 »
ok, proverò grazie di tutto, so che è un pò OT ma dato che si parla di pulizia....

devo pulire questa stringa per inserirla in una query...

s(`cb_ruolo` ='Ingegnere%20biomedico')

c'è una funzione preimpostata?

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #5 il: 10 Set 2010, 16:32:11 »
Cosa vorresti fare?

Ti serve per evitare una sqlInjection?

intanto per ripulire il codice puoi mettere tutto in una riga invece di dichiarare 4 str_replace
$str=str_replace(array("s(","`",")","%20"),"",$str);
   

« Ultima modifica: 10 Set 2010, 16:36:24 da simone83 »
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #6 il: 10 Set 2010, 16:36:05 »
s(`cb_ruolo` ='Ingegnere%20biomedico')  ---->> cb_ruolo = 'Ingegnere Biomedico'

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #7 il: 10 Set 2010, 16:41:13 »
Non mi viene in mente nulla, usa le str_replace avnno bene lo stesso penso :D
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Funzione utilizzabile da più models
« Risposta #8 il: 10 Set 2010, 16:56:27 »
ok grazie 1000!

 



Web Design Bolzano Kreatif