Creazione pagine

Area dedicata al phpBB 3.0.X
Rispondi
Avatar utente
patrucco
Trusted
Trusted
Connesso: No
Messaggi: 58
Iscritto il: 09/04/2013, 1:46
Versione phpBB3: 3.0.11
Stile utilizzato: Prosilver
Versione SEO: NO
Mod / Estensioni installate: No
Link del Forum:
Contatta:

Creazione pagine

Messaggio da patrucco » 04/05/2013, 9:33

Come posso creare delle pagine "esterne" al forum in cui poter mantenere comunque Header e footer al cui interno inserire una normale pagina html? chiaramente da linkare poi tramite apposito menù inserito nell'header...
www.patrucco.com

Avatar utente
alex75
Amministratore
Amministratore
Connesso: Sì
Messaggi: 4565
Iscritto il: 23/08/2012, 23:45
Versione phpBB3: 3.2.8
Stile utilizzato: Prosilver
Versione SEO: SI
Mod / Estensioni installate: Si
Link del Forum: www.phpbb-store.it
Località: palermo

Re: Creazione pagine

Messaggio da alex75 » 04/05/2013, 10:01

Serve un minimo di conoscenza di php e di html.
Va creata una pagina php per connettersi al database con la sua relativa pagina html dove includere header e footer.
Dovrebbe già esserci una guida se non ricordo male...
Questa mod ad esempio usa questo principio:
http://phpbb-store.it/post4603.html
Regolamento Forum
Programmi utili
Le nostre guide
Scambio Banner
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<

Avatar utente
Lucky
Trusted
Trusted
Connesso: No
Messaggi: 159
Iscritto il: 15/10/2012, 20:33
Versione phpBB3: 3.2.2
Stile utilizzato: Prosilver
Versione SEO: SI
Mod / Estensioni installate: Si
Link del Forum: http://www.portalxl.eu
Località: Bari
Contatta:

Re: Creazione pagine

Messaggio da Lucky » 04/05/2013, 13:10

C'è un'ottima guida di Micogian...

Creazione di pagine personalizzate in phpBB

Queste note vogliono essere una piccola guida per capire come sia strutturato un Forum phpBB e come si possa sfruttare questa conoscenza per creare nuove pagine utilizzando la struttura e lo stile del nostro Forum.

Mi riferisco a un interessante articolo datato 21 ago 2008 di "pentapenguin" su phpbb.com "Add a New Custom Page to phpBB" (Aggiungi una pagina personalizzata in phpBB).

Tutto il meccanismo del Forum phpBB si basa sul Database mysql che contiene e memorizza tutti i dati che fanno funzionare il Forum e che vengono via via inseriti attraverso i Topics.
Considerando che il Database contiene tutte le informazioni che ci possono servire, possiamo utilizzarlo per estrarre e visualizzare dati in maniera diversa da quella prevista per default.

Detto questo vediamo cosa si deve fare per aggiungere una pagina personalizzata nel nostro Forum.

Il meccanismo che ci permette di operare nel Forum è rappresentato da una pagina PHP che attraverso le funzioni e lo stile utilizzato ha il compito di eseguire la connessione al Database, il controllo e le autorizzazioni relative all'utente e attraverso opportune query predisporre i dati necessari da visualizzare.
La visualizzazione avviene tramite un file HTML inserito nel "template" del proprio style.
Questo file HTML contiene degli "INCLUDE" cioè delle righe di codice che inseriscono nella pagina file già pronti e che quindi non hanno necessità di essere riscritti ogni volta.
Avremo così dei file che inseriscono la testata ("overall.header.html"), il corpo (ad esempio "viewforum_body.html"), il piede ("overall.footer.html") e altri file tutti destinati a inserire una particolare sezione nella pagina.

Credo che la cosa migliore per capire questo meccanismo sia quella di realizzare una pagina di prova, vediamo come fare.

- Creare il file "user_page.php"

Con un editor di testo (Blocco Note o Note Pad) copiamo il seguente codice in un file che chiameremo "user_page.php".
Il prefisso "user_" da usare nei nostri file potrebbe essere una buona soluzione per evitare di confondere le nostre pagine personalizzate da quelle di sistema.
Fate attenzione che non ci siano spazi o righe vuote prima del tag <?php e alla fine del file.

Copiare il seguente codice in un file che chiameremo "user_page.php"

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();

page_header('Title');

$template->set_filenames(array(
    'body' => 'user_page_body.html',
));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();

?>
Vediamo cosa significano queste righe: le prime righe del codice hanno la funzione di abilitare il PHPBB, di
includere il file "common.php" che contiene tutte le funzioni di controllo del Database e dell'utente collegato.

- page_header('Title'); = è il titolo della pagina, quello che compare nella barra di controllo dei browser quando si
apre una pagina.
- $template->set_filenames(array('body' => 'user_page_body.html',)); = indica quale file HTML è collegato a questa pagina.
- make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx")); = è la parte a fondo pagina che consente di scegliere la Sezione del Forum.
- page_footer() = richiama il piede della pagina.

A questo punto potrebbe non essere necessario, ma se vogliamo includere nella nuova pagina le variabili nella nostra lingua
dobbiamo inserire il file che le contiene nella riga "$user->setup();"

in questo modo:

Codice: Seleziona tutto

$user->setup('nome_del_file_lingua');
Sostituire il "nome_del_file_lingua" con il nome del file senza estensione che contiene la traduzione delle variabili in italiano.
Ad esempio, se le variabili utilizzate nella pagina sono inserite in "viewtopic.php" inserire:

