l3.cas-d-astre/doc/libpage.tex

74 lines
3 KiB
TeX
Raw Normal View History

2009-05-01 08:39:36 +00:00
\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 <20> 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<66>rente.}
\item{ il v<>rifie si le login est correct. }
\end{itemize}
\subsection{Les v<>rifications des droits d'acc<63>s}
\par Il est n<>cessaire, sur chaque page, de v<>rifier l'identit<69> 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<71> (fonction AND) bit-<2D>-bit aux droits de l'utilisateur pour valider ou non l'acc<63>s <20> la page.
\par En g<>n<EFBFBD>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'<27>tait pas loggu<67> revienne automatiquement sur la page courrante apr<70>s s'<27>tre identifi<66>.
\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<63>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<6E>es <20>mises vers la sortie standard. Cela permet (entre autres) l'ajout d'en-t<>tes HTML <20> la page alors que le contenu de la page a d<>ja <20>t<EFBFBD> <20>mis...
Les buffers sont utilis<69>s a tous les niveaux : en-t<>tes, scripts JavaScript, contenu principal.
Le contenu du buffer devra {\em imp<6D>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}