Domanda

Ho letto più volte la guida Aggiungi una nuova pagina personalizzata a phpBB , ma ancora non riesco a farlo funzionare.

Sto cercando di integrare questo calendario con phpBB3. Voglio che il codice del calendario abbia accesso alle variabili phpBB, quindi consentirà solo agli utenti registrati di aggiungere nuovi eventi.

La guida phpBB sopra consiglia di creare una breve pagina PHP, che configura la sessione phpBB e quindi chiama un modello HTML statico, che utilizza Server Side Include (SSI) per inserire le intestazioni phpBB, ecc. Ma la mia pagina del calendario non lo è solo HTML statico, include anche codice PHP. Non riesco a visualizzare l'output PHP della pagina del calendario tra l'intestazione e il piè di pagina di phpBB. L'HTML del calendario viene visualizzato correttamente, ma non viene eseguito alcun PHP. Sembra che il metodo consigliato semplicemente non consenta l'esecuzione del codice PHP nel modello.

Per riassumere: ho seguito la guida sopra, ma ho sostituito "aboutus_body.html" con il mio "calendar.php". Invece di vedere il calendario visualizzato correttamente, con intestazione e piè di pagina phpBB, ho visto solo le parti HTML di calendar.php visualizzate con intestazione e piè di pagina phpBB. Nessun output PHP del calendario era visibile.

È stato utile?

Soluzione

Ok, ora ho capito il modo corretto per farlo:

Dopo aver seguito il tutorial su: http://wiki.phpbb.com/Practical.Add_custom_page

Copia tutto il codice del calendario in aboutus.php (nel tutorial, il file php in cui è impostata la sessione phpBB e l'URL da cui si accederà alla pagina), prima di $ template-> set_filenameslinea

Ma la chiave è: invece di visualizzare l'HTML con "print" o "echo", salva tutto l'HTML in una variabile, ad es.$ calendar_html

Quindi, quando hai finito di creare la pagina, utilizza questo codice prima della riga $ template-> set_filenames:

$template->assign_vars(array(
    'CALENDAR_HTML' => $calendar_html,
   )
);

Quindi nel modello (aboutus_body.html nel tutorial), carica la variabile in questo modo:

{CALENDAR_HTML}

... al posto del contenuto HTML.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top