Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Template

  1. #1

    Template

    Ho bisogno di riempire una pagina con più template.
    Ho del codice php all'interno di un case, dove a seguito dell'avvenimento di un evento esegue

    Codice PHP:
    $menu_banner2 = new Template("dtml/gruppi/d1_groups_banner.html");
    $menu_banner2->setContent("nome",$_GET['gruppi']); 
    mentre a seguito di un altro evento esegue:

    Codice PHP:
    $menu_banner = new Template("dtml/gruppi/groups_banner.html"); 

    all'uscita del CASE vado a riempire i due template creati in precedenza con:

    Codice PHP:
    $index getIndexGroup($user_nome);
    $index->setContent('title',"Gruppi");
    $index->setContent('body',$body->get());
    $index->setContent('menu_banner',$menu_banner->get());
    $index->setContent('menu_banner2',$menu_banner2->get());

    $index->close(); 
    Andando ad eseguire il codice ottengo come errore:


    Fatal error: Call to a member function on a non-object in c:\programmi\easyphp1-8\www\progetto.it\htdocs\gruppi_public.php on line 540


    Premetto che eliminando un setContent a fine codice precedente il template viene riempito correttamente e tutto funziona! Per intenderci eliminando alternativamente le due righe di seguito:

    Codice PHP:
    $index->setContent('menu_banner',$menu_banner->get());

    //OPPURE

    $index->setContent('menu_banner2',$menu_banner2->get()); 
    Per quale motivo?
    Da cosa dipende?
    moscacieca

  2. #2
    Cosa c'è alla linea 540?
    =======================
    http://www.abidibo.net

  3. #3
    Nella linea 40 c'è :

    Codice PHP:
    $index getIndexGroup($user_nome);
    $index->setContent('title',"Gruppi");
    $index->setContent('body',$body->get());
    $index->setContent('menu_banner',$menu_banner->get());            // LINEA 40
    $index->setContent('menu_banner2',$menu_banner2->get());

    $index->close(); 
    moscacieca

  4. #4
    l'errore ti dice che una delle variabili che usi come oggetto in realtà non lo è.. $index direi di no siccome lo usi anche nelle righe precedenti.. rimane $menu_banner... viene istanziato correttamente all'interno del file?
    ps (l'errore non era alla linea 540 del file gruppi_public.php?, mi hai postato quela riga?)
    =======================
    http://www.abidibo.net

  5. #5
    Allora... mettiamola così:

    All'interno del case creo un nuovo Template con il file .html;
    gli dico che deve riempire il campo nome, all'interno del fil html con $_GET['gruppi'];

    Codice PHP:
    $menu_banner = new Template("dtml/gruppi/d1_groups_banner.html");
    $menu_banner->setContent("nome",$_GET['gruppi']); 
    All'uscita del case richiamo un nuovo Template con :

    $index = getIndexGroup($user_nome);

    e gli dico che devo riempire tutte le varie sezioni con i vari setContent!

    Codice PHP:
    $index->setContent('title',"Gruppi");
    $index->setContent('body',$body->get());
    $index->setContent('menu_banner',$menu_banner->get()); 
    Ora lasciando tutto così invariato, funziona tutto correttamente!

    Ora: voglio riempire una nuova sezione all'interno della pagina .html e metto anzichè 'menu_banner', un'altra sezione chiamata 'menu_banner2', che verrà riempito a seguito dell'elaborazione della seguente sezione:

    Codice PHP:
    $menu_banner2 = new Template("dtml/gruppi/d1_groups_banner.html");
    $menu_banner2->setContent("nome",$_GET['gruppi']); 
    dove alla fine, uscendo dal case, avrò oltre alla precedente sezione 'menu_banner' anche la sezione relativa al nuovo template:

    Codice PHP:
    $index->setContent('title',"Gruppi");
    $index->setContent('body',$body->get());
    $index->setContent('menu_banner',$menu_banner->get());

    $index->setContent('menu_banner2',$menu_banner2->get());

    $index->close(); 

    Ora a prescindere riga 40 riga 39, il problema nasce nel momento in cui vado ad inserire questo ultimo template, che mi genera l'errore citato precedentemente.


    Fatal error: Call to a member function on a non-object in c:\programmi\easyphp1-8\www\progetto.it\htdocs\gruppi_public.php on line 540


    E comunque alla riga 40 ho sì questa diamine di riga:


    $index->setContent('menu_banner2',$menu_banner2->get());



    Quindi?
    moscacieca

  6. #6
    Scusa se insisto, pero' il fatto è che io non ho mai usato i template, mentre me ne intendo abbastanza dell'utilizzo di classi nmetodi e cose varia, per cui speravo di aiutarti a partire dall'errore che hai ricevuto, non dalla visione generale del tuo progetto... A me fare bbe comodo sapere esattamente cosa c'è scritto nel file c:\programmi\easyphp1-8\www\progetto.it\htdocs\gruppi_public.php alla riga 540... poi se dici che non centra nulla, allora niente mi spiace ma non ti so aiutare
    =======================
    http://www.abidibo.net

  7. #7

    CC: STAFF DI HTML.IT

    Porca trota! Nell'ultima settimana ho aperto 4 discussioni, con 0 e dico ZERO soluzioni valide proposte!!
    Ma che roba è?
    Mi auguro che utenti a parte, e per i quali nutro grande stima e che ringrazio (in ultimo abidibo), coloro che si ritengono esperti e moderatori non percepiscano alcun tipo di compenso economico, perchè questa serebbe da intendersi come TRUFFA aggravata da FANCAZZISMO!

    Ce la diamo una svegliata SI' o ce la diamo una svegliata NO?
    Devo fare mica qualche sollecito fatto a mestiere?

    "CHETTENEMO DA FA'?"

    Grazie abidibo, comunque sì in quella riga incriminata c'è la riga di codice che puoi leggere nel post precedente!
    moscacieca

  8. #8
    A parte tutto questa incazzatura, ovviamente non ci guadagnamo 1 euro, se non il piacere di aiutare qualcuno. Io mi chiedo solo una cosa: com'è che continui a parlare della riga 40 quando il messaggio di errore ti viene dato alla riga 540?
    =======================
    http://www.abidibo.net

  9. #9
    Sì.. scusa.. un lapsus... 540...
    moscacieca

  10. #10
    Prima parlavi di eventi, nonè che istanzi l'oggetto $menu_banner2 solo quando succede una determinata cosa (evento A), mentre la chiamata
    $index->setContent('menu_banner2',$menu_banner2->get());
    c'è sempre a prescindere dall'evento?
    Una situazione del genere ti genererebbe quell'errore, perchè in una esecuzione in cui non avviene l'evento A, viene eseguita la linea di codice che contiene la chiamata $menu_banner2->get(), ma senza il verificarsi di A $menu_banner2 non è stato istanziato..
    puo' essere cosi?
    =======================
    http://www.abidibo.net

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.