Pagina 2 di 2

Re: Simple portal

Inviato: 26/02/2012, 12:00
da Micogian
Dal momento che tu apri una pagina con questo codice:

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
*/

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

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
hai a disposizione tutte le funzioni di phpbb.

Re: Simple portal

Inviato: 26/02/2012, 12:06
da Ares
Questo è il codice per la custom page? Se si il contenuto va messo nelle righe seguenti al codice?

Re: Simple portal

Inviato: 26/02/2012, 12:41
da Tiger
La guida che devi seguire per crearti una qualsiasi pagina personalizzata e' QUESTA

Re: Simple portal

Inviato: 26/02/2012, 13:09
da Micogian
Ares ha scritto:Questo è il codice per la custom page? Se si il contenuto va messo nelle righe seguenti al codice?
Segui la Guida indicata da Tiger.
Comunque, il principio di una pagina PHPBBe quindi di una Custom Page è questo:
1) una pagina php ha il compito di connettersi al database, estrarre le informazioni e inserirle in un array di variabili che vengono passate al template.
2) Nella partte finale del file PHP viene indicato il nome del file template collegato alla pagina.
3) il template riceve i dati sotto forma di variabili e visualiza la pagina.

Per fare un esempio di come funzioni una Custom Page questo è un esempio semplice.
Ho visto che hai installato la Mod Topten Topics, allora puoi fare così:

Crea una file di nome "mod_page.php" che metterai nella root con il seguente contenuto:

Codice: Seleziona tutto

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

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

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

$user->setup('viewforum');

if ($user->data['user_id'] == ANONYMOUS)
{
    login_box('', $user->lang['LOGIN']);
}

page_header('pagina di prova');
// la riga seguente inserisce un file esterno, in questo caso una Mod
include($phpbb_root_path . 'mod_topten_topics.' . $phpEx);

// questo è il file template che viene associato alla pagina php
$template->set_filenames(array(
    'body' => 'mod_page_body.html')
);

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

?>
Le condizioni sono queste: la cartella dove hai il phpbb deve chiamersi "forum", altrimenti lo cambi all'interno della pagina, mentre la Mod Topten Topics dovrebbe avere il nome "mod_topten_topics.php"
La Mod è inclusa nella pagina di prova, non serve inserire l'intero codice.

Nel template crea una pagina di nome "mod_page_body.html" con il seguente contenuto:

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->
<!-- INCLUDE mod_topten_topics_body.html -->
<!-- INCLUDE overall_footer.html -->
sempre che la Mod Topten Topics utilizzi il file "mod_topten_topics_body.html"

Fatto questo prova a inserire l'url "tuo_dominio/mod_page.php

Re: Simple portal

Inviato: 26/02/2012, 13:52
da Ares
Cristallino, adesso mi metto all'opera provando cosa esce. Sei stato gentilissimo.

Edit: ci sono riuscito, facilissimo. Per aggiungere nuovi contenuti alla custom page è meglio se utilizzo questi codici?
<!-- INCLUDE paginadelsito.php -->
Cosi da richiamare facilmente alcune mod.. Non so come posso aggiungere nuovi contenuti?

Re: Simple portal

Inviato: 26/02/2012, 14:57
da Micogian
Devi operare su due frunti, da una parte il file php che ti serve per estrarre i dati dal database e dall'altro il file template per visualizzarli.
Se possibile è preferibile lavorare su file esterni e inserirli con un "includea".
Nel file php devi inserire la riga

Codice: Seleziona tutto

include($phpbb_root_path . 'nome_mod_php.' . $phpEx);
nemtre la stessa cosa si fa nel template: crea un file "nome_mod_body.html" che viene inserito nella pagina principale con

Codice: Seleziona tutto

<!-- INCLUDE nome_mod_body.html -->
Il risultato è che i file non vengono stravolti perchè al loro interno vengono inserite delle parti di codice attraverso gli "include".
Quello che puoi modificare è il "corpo" del template, mantenendo testata e piede puoi modificare il contenuto inserendo delle colonne che suddivideranno la pagina.
Si può fare con i <table>, io consiglio di usare i <div>

Re: Simple portal

Inviato: 28/12/2012, 21:25
da Tiger
Qusto portale non Prevede l'installazione da broswer in quanto e' da considerarsi una vera e propia "Custom Page"
Adesso veniamo al problema vero e propio.
Dall'indice del mio Forum,da loggato in sessione chiaramente, digidando "http:/localhost/portal.php mi visualizza si la "Custompage" (quindi da http://localhost/forum/ digito http://localhost/portal.php )ma mi slogga dalla sessione!
Ho chiesto anche nel forum di Stoker,lui mi ha consigliato di chiedere nel seo.com in quanto molto probabilmente c'e di mezzo la Seo.
Aprendo anche un topic nel seo.com,qualcuno di voi sa darmi una dritta?
Grazie .
In merito a questa discussione,finalmente dopo un po' di tempo ho trovato la soluzione:(da una discussione nel com)

Praticamente il pezzo di codice php che permette di continuare ed utilizzare la sessione di login,nonostante si esca dalla cartella principale di phpbb e' questo:

Codice: Seleziona tutto

if($user->data['is_registered'])
{
    //User is already logged in
}
else
{
    $username = request_var('username', '', true);
    $password = request_var('password', '', true);
    $autologin = (!empty($_POST['autologin'])) ? true : false;

    $result = $auth->login($username, $password, $autologin);

    if ($result['status'] == LOGIN_SUCCESS)
    {
        //User was successfully logged into phpBB
        $redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");

        // append/replace SID
        $redirect = reapply_sid($redirect);

        meta_refresh(0, $redirect);
        trigger_error('You have been successfully logged in');
    }
    else
    {
        //User's login failed
    }
} 
Quindi se vogliamo ad esempio crearci una pagina personalizzata ,e posizionarla al di fuori della cartella principale phpbb,e vogliamo inoltre aggiungerci un "form login-logoaut" e quindi vogliamo mantenere la sessione aperta per gli utenti registratii,dobbiamo fare in questa maniera:

Codice: Seleziona tutto

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

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

if($user->data['is_registered'])
{
    //User is already logged in
}
else
{
    $username = request_var('username', '', true);
    $password = request_var('password', '', true);
    $autologin = (!empty($_POST['autologin'])) ? true : false;

    $result = $auth->login($username, $password, $autologin);

    if ($result['status'] == LOGIN_SUCCESS)
    {
        //User was successfully logged into phpBB
        $redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");

        // append/replace SID
        $redirect = reapply_sid($redirect);

        meta_refresh(0, $redirect);
        trigger_error('You have been successfully logged in');
    }
    else
    {
        //User's login failed
    }
}
?>