Simple portal

Supporto MODs generale.
Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3702
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: Simple portal

Messaggio da Micogian » 26/02/2012, 13:09

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

Avatar utente
Ares
Utente
Utente
Messaggi: 310
Iscritto il: 26/09/2011, 9:07
Sesso: Maschio
Versione: 3.1.7
Server: UNIX/Linux
PHP: 5.4
Database: MySQL 5.1.71-community-log
Località: Sicilia
Contatta:

Re: Simple portal

Messaggio da Ares » 26/02/2012, 13:52

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?

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3702
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: Simple portal

Messaggio da Micogian » 26/02/2012, 14:57

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>

Avatar utente
Tiger
phpBB Expert
phpBB Expert
Messaggi: 1998
Iscritto il: 24/05/2011, 12:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.3.28
Database: MySQL(i) 5.5.35-cll
Località: Roma
Contatta:

Re: Simple portal

Messaggio da Tiger » 28/12/2012, 21:25

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
    }
}
?>

Rispondi

Torna a “Supporto MODs”

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti