[phpBB 3.0.x] Créer sa page aux normes phpBB

Toutes les documentations phpBB seront ici.
Verrouillé
Avatar du membre
Dakin Quelia
Webmaster
Webmaster
Messages : 563
Enregistré le : ven. 27 nov. 2009 05:47
Localisation : Belgique
Contact :

[phpBB 3.0.x] Créer sa page aux normes phpBB

Message par Dakin Quelia »

» Créer sa page aux normes phpBB

A l'aide de cette documentation, vous allez pouvoir créer une page aux normes phpBB. Dans celle-ci, nous utilisons le moteur template de phpBB. Cela rend le travail plus propre et cela permet que le site et le forum soit bien lié ensemble.

» Introduction

Tout d'abord, il faut savoir que phpBB fournit des API et fonctions pour personnaliser votre forum et également pouvoir construire un site tout autour. Cet outil est donc assez puissant pour faire tout ce que l'on souhaite. Mais pour améliorer cela, il vous faudra avoir des connaissances en php. Ici, nous expliquons comment une page phpBB est structurée et comment en créer une.

Il est recommandé de lire le Wiki de phpBB.com qui contient pas mal d'informations intéressantes.

» Structure d'une page

Avant toute chose, il vous faut savoir qu'il y a une partie de code obligatoire si vous souhaitez utiliser les sessions phpBB sur votre site. Ce code est le suivant:

Code : Tout sélectionner

define('IN_PHPBB', true);
$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(); 
1) La première ligne définit si vous êtes dans phpBB ou non.
2) La seconde ligne détermine le chemin vers votre forum. Dans notre exemple, la page est placée dans le forum. Mais si la page est en dehors du forum vous rajouterez le nom du répertoire où se trouve votre forum. Par exemple, forum. Ce qui donnerait:

Code : Tout sélectionner

$phpbb_root_path = './forum/'; 
3) La troisième ligne concerne l'extension du fichier. Dans le cas présent, c'est php.
4) La quatrième ligne concerne l'inclusion du fichier de base, celui qui contient tous les appels vers les classes et fonctionnalités du forum phpBB.
5) La cinquième ligne lance les « sessions ».

» Création d'une page php

La création d'une page phpBB n'est guère compliquée. Il suffit de bien comprendre le fonctionnement des fichiers de base de phpBB.

Une page phpBB, en définitive, ressemble à ceci.

Code : Tout sélectionner

<?php
/**
*
* @author Daniel CHALSECHE (Dakin Quelia) dakinquelia@hotmail.com
* @package phpBB3
* @version $Id: functions_docs.php, v0.0.1 2010/01/02 12:10:45 Dakin Quelia Exp $
* @copyright (c) 2008 http://www.danielchalseche.be
* @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 : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

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

page_header($user->lang['MA_PAGE'], false);

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

page_footer();

?>
/!\ Aucune partie HTML ne doit être envoyé avant le php

Si vous voulez réserver la page uniquement aux membres inscrits et connectés, vous devrez ajouter ce code après « page_header() »:

Code : Tout sélectionner

if($user->data['is_registered'])
{
     // Code si l'utilisateur est connecté.
}
else
{
     // Code si l'utilisateur n'est pas connecté.   
} 
» Création du fichier template

Qu'est-ce qu'un fichier « template »?

C'est simple, c'est ce que l'on appelle un « modèle » en français. C'est donc une page qui contient du code HTML qui permettra d'afficher les éléments à l'écran.

Voici ce que donne un fichier template simple:

Code : Tout sélectionner

<!-- INCLUDE overall_header.html -->
	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>
				<div class="content">
					{L_VOTRE_TEXTE}
				</div>
		<span class="corners-bottom"><span></span></span></div>
	</div>
<!-- INCLUDE overall_footer.html -->
Avec quelques connaissances HTML et CSS, vous pourrez personnaliser votre page. Dans cet exemple,nous utilisons le système de langue de phpBB car cela permet d'avoir les accents sur les mots accentués sinon si vous affichez le texte en dur, vous aurez un problème d'accents. Pour les clés de langue, consulter la section suivante.

» Créer une page de langue

Soit vous créez une page de langue dédiée à cette page (recommandé) soit de modifier le fichier de langue « language/fr/common.php ». Ce dernier est déjà encodé au format « UTF8 sans bom » et au format « UNIX ». Dans le premier cas, il vous faudra faire une page ayant comme structure ceci:

Code : Tout sélectionner

<?php
/** 
*
* @package language
* @version $Id: votrepage.php, v1.25 2010-01-09 04:08:00 Dakin Quelia Exp $
* @copyright (c) 2010 Dakin Quelia
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
    exit;
}

if (empty($lang) || !is_array($lang))
{
    $lang = array();
}

$lang = array_merge($lang, array(
    'VOTRE_TEXTE'            => 'Ceci est un texte d’accueil',
));

?>
/!\ Il est primordial que cette page soit encodée au format « UTF8 sans bom » et « UNIX ».

Pour ce faire, si vous utilisez Notepad++, allez dans le menu « Format » et choisissez « Convertir au format UNIX » et « Encoder au format UTF8 (sans bom) ». Dés lors, votre texte affichera les accents et le format UNIX permettra les fins de lignes UNIX.

» Conclusion

En conclusion, à l'aide de cette documentation, vous allez pouvoir personnaliser votre forum ou votre site sans trop de difficulté. L'avantage de l'utilisation de cette méthode est que lorsque vous mettez à jour votre forum, le site l'est aussi.

» Erreurs rencontrées

Vous pouvez rencontrer diverses erreurs lorsque vous concevez vos pages phpBB. Selon l'erreur rencontrée, la solution sera différente (logique !). Voici quelques erreurs que vous pourriez rencontrer:
  • Page blanche: cette erreur peut résulter de plusieurs choses:
    • Soit un problème lié à la page de langue: un oubli de virgule, par exemple.
    • Soit à un souci de fermeture de balise.
  • Les messages d'erreurs concernant l'en-tête: il existe également plusieurs causes à ce type d'erreur:
    • La page qui contient toutes les clés de langue n'est pas encodée en « utf8 sans bom ». Cette erreur est assez récurrente.
    • Envoi de HTML avant le php.

Si vous estimez que la documentation n'est pas assez complète, vous pouvez me contacter par mp.

Verrouillé

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité