Back to top

Autore Topic: Include in comune fra un modulo e una componente  (Letto 1516 volte)

Offline engp013a

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Include in comune fra un modulo e una componente
« il: 02 Lug 2010, 13:59:15 »
Salve a tutti,
ho creato un modulo che mi consente di accedere ad una mia tabella  e di visualizzare una riga nella testata del sito in base a certi calcoli.

Ho creato anche una componente che consentisse di accedere allo stesso record tramite il menu.
Dal momento che l'accesso ai dati e il calcolo per i filtri è uguale ho creato un modulo comune.
Nel modulo e nella componente la funzione è presente tramite l'istruzione include di PHP.

Il modulo funziona correttamente, ma appena accedo alla componente tramite il menu mi viene presentato l'errore Fatal error: Cannot redeclare .......

Per quanto riguarda la include nella componente l'ho fatta nel file .php presente nella directory models.

Mi potreste dare una mano?

Grazie mille

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Include in comune fra un modulo e una componente
« Risposta #1 il: 09 Lug 2010, 09:16:46 »
ciao,
 non so  se hai risolto, ma la soluzione è semplice: metti l'include sotto if verificando se è già definito il simbolo (costante/classe...) che php ti dice di non poter ri-dichiarare.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline engp013a

  • Nuovo arrivato
  • *
  • Post: 36
    • Mostra profilo
Re:Include in comune fra un modulo e una componente
« Risposta #2 il: 09 Lug 2010, 10:43:17 »
No, non ho ancora risolto. Però ho fatto la seguente prova:

Ho preso tutto il codice presente nella include e l'ho inserito dentro la function della componente, quindi senza più richiamare la function della include. Il risultato è che ottengo lo stesso errore su le altre function che utilizzo nel codice copiato all'interno della function della classe.

Per intenderci riporto un esempio:

Classe xxxx{
function yyyy{

             function aaaa{
                  ..........
                  ..........
                  ..........
              }

             altro codice
             .................
             $variabile = function aaaa;
             altro codice
             .................


}

}

Il risultato è  Cannot redeclare.......

Spero di essere stato chiaro.

ciao,
 non so  se hai risolto, ma la soluzione è semplice: metti l'include sotto if verificando se è già definito il simbolo (costante/classe...) che php ti dice di non poter ri-dichiarare.

ciao,
marco

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Include in comune fra un modulo e una componente
« Risposta #3 il: 09 Lug 2010, 10:52:49 »
eri già stato chiaro, forse non lo sono stato io.

1.
hai usato require_once, vero?

2.
nel caso quanto sopra non funzioni:
inserisci come prima riga nel file da includere:

define("MYLIBRARYNAME", "1");

cambia il require in componente/moduli in

if (!defined('MYLIBRARYNAME')) {
   require_once('mylibraryname.php');
}


ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Include in comune fra un modulo e una componente
« Risposta #4 il: 11 Lug 2010, 11:01:01 »
ocio, stai ridichiarando una classe

 



Web Design Bolzano Kreatif