Codice: Seleziona tutto

$user->setup('viewtopic');
Altra cosa che possiamo fare è inserire il Titolo della pagina modificando la riga:

Codice: Seleziona tutto

page_header('Titolo della pagina');
Se volete creare una pagina accessibile solo agli iscritti dovete sostituire la riga:

Codice: Seleziona tutto

$user->setup();
con il seguente codice:

Codice: Seleziona tutto

if ($user->data['user_id'] == ANONYMOUS)
{
    login_box('', $user->lang['LOGIN']);
}
Nota: se volete restringere l'accesso dei motori di ricerca alla vostra pagina inserite il seguente codice:

Codice: Seleziona tutto

if ($user->data['is_bot'])
{
   redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}
In questo caso i "bot" verranno indirizzati verso la Home.


Il file "user_page_body.html"

Ora andremo a creare il file HTML necessario per visualizzare il file PHP appena creato.

Copiate con un editor di testo il seguente codice in un file nominandolo "user_page_body.html", il nome che abbiamo prima inserito nella sezione "template" del file PHP.

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->

<h2>Titolo della pagina</h2>

<div class="panel">
   <div class="inner"><span class="corners-top"><span></span></span>

   <div class="content">
      <p>
         contenuto della pagina.
      </p>
   </div>

   <span class="corners-bottom"><span></span></span></div>
</div>

<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
Se volete potete sostitituire il titolo della pagina e il contenuto.
Ad esempio sostituite la stringa "contenuto della pagina" con questo testo:

Codice: Seleziona tutto

Per creare una nuova pagina in phpBB è necessario:
         <ul>
            <li>creare un file PHP che stabilisce la connessione con il Database e fornisce i controlli necesssari.</li>
            <li>inserire nei file "language" le eventuali variabili non previste per default.</li>
            <li>creare il file HTML nel template del vostro stile che provvede a visualizzare i dati richiesti.</li>
         </ul>

Abbiamo tutto quello che serve per fare una prova.

1) Copiamo il seguente codice in un file che chiameremo "user_page.php".

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();

page_header('Prova user_page');

$template->set_filenames(array(
    'body' => 'user_page_body.html',
));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();

?>
2) Copiamo il seguente codice in un file che chiameremo "user_page_body.html"

Codice: Seleziona tutto

    <!-- INCLUDE overall_header.html -->

    <h2>Prova pagina personalizzata</h2>

    <div class="panel">
       <div class="inner"><span class="corners-top"><span></span></span>

       <div class="content">
          <p>
             Per creare una nuova pagina in phpBB è necessario:
         <ul>
            <li>creare un file PHP che stabilisce la connessione con il Database e fornisce i controlli necesssari.</li>
            <li>inserire nei file "language" le eventuali variabili non previste per default.</li>
            <li>creare il file HTML nel template del vostro stile che provvede a visualizzare i dati richiesti.</li>
         </ul>
          </p>
       </div>

       <span class="corners-bottom"><span></span></span></div>
    </div>

    <!-- INCLUDE jumpbox.html -->
    <!-- INCLUDE overall_footer.html -->
Caricate via FTP il file PHP nella root del Forum, mentre il file HTML va inserito nella cartella "template" del vostro stile.

Aprite il vostro browser e inserite l'url "http://www.vostro_sito.it/forum/user_page.php"
Naturalmente cambiate il nome "forum" se diverso, oltre al nome del dominio.
Se non ci sono stati errori avrete una pagina simile nella testata e piede al vostro Forum, ma con il corpo contenente il testo da voi inserito.

Con questa pagina di base possiamo inserire nel "corpo" quello che vogliamo.

Se invece vogliamo che la pagina sia visibile solo dagli utenti di un determinato gruppo (es.: group_id=2) , inseriamo il codice che rimanda al login tutti gli altri:

Codice: Seleziona tutto

if ($user->data['group_id'] != '2')
    {
        login_box('', $user->lang['LOGIN']);
    }
Se vogliamo escludere alcuni gruppi:

Codice: Seleziona tutto

if ($user->data['group_id'] == '2'  || $user->data['group_id'] == '3'  || $user->data['group_id'] == '4' )
    {
        login_box('', $user->lang['LOGIN']);
    }

Avatar utente
legionario82
Registered User
Registered User
Connesso: No
Messaggi: 5
Iscritto il: 07/10/2015, 14:57
Versione phpBB3: 3.1.4
Stile utilizzato: Altro
Versione SEO: Campo non specificato
Mod / Estensioni installate: Si
Link del Forum: www.napoliunicafede.it

Re: Creazione pagine

Messaggio da legionario82 » 14/10/2015, 9:20

e se questa pagina avesse anche un codice css dove andrebbe inserito?

Avatar utente
alex75
Amministratore
Amministratore
Connesso: Sì
Messaggi: 4565
Iscritto il: 23/08/2012, 23:45
Versione phpBB3: 3.2.8
Stile utilizzato: Prosilver
Versione SEO: SI
Mod / Estensioni installate: Si
Link del Forum: www.phpbb-store.it
Località: palermo

Re: Creazione pagine

Messaggio da alex75 » 14/10/2015, 12:30

l'argomento si riferisce alla vecchia 3.0 comunque le modifiche css le aggiungerai al relativo file css di phpbb
Regolamento Forum
Programmi utili
Le nostre guide
Scambio Banner
Se l'assistenza prestata è stata di tuo gradimento potrai contribuire aiutandoci a sostenere le spese affrontate per tenere in vita questo forum >Cliccando sul seguente Link<

Rispondi