73 lines
3 KiB
TeX
73 lines
3 KiB
TeX
\section{Page}
|
|
|
|
Il s'agit de l'objet qui gère tous les composants de la page (en-têtes, scripts, contenu,pied-de-page) et qui gère l'autentification et qui unifie l'apparence des pages.
|
|
|
|
\lstset{language=PHP}
|
|
\begin{lstlisting}
|
|
class Page{
|
|
function logCheck($authorizedLevel=0);
|
|
function setTitle($title);
|
|
function startHeader();
|
|
function endHeader(){;
|
|
function startScript();
|
|
function endScript();
|
|
function startContent();
|
|
function endContent();
|
|
function toHTML();
|
|
}
|
|
\end{lstlisting}
|
|
|
|
\subsection{Le constructeur}
|
|
\par Le construteur de cette classe à plusieurs rôles:
|
|
\begin{itemize}
|
|
\item{ il initialise les variables}
|
|
\item{ il lance une session. En effet, chaque personne qui se connecte sur le site a une session différente.}
|
|
\item{ il vérifie si le login est correct. }
|
|
\end{itemize}
|
|
|
|
\subsection{Les vérifications des droits d'accès}
|
|
\par Il est nécessaire, sur chaque page, de vérifier l'identité de l'utilisateur, et
|
|
si nécessaire de le forcer a s'identifier correctement.
|
|
\par Pour ce faire, il faut appeller la méthode \verb+logCheck($authorizedlevel)+, où \verb+$authorizedlevel+ est le masque qui sera appliqué (fonction AND) bit-à-bit aux droits de l'utilisateur pour valider ou non l'accès à la page.
|
|
|
|
\par En général, pour utiliser \verb+logCheck+, il faut :
|
|
\lstset{language=PHP}
|
|
\begin{lstlisting}
|
|
$page=new Page(__FILE__);
|
|
$_SESSION["referer"]=basename(__FILE__);
|
|
$page->logCheck();
|
|
|
|
\end{lstlisting}
|
|
afin que l'utilisateur qui n'était pas loggué revienne automatiquement sur la page courrante après s'être identifié.
|
|
|
|
\subsection{L'affichage}
|
|
\par La fonction permettant l'affichage des pages est \verb+toHTML()+
|
|
celle-ci assemble le contenu dynamique avec les fichiers suivants, afin de créer
|
|
une page de D'Astre.Net:
|
|
\begin{itemize}
|
|
\item{ \verb+header.inc.php+ :celui le chemin d'acces au
|
|
fonction ,et insert les bibiotheque nécessaire pour le fontionnement
|
|
du site }
|
|
\item{ \verb+bodystart.inc.php+ :ce fichier comprend toutes les balises du début de script html, par exemple : <body><div>...}
|
|
\item{ \verb+footer.inc.php+ :Le pied de page.}
|
|
\item{ \verb+bodyend.inc.php+ : celui-ci contient du code PHP et HTML gérant la fermeture de l'objet page, ajoutant un pied de page et affichant la page.}
|
|
\end{itemize}
|
|
|
|
\subsection{Les buffers}
|
|
\par Pour que l'affichage des pages puisse se faire correctement d'un seul coup dans \verb+toHTML+, il est nécessaire de mettre en tampon toutes les données émises vers la sortie standard. Cela permet (entre autres) l'ajout d'en-têtes HTML à la page alors que le contenu de la page a déja été émis...
|
|
Les buffers sont utilisés a tous les niveaux : en-têtes, scripts JavaScript, contenu principal.
|
|
|
|
Le contenu du buffer devra {\em impérativement} se trouver entre l'appel des méthodes \verb+startXXX()+ et \verb+endXXX()+.
|
|
|
|
Par exemple, pour le contenu de la page :
|
|
\lstset{language=PHP}
|
|
\begin{lstlisting}
|
|
$page->startContent();
|
|
?>
|
|
|
|
voila le code PHP-HTML qui est mis en tampon
|
|
pour apparaitre a un endroit precis de la page
|
|
apres recomposition par toHTML.
|
|
<?php
|
|
$page->endContent();
|
|
\end{lstlisting}
|