Introduction
Le site SQLPAC (SQL Pour Administrateurs et Concepteurs) expérimente et intègre depuis le début du mois de mai 2011 des forums pour francophones autour de son cœur de métier, à savoir les moteurs de bases de données transactionnels et décisionnels (Microsoft SQL Server, MySQL, PostgreSQL, Oracle, Sybase…), ainsi que d’autres forums annexes autour de la conception (Google, Androïd, langages de programmation…).
PHPBB Forums version 3 a été sélectionné pour la réalisation de ces forums : PHPBB Creating Communities .
L’intégration des forums PHPBB au sein de son propre site ainsi que l’encapsulation de quelques fonctionnalités comme Google Analytics sont loins d’être aussi complexes qu’il n’y paraît car au final il suffit de modifier deux ou trois fichiers. Malheureusement de bonnes connaissances du langage HTML, notamment l’imbrication des conteneurs DIV, et des connaissances sur les feuilles de styles CSS sont nécessaires.
Cet article est un aide mémoire et un tutoriel pour tous ceux qui souhaitent encapsuler un forum PHPBB dans la conception de leur site, en revanche il ne présente pas l’installation et le paramètrage de PHPBB, les articles sont assez nombreux et complets à ce propos.
Dans la suite de cet article, $WWW_ROOT
correspond au répertoire racine du
site Web. PHPBB est installé dans ce tutoriel dans le répertoire
$WWW_ROOT/forums
avec le package de la langue française.
Choix du style PHPBB
PHPBB propose plusieurs styles développés par les communautés. Le style s’adaptant le mieux à son site peut être trouvé et téléchargé grâce à la page de démo : Démo avec le style serenity.
L’arborescence contenue dans le fichier zip téléchargé est ensuite déployée
dans le répertoire des styles de PHPBB $WWW_ROOT/forums/styles
. Le panneau
d’administration de PHPBB détecte automatiquement le nouveau style déployé.
Attention ! Les styles disponibles n’ont pas toujours une version en langue française proposée. Les boutons images "Nouveau", "Répondre", etc. demeureront en langue anglaise si le style choisi n’a pas d’option en langue française.
Pour le style Serenity, style choisi dans ce tutoriel, un package est disponible en langue française : STSoftware Professional Forum Design - Download language packs.
Le fichier serenity_lang_fr.zip
est téléchargé et l’arborescence
serenity/imageset/fr
est déployée dans le répertoire des styles
$WWW_ROOT/forums/styles
. Le style serenity présente alors la structure
ci-dessous :
$WWW_ROOT/forums | |____________ /styles | |____ /serenity | |_____ /imageset | | | |_____ /en | | | |_____ /fr | |_____ /template | |_____ /theme
Les 3 seuls fichiers qui vont être modifiés pour réaliser l’encapsulation de
PHPBB forums dans le site sont dans les répertoires template
et theme
du style
choisi :
/template/overall_header.html
/template/overall_footer.html
/theme/stylesheet.css
Encapsulation de PHPBB Forum (overall_header.html, overall_footer.html, stylesheet.css)
Encapsulation des feuilles de style et scripts Javascript du site dans le fichier modèle overall_header.html
Pour mixer le style de son site avec le style serenity choisi ici, ouvrir le
fichier modèle ou "template" overall_header.html
situé dans le répertoire
template
($WWW_ROOT/forums/styles/serenity/template
) et ajouter les feuilles de
styles du site <link rel="<fichier>.css" />
dans l’entête entre les
balises <head>
et </head>
.
<html xmlns="http://www.w3.org/1999/xhtml"
dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}" xml:lang="{S_USER_LANG}">
<head>
...
<!-- SQLPAC Ajout des feuilles de style -->
<style type="text/css" media="screen">
<!--
@import url("/css/themes/grey/style-v-0.9.4.css");
@import url("/css/themes/grey/sqlpac-v-2.4.7.css");
-->
</style>
<!-- FIN SQLPAC -->
...
</head>
Aucune ligne du code original ne doit être supprimé lors de ces opérations.
Ajouter des commentaires <!-- -->
pour mieux repérer les modifications apportées.
Toujours dans le fichier modèle overall_header.html
, ajouter tous les
scripts Javascript nécessaires au site dans l’entête entre les balises
<head>
et </head>
, comme par exemple ici les scripts Javascript
afwk_header.js
et afwk_googleanalytics.js
qui respectivement construisent le
menu du site et implémentent le "tracker" Google Analytics.
<html xmlns="http://www.w3.org/1999/xhtml"
dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}" xml:lang="{S_USER_LANG}">
<head>
...
<!-- SQLPAC Ajout des scripts Javascript -->
...
<script type="text/javascript" src="/fwork/v3.1.2/js/afwk_header.js"></script>
<script type="text/javascript">var gaCode="xxxxxxxxxxx";</script>
<script type="text/javascript" src="/fwork/v3.1.2/js/afwk_googleanalytics.js"></script>
<!-- FIN SQLPAC -->
...
</head>
Encapsulation des conteneurs DIV
Il demeure la phase la plus complexe à réaliser, fusionner les conteneurs
DIV
du site avec les conteneurs DIV
de PHPBB. Voici les structures de chaque
site : PHPBB 3.0.8 en mode autonome d’une part et SQLPAC d’autre part.
PHPBB 3.0.8 | SQLPAC |
---|---|
/template/overall_header.html
/template/overall_footer.html
|
|
Si les 2 sites contiennent une balise div
avec l’id "wrapper
", des conflits
vont se présenter. Changer dans ce cas de figure la balise ayant l’identifiant
"wrapper
" dans son site.
La fusion des conteneurs DIV
va se résumer à modifier les fichiers modèles
overall_header.html
et overall_footer.html
pour y englober la structure HTML du
site SQLPAC. Le code HTML de l’entête et du menu du site est malheureusement
statiquement copié dans le fichier /template/overall_header.html
, aussi il est
préférable pour la maintenance de ne pas avoir un menu trop dynamique dans le
temps.
Versions PHPBB 3.0.8 et SQLPAC fusionnées |
---|
/template/overall_header.html
/template/overall_footer.html
|
Au cours de la fusion, pour visualiser et tester effectivement les modifications, le cache PHPBB doit être vidé, pour cela : Panneau de contrôle d’administration de PHPBB (PCA) Général Vider le cache.
Deux outils précieux permettent d’inspecter et valider la bonne imbrication des conteneurs DIV :
- Les outils de développement de Google Chrome pour inspecter l’arbre DOM d’un document : "OutilsOutils de développement" ou Ctrl+Maj+I.
- Les outils de validation HTML disponibles avec Chrome ou Firefox, ou encore l’outil de validation du W3C : W3C Markup Validation Service
Les dernières retouches dans la feuille de style stylesheet.css
De légères retouches sont peut être alors nécessaires par rapport au style
(body, table
…), adaptations à apporter dans le fichier /theme/stylesheet.css
et avec des cartouches de commentaires pour retrouver rapidement les
modifications lors de futures versions du style ou de PHPBB.
Conclusion
La fusion de PHPBB dans son site est assez aisée, toutefois, elle présente trois inconvénients majeurs :
- De très bonnes connaissance en HTML et CSS sont nécessaires.
- Lors d’un changement de version de PHPBB, il ne faut pas oublier de modifier les fichiers
overall_header.html
,overall_footer.html
etstylesheet.css
de la nouvelle version, sous réserve d’une modification non profonde de ces fichiers modèles. - Le code HTML statique copié (menu, entête, etc.) dans le fichier modèle
overall_header.html
doit être modifié si le site qui encapsule PHPBB est modifié au niveau de cette portion.