AUTEUR : FRANCK OBERLECHNER, Ingénieur Système et Réseaux
SOMMAIRE
1. Préambule
4. Ajout d'une nouvelle grille
7. L'Affichage
8. LES EXEMPLES
1) PREAMBULE
La classe ClasseGrid.php permet de déclarer des grilles dynamiques qui sont génèrées à partir de l'exellente librairie JAVASCRIPT : Active Widget
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 classeGrid.php et le répertoire classeGrid (ce répertoire contient toutes les ressources nécessaires à la classe)
On obtient l'arborescence :
.../Répertoire_Include
_classePath.php
classeGrid.php
classeGrid<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 classeForms.php et _classePath.php
// PARAMETRAGE :
DEFINE('INCLUDEPATH','/rubappli/communs/');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
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 GRILLE
On ne peut déclarer plusieurs grilles par page en suivant le cheminement suivant :
Syntaxe :
<?php balise de début de code PHP,
include('classeGrid.php');
appel au code de la classe $grid1 = New Grid; création d'un nouvel objet "grille" : $grid1 $grid1->grd_nouveau(...);
Iinitialisation de l'objet grille par sa dimension et ses élements à afficher
$grid1->grd_couleursalternees(); La grille alternera des lignes de couleurs différentes $grid1->grd_tooltips(); Une info bulle est affichée sur la cellule avec le résumé de tous les champs LA DECLARATION DES BOUTONS
4) AJOUT D'UNE NOUVELLE GRILLE
La classe permet d'afficher en quelques lignes une grille complexe à partir de données en entrée situées dans une table JAVASCRIPT de la forme :
<script>
var myData1 = [["12","Service scolaire","20","","SCOLAIRE"],
...
["24","Service de l'Urbanisme","10","","URBA"]];
</script>Pour générer facilement une telle table à partir de données en provenance d'une base de données voir la classe classeJS pour un tableau complexe ( condition, mailto, href ) ou bien bdd_tableversarrayjs (classeBases) pour des données brut de requêtes SQL.
ATTENTION La première valeur doit être l'identifiant de l'enregistrement et il sera systématiquement masqué !
$grid1->grd_nouveau("myData1",$nelement1,"550px","308px","0px");
avec :
- le nom du tableau JS qui contient les éléments
- le nombre d'élément de ce tableau
- la largeur de la grille
- la hauteur de toutes les cellules [OPTIONNEL] par défaut = 18 pixels
5) L'ASPECT DE LA GRILLE
5.1) L'ALTERNANCE DE COULEUR
Pour rendre un tableau lisible, l'alternance de lignes de couleurs différentes est un très bon moyen
une seule ligne de code :
$grid1->grd_couleursalternees();
5.2) LES MODELES DE COULEURS (SKINS)
Pour rendre harmoniser la grille avec la palette du site utiliser les skins
une seule ligne de code :
$grid1->grd_skin();
5.3) LES BULLES D'AIDE (TOOLTIPS)
Pour faire apparaitre la totalité des champs sous la souris dans une bulle
une seule ligne de code :
$grid1->grd_tooltips();
6) LES BOUTONS DE CONTROLE
Les 3 grandes fonctions de mise à jour sont : Ajout, Modification, Effacement
on peut les implémenter facilement en 3 lignes.
$grid1->grd_ajouter('void_add.htm');
$grid1->grd_modifier('void_edit.php?ID=');
$grid1->grd_effacer('void_delete.php?ID=');mais on peut changer le libellé par défaut et la position :
$grid1->grd_ajouter($url, $libelle_du_bouton);
$grid1->grd_modifier($url, $libelle_du_bouton);
$grid1->grd_effacer($url, $libbtn, $adroite=true, $inactif=true,$libmessage="");
7) LA DECLARATION DES COLONNES ET L'AFFICHAGE
L'ordre $grid2->grd_ajoutcolonne($tableau) permet d'ajouter une colonne au tableau. Les paramètres sont rassemblés dans un HASH ( Tableau avec des clefs comme indices )
$tableau = array( 'title' => 'CONSTRUCTEUR', 'width' => '150px', 'align' => 'right' , 'help' => "C'EST LE NOM DU SERVICE"
'align' => 'left', 'right', 'center'
'sort' => 'string', 'Date', 'Number'
Pour faire apparaitre la totalité du tableau défini
une seule ligne de code :
$grid1->grd_afficher();
C'EST TOUT !
8) LES EXEMPLES
sample01_vue.php Vue simple avec boutons standard Ajout, Mofif, Effacer sample02_sansalternance.php Choisir l'alternance on non sample03_skins.php Choix d'une palette prédéfinie sample04_boutons.php Redéfinition des boutons standards sample05_boutons.php Redéfinition des boutons standards et 2 grilles simultanées sample06_hauteurcellules.php Modification de la hauteur des cellules sample07_grandetable.php Gestion de grand tableau de données