phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Condizione nel template

Supporto MODs generale.
Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Condizione nel template

Messaggio da Lady R » 18/11/2011, 11:57

Avrei bisogno di inserire un IF dentro ad overall_footer.html in modo che, leggendo da un file di configurazione contenente una direttiva (jqr_hidePost = 1) scriva alcune righe di codice nel template.

Come faccio a fare ciò?
Grazie.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Condizione nel template

Messaggio da Micogian » 18/11/2011, 13:19

Secondo me dovresti leggere il file di configurazione nel php, poi creare una variabile che riporti quello che vuoi venga inserito nel template, in questo modo:

Codice: Seleziona tutto

$template->assign_var(
'NOME_VARIABILE'     =>  "quello che va nel template",
);
.
Poi, nel file overall_footer.html ci metti la variabile {NOME_VARIABILE} che è costituita dal codice che ti interessa inserire.
Tutte le variabili phpbb devono essere in Maiuscolo.

Per lo meno penso sia questa la strada.

L'alternativa è creare una variabile con valore "true/false" in base alla condizione ricavata sempre dal PHP.
Nel template poi puoi usare

Codice: Seleziona tutto

<!-- IF NOME_VARIABILE -->eventuale codice da inserire se NOME_VARIABILE è "true"<!-- ENDIF -->

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Condizione nel template

Messaggio da Lady R » 18/11/2011, 13:25

Scusa non ho capito molto..
Potresti essere un po più chiaro?

Grazie.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Condizione nel template

Messaggio da Micogian » 18/11/2011, 13:38

Phpbb funziona così: il file php interroga il database, estrae dei dati attraverso query o functions, crea le variabili o un array con i valori estratti e li passa al template associato, un file html, che ha il compito di visualizzare questi dati.
Pertanto, se devi fare una interrogazione, la fai nel php, in index.php o in un file functions (functions.php ad esempio è presente sempre nelle pagine pbpbb).
Questo ti consente di avere una o più variabili che il template interpreta e visualizza.
Ripeto che le variabili devono essere sempre in maiuscolo.

Per spiegarmi meglio, il file index.php è associato a index_body.html. All'interno di index_body.html ci sono degli <INCLIDE> che aggiungono overall_header.html e overall_footer.html, oltre a forumlist_body.html che visualizza la Lista dei Forum.
Se dai un'occhiata alla Guida "Come Creare una Custom Page" potrebbe essere utile per capire come funziona phpbb.

EDIT
ovviamente sono stato sulle generali perchè non so cosa intendi per "condizione if"
La condizione IF la fai nel PHP, si crea una variabile e le funzionr che creano le variabili sono

Codice: Seleziona tutto

$template->assign_var('NOME_VAR', valore);
oppure
$template->assign_vars(array(
'NOME_VAR1'   =>  $valore1,
'NOME_VAR2'   =>  $valore2,
));
oppure un array:
$template->assign_block_vars('nome_array',array(
'NOME_VAR1'   =>  $valore1,
'NOME_VAR2'   =>  $valore2,
));
Nell'ultimo caso le variabili nel template vanno scritte complete del nome dell'array, ad esempio {nome_array.NOME_VAR1}

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Condizione nel template

Messaggio da Lady R » 18/11/2011, 13:44

Si credo di aver capito, ma quindi un <!-- IF JQR_HIDEPOST -->
verrebbe tradotto in:

Codice: Seleziona tutto

include ("mio/configuration.php");
if(jqr_hidepost == 1) {
E: <!-- ENDIF --> in:

Codice: Seleziona tutto

}
Giusto?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Condizione nel template

Messaggio da Micogian » 18/11/2011, 13:56

Lady R ha scritto:Si credo di aver capito, ma quindi un <!-- IF JQR_HIDEPOST -->
verrebbe tradotto in:

Codice: Seleziona tutto

include ("mio/configuration.php");
if(jqr_hidepost == 1) {
E: <!-- ENDIF --> in:

Codice: Seleziona tutto

}
Giusto?
La condizione <!-- IF JQR_HIDEPOST --> indica la condizione di JQR_HIDEPOST che può essere "true" o "false", questo dipende dalla condizione originale in php.
Pertanto, se la condizione è "true" elabora quello che viene dopo e che termina con <!-- INDIF -->,
altrimenti non elabora nulla, a meno che non usi un <!-- ELSE -->

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Condizione nel template

Messaggio da Lady R » 18/11/2011, 14:06

cioè devo definire nel php una variabile

Codice: Seleziona tutto

include ("mio/configuration.php");
JQR_HIDEPOST = jqr_hidepost;
E in configuration inserisco jqr_hidepost = "false" o "true",

giusto?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Condizione nel template

Messaggio da Micogian » 18/11/2011, 16:29

No, probabilmente non mi sono spiegato.
Io non so qual'è la condizione iniziale, ho fatto l'ipotesi che sia "true" o "false" ma potrebbe essere qualsiasi cosa, anche una stringa, un numero, un pezzo di codice, ecc.
Per creare una variabile che sia poi interpretata dal template bisogna usare la funzione $template->assign_var()
Questa JQR_HIDEPOST = jqr_hidepost; non sarebbe interpretata dal template.
Detto questo il problema sta nella condizione e nel valore che verrà assegnato alla variabile 'JQR_HIDEPOST'
Ammesso che il valore sia "true" o "false" il template si comporterà di conseguenza, sulla base della condizione

Codice: Seleziona tutto

<!-- IF JQR_HIDEPOST -->esegui il codice 1<!-- ELSE -->esegui il codice 2<!-- ENDIF -->
Cioè: se {JQR_HIDEPOST} è true esegui il codice 1 altrimenti esegui il codice 2 perchè IF JQR_HIDEPOST è sinonimo di (IF JQR_HIDEPOST == true)

In pratica, se l'include configuration fornisce la variabile $jqr_hidepost che può essere true o false perchè venga utilizzato dal template devi fare:

Codice: Seleziona tutto

$template->assign_var('JQR_HIDEPOST', $jqr_hidepost);
A questo punto {JQR_HIDEPOST} sarà il valore che intepreterà il template, cioè il valore di $jqr_hidepost

Avatar utente
Lady R
phpBB Expert
phpBB Expert
Messaggi: 900
Iscritto il: 08/11/2011, 13:43
Sesso: Femmina
Versione: 3.0.9
Server: UNIX/Linux
PHP: 5.3.8
Database: MySQLi
Contatta:

Re: Condizione nel template

Messaggio da Lady R » 18/11/2011, 23:19

Perché JQR_HIDEPOST = jqr_hidepost; non va bene?
Assegno a JQR_HIDEPOST un valor (true o false) e dopodiché faccio l'IF usando <!-- IF JQR_HIDEPOST -->

Lui guarda cosa c'è dentro a JQR_HIDEPOST e si comporta di conseguenza, sbaglio?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Condizione nel template

Messaggio da Micogian » 18/11/2011, 23:30

Prova.
Per me le variabili phpbb vanno create con$template->assign_var() oppure $template->assign_vars(array()
http://wiki.phpbb.com/Using_the_phpBB3. ... -variables
oppure (anche se è phpbb2, ma è la stessa cosa)
http://www.phpbb.com/kb/article/phpbb2- ... -tutorial/

Apri un qualsiasi file php o un file functions e cerca la funzione $template......

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 44 ospiti