AUTEUR : FRANCK OBERLECHNER, Ingénieur Système et Réseaux
SOMMAIRE
1. Préambule
4. Déclaration des Thèmes et styles
5. La gestion du "ne plus afficher par cookie"
6. La définition des fenêtres sans les afficher et les ordres d'ouverture
A. LES EXEMPLES
1) PREAMBULE
La classe ClassePopup.php permet de déclarer une fenetre "Popup" qui peut contenir du HTML, les fonctions apportées sont :
- Gestion de plusieurs fenêtres en cascades
- Gestion du "déjà vu" par cookie
2) INSTALLATION
Définir un répertoire "include_path" en modifiant le fichier de configuration de PHP %SYSTEMROOT%\PHP.INI sous IIS
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = "d:/wwwroot/rubappli/communs"Décompresser dans le répertoire "include_path" du serveur PHP le fichier classeMenu.php et le répertoire classeMenu (ce répertoire contient seulement la documentation et les exemples)
On obtient l'arborescence :
.../Répertoire_Include
classePath.php
classePopup.php
classePopup<dir>Editer le fichier _classePath.php et modifier la ligne DEFINE en terminant par un "/" obligatoirement, la constante INCLUDEPATH doit pointer sur le répertoire ou se situe le fichier classePopup.php et _classePath.php
// PARAMETRAGE :
DEFINE('INCLUDEPATH','/include/');ATTENTION pour que toutes les pages de votre site fonctionnent, définir de préférence un chemin absolu ( commencant par un / et donnant le chemin complet depuis la racine du site )
C'est tout ! la classe est maintenant exploitable directement
EN OPTION : DEFINITION D'UN THEME DE COULEUR IMPLICITE POUR TOUT LE SITE (VOIR LE CHAPITRE)
Créer un fichier _classeSkin.php dans le répertoire des inclusions
<?php
// 0: Rouge, 1:Bleu, 2:Gris, 4:Vert, 5:Orange
DEFINE('DEFAULT_SKIN', 5);?>
ce fichier est utilisé par les autres classes classeTableau, classeGrid tous les objets gérés par ces classes bénéficient du même thème de couleurs.
ATTENTION : L'INSTALLATION COMPLETE EST NECESSAIRE POUR TESTER LES EXEMPLES QUI SUIVENT
3) DECLARATION D'UNE FENETRE
Les objets "fenêtres DHTM" sont issus de la librairie javascript FERANT STUDIO
ATTENTION : Ne jamais déclarer un objet PopupWindows dans une section </blockquote> celà plante la page sous INTERNET EXPLORER
On ne peut déclarer plusieurs fenêtres par page en suivant le cheminement suivant :
Syntaxe :
<?php balise de début de code PHP,
include('classePopup.php');
appel au code de la classe $pw = New PopupWindows;; création d'un nouvel objet "fenetre" $pw->popup_skin(5); force le theme de couleurs $pw->popup_style(2); change le style de fenêtre (dans le même thème) $pw->popup_cookie($prefix_cookie,$domaine,$mode); gestion de la réapparition de la fenêtre. Sans cet ordre la fenêtre est réaffichée systématiquement $pw->popup_new( $array_param, $array_attrib );
Envoi de la fenetre à l'ecran
FONCTION popup_new()
La fonction attend 2 tableaux de paramètres au format HASH
1) Le 1er tableau détaille les commandes : $array_param()
- title : c'est le texte qui apparait dans la barre des titres
- content : c'est le contenu HTML de la fenêtre
- statut : c'est le contenu HTML de la barre d'état de la fenêtre
- id : c'est l'identifiant de la fenêtre, ce paramètre est indispensable pour associer un cookie à une fenêtre précise. Autrement il n'est pas requis
- noshow : vrai ou faux pour ne afficher ou non la fenêtre au chargement. (voir chapitre 6)
2) Le 1er tableau détaille les attribut "FERANT" envoyés à l'objet DHTML il doivent tenir compte obligatoirement de la case
exemples :
- Shadow
- TitleBarAlign
- Width
- Height
voir la notice FerantStudio
Pour simplifier la gestion des couleurs, la classe s'appuie sur le mécanisme général des autres classes :
- L'appel explicite à la fonction popup_skin()
- La présence d'une variable de session $_SESSION['DEFAULT_SKIN'] qui véhicule d'une page à l'autre le thème de couleur des pages
- La présence de la constante 'DEFAULT_SKIN' dans le fichier _classeSkin.php valable si elle existe pour toutes les pages du site
Les fenêtres popup ne présente d'intéret que si on peut ne plus les afficher. La gestion est confiée au COOKIES qui peuvent fonctionner selon 2 modes :
- L'affichage une seule fois de la fenêtre (mode=1)
- L'affichage répété tant que l'utilisateur n'a pas coché "ne plus afficher la fenêtre" (mode=2)
Déclaration par $pw->popup_cookie($prefix_cookie,$domaine,$mode);
le préfixe est ajouter à l'identifiant de la fenêtre pour créer un cookie de la forme : PREFIXE_ID
Les fenêtres popup peuvent ne pas s'afficher au chargement par 2 moyens :
- la définition par la close 'noshow' => true
- l'appel plus loin dans le code sur un lien HREF par exemple, avec l'ordre popup_open(), popup_close()
- La modification du contenu se fait par popup_modify()
A) LES EXEMPLES
sample01_1fenetre.php Ouverture d'une fenêtre avec attributs natifs sample02_1fenetre.php Ouverture d'une seule fenêtre centrée sample03_2_fenetres.php Ouverture de 2 fenêtres avec des identifiant ALPHA sample03_x_fenetres.php Ouverture de fenêtres en cascade sample04_1fenetre_cookie.php Controle du réaffichage par cookie sample05_1fenetre_cookie_noload.php idem avec non définition de la fenetre quand un cookie est présent sample06_1fenetre_cookie_unefois.php Affichage d'une fenêtre une seule fois sample07_style_skin.php Gestion des styles de fenêtres et des thèmes de couleurs sample08_noshow.php Déclencher l'affichage par événement client (Javascript) sample09_noshow_dynamic.php Déclencher l'affichage et la modification du contenu des fenêtres par événement client (Javascript)