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

[WIKI] Creare una pagina personalizzata

Programmare su phpBB, creazione di pagine personalizzate ed utilizzo delle API di phpBB.
darklay
Utente
Utente
Messaggi: 28
Iscritto il: 31/10/2010, 3:19
Versione: 3.0.7-PL1
Server: UNIX/Linux

Re: Creare una pagina personalizzata

Messaggio da darklay » 02/11/2010, 15:31

grazie mille :)

figutrato una piccola svista può capitare :P , mi devo studiare meglio il php così me ne sarei accorto dell'errore

grazie infintiamente ancora

FrostyBear
Utente
Utente
Messaggi: 30
Iscritto il: 13/11/2010, 23:39
Versione: 3.0.12
Server: UNIX/Linux

Re: Creare una pagina personalizzata

Messaggio da FrostyBear » 13/11/2010, 23:50

Salve a tutti.
Sono alle prime armi con phpbb e volevo chiedere un'informazione circa la pagina personalizzata.
Ho costruito una pagina con le istruzioni trovate nel primo post di questo thread e funziona.
Volevo però fare in modo che fosse visualizzata nello stile corrente. Mi spiego:
se si carica la pagina php personalizzata, questa viene visualizzata sempre nello stile impostato di default.
Io vorrei che, se l'utente cambia stile, la vedesse nello stile scelto. Naturalmente dovrei provvedere a mettere la pagina html richiamata da quella php in ogni cartella template dei vari stili, ma esiste un codice da aggiungere alla pagina php per far sì che la cosa sia fattibile?
Grazie a tutti in anticipo.

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: Creare una pagina personalizzata

Messaggio da Micogian » 14/11/2010, 2:27

I file php hanno il compito di "interrogare" il Database, creare un array sotto forma di variabili che vengono passate al Template, cioè al file html.
Pertanto i file php sono uguali per tutti (salvo l'installazioni di Mod) mentre per ogni stile va creato il relativo file html.
Il consiglio che posso darti è di "evitare" l'utilizzo di più stili, non fa altro che aumentare il lavoro. Ogni modifica dovresti farla per tutti gli stili che hai.

FrostyBear
Utente
Utente
Messaggi: 30
Iscritto il: 13/11/2010, 23:39
Versione: 3.0.12
Server: UNIX/Linux

Re: Creare una pagina personalizzata

Messaggio da FrostyBear » 14/11/2010, 15:56

Ti ringrazio per la risposta, ma temo di non aver capito.
Si può fare o no quello che proponevo? Cioè, si può modificare o no il codice per far sì che quando un utente è in uno stile e carica la pagina personalizzata rimanga in quello stile?
Lo so che è un lavoro in più poichè devo copiare i file nei vari stili, ma è possibile farlo?
Grazie ancora per la pazienza.

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: Creare una pagina personalizzata

Messaggio da Micogian » 14/11/2010, 16:38

Se non fosse possibile lo avrei detto, ho detto che è una soluzione sconsigliata e soprattutto per chi è all'inizio.

Ho anche detto che i file php rimangono gli stessi, nessuna modifica al php, vanno modificati i file html per tutti gli stili utilizzati, ogni stile avrà il suo template.

FrostyBear
Utente
Utente
Messaggi: 30
Iscritto il: 13/11/2010, 23:39
Versione: 3.0.12
Server: UNIX/Linux

Re: Creare una pagina personalizzata

Messaggio da FrostyBear » 14/11/2010, 22:11

Scusami, abbi pazienza, non so se mi sono spiegato bene.
Tu dici che il php NON va modificato però non è il php che dice quale html caricare?
Nel codice c'è ad es:

Codice: Seleziona tutto

$template->set_filenames(array(
    'body' => 'mio-file.html',
il cui path, nel mio caso, è styles/stile-di-default/template/mio-file.html. Evidentemente il php sa qual è lo stile di default e va a cercare il file da caricare.

Se un utente cambia stile (ho una mod che lo consente) e vede il forum in stile-utente, quando carica, tramite link presente in un post, la pagina php, quest'ultima lo indirizza sempre a styles/stile-di-default/template/mio-file.html invece che a styles/stile-utente/template/mio-file.html e ciò anche se in styles/stile-utente/template/ ESISTE una copia di mio-file.html.

Non è il php che dovrebbe dire di caricare "mio-file.html" che sta in stile-utente e NON "mio-file.html" che sta in stile-di-default?
Non esiste qualcosa da mettere nel codice tipo (sto inventando)
if user style = 1 then 'body' => '\stile1\template\mio-file.html'
if user style = 2 then 'body' => '\stile2\template\mio-file.html' ?

Ma soprattutto, ripeto, non è sul php che si dovrebbe intervenire? Cosa c'entra il cambiare l'html? In ogni stile ce n'è una copia tutta sua, non basta?

Spero di essermi spiegato e di averti fatto capire quali sono i miei dubbi.
Ti ringrazio ancora e scusami se, a causa della mia inesperienza non riesco ad afferrare cosa intendevi dirmi.

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: Creare una pagina personalizzata

Messaggio da Micogian » 14/11/2010, 23:32

Infatti, il php richiama il template ma nel codice php non viene indicato lo style, viene indicato solo il nome del file html.
Il percorso, quindi lo Style utilizzato è il sistema a individuarlo ed è lo stile che usa l'utente.

Codice: Seleziona tutto

$template->set_filenames(array(
    'body' => 'mio-file.html',
Come vedi non c'è traccia del percorso del file 'mio_file.html',
Normalmente l'installazione del Forum prevede due stili di default, prosilver e subsilver2, oltre a un terzo eventuale scelto. Se cambi stile otterrai gli stessi risultati ma visualizzati in maniera diversa.

Ovviamente, se crei una Custom Page, questa apre un file html: 'mio_file.html', quindi ci deve essere un file mio_file.html in tutti gli stili utilizzati.
Il motivo per il quale si sconsiglia di usare più stili deriva proprio dal fatto che una modifica devi farla su tutti i file degli stili installati.
Una o due modifiche si possono anche fare, Quando le modifiche diventano numerose le cose si complicano.

FrostyBear
Utente
Utente
Messaggi: 30
Iscritto il: 13/11/2010, 23:39
Versione: 3.0.12
Server: UNIX/Linux

Re: Creare una pagina personalizzata

Messaggio da FrostyBear » 15/11/2010, 18:10

Grazie come sempre.
Tu dici
"...Il percorso, quindi lo Style utilizzato è il sistema a individuarlo ed è lo stile che usa l'utente."

E' proprio qui che NON ci siamo.
Premesso che come dicevo, e tu confermi, ci deve essere (e c'è) "mio-file.html" in OGNI template presente, il problema è che, se l'utente sta guardando il forum in "stile-scelto-x", e seleziona la pagina personalizzata php, gli si apre comunque nello stile di default, NON in quello in cui stava guardando prima.
Sembra dunque che non sia vero che il sistema sia capace di individuare lo stile usato dall'utente, ma solo quello impostato di default.
Per questo mi chiedevo se ci fosse un codice da aggiungere al php: proprio perchè il sistema pare non accorgersi dello stile che l'utente sta utilizzando.
Detto ciò, consapevole comunque del lavoro che occorrerebbe fare, mi (e ti) chiedevo se esiste una soluzione all'inconveniente (se no pazienza, l'utente che ha cambiato stile verrà dirottato a quello di default e, se proprio vuole, cambierà stile di nuovo).
Ti ringrazio per l'attenzione e la pazienza.

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: Creare una pagina personalizzata

Messaggio da Micogian » 15/11/2010, 19:20

FrostyBear ha scritto: Sembra dunque che non sia vero che il sistema sia capace di individuare lo stile usato dall'utente, ma solo quello impostato di default.
Per questo mi chiedevo se ci fosse un codice da aggiungere al php: proprio perchè il sistema pare non accorgersi dello stile che l'utente sta utilizzando.
Mai riscontrata una cosa del genere.
La prima cosa che fa una pagina phpbb è connettersi al database e ricavare i dati necessari, compreso l'user_style.
In ogni pagina è disponibile una variabile di nome $user->data.

Se nella roor del Forum crei un file php con questo contenuto

Codice: Seleziona tutto

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

$user->setup('viewtopic');
echo "Variabili ricavabili dall'array '\$user->data'<br><br>";
$n = '1' ;
foreach($user->data As $key => $valore){
echo $n . " - " . $key . " = " . $valore . "<br>";
++$n ;
}
?>
avrai la Lista delle variabili disponibili in $user->data
Provare per credere.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Creare una pagina personalizzata

Messaggio da Carlo » 15/11/2010, 22:29

Bingo, se lo stile utilizzato deriva per esempio dal prosilver, basta mettere il template nella cartella di tale stile, poi effettuare una modifica al file style.cfg, inserendo una stringa che indica a phpBB che se non trova un template in quello stile, lo va a cercare in prosilver. Proprio come fa prosilver Special Edition.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Bloccato

Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 61 ospiti