|
Ouverture
d'un fichier Template
|
handle
Open(string
filename[,CACHED,int
timelimit])
|
Ancien
nom : int Open (string filename);
Description:
Ouvre le fichier filename et parse ce fichier.
- Retourne:
- -1
si une erreur c'est produite.
- un
handle en cas de succès. Cet handle identifie
le fichier ouvert pour les fonctions addSession et SetVar.
( Rq: On peut faire un rapprochement avec la fonction
fopen qui retourne un identificateur de fichier ouvert.)
- Paramètres:
- filename:
chemin et nom du fichier à ouvrir et parser.
- Version
1.3 Cache Edition uniquement :
- CACHED:
constante indiquant que l'on veut mettre en cache
le résultat du fichier.
- timelimit:
durée ( en secondes ) de validité
du cache.
- En
cas de problèmes d'accès au fichier ou d'erreur
de syntaxe dans ce fichier, le parse est arrêté
et l'erreur rencontrée est affichée.
|
ex:
Utilisation
simple :
$handle
= $vtp->Open("nomfichier.vtp");
Utilisation
Cache:
$handle
= $vtp->Open("chemin/nomfichier",CACHED,3600);
if ( !$vtp->isCached($handle)
){
//code
à executer pour générer le fichier
}
$vtp->Display($handle);
// Affiche le résultat
|
|
Valorise
une variable d'une session d'une zone
|
int
setVar(handle
id,string
zone_var,mixed
val)
|
Ancienne
fonction : int AddVal(string zone_var, mixed val)
Valorise la variable 'var', de la session de la zone 'zone',
avec 'val'.
Attention
vous devez ouvrir une session pour pouvoir valoriser une variable.
zone_var
s'écrit de cette façon : "nom_de_la_zone.nom_de_la_variable"
- Retourne
1 si tout se passe bien.
- Retourne
-1 en cas de problème.L'execution du script continue
mais un
message
d'erreur est affiché.
Cas
particulier:
Si vous
avez créé un fichier template avec uniquement
des variables, vous pouvez directement (sans préciser
de zone) valoriser ces variables avec setVar sans passer par
les fonctions addSession,closeSession ou newSession.
$vtp->setvar($handle,"nom_de_la_variable",$valeur); |
ex:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp");
// Dans le fichier test.vtp, il y a
une zone "mazone"
$vtp->addSession($handle,"mazone");
// La zone 'mazone' contient une variable var
$vtp->setVar($handle,"mazone.var",$i);
$vtp->closeSession($handle,"mazone");
$vtp->Display();
?>
|
|
Remplace
une variable d'une session d'une zone par le contenu d'un
fichier
|
int
setVarF(handle
id,string
zone_var,string
file_name)
|
Ancienne
fonction : int AddValF(string zone_var, string file_name [, int
handle])
Valorise la variable 'var', de la session de la zone 'zone', avec
'val' par le contenu du fichier file_name.
Attention
vous devez ouvrir une session pour pouvoir valoriser une variable.
zone_var
s'écrit de cette façon : "nom_de_la_zone.nom_de_la_variable"
- Retourne
1 si tout se passe bien.
- Retourne
-1 en cas de problème.L'execution du script continue mais
un
message
d'erreur est affiché.
Cas particulier:
Si vous avez
créé un fichier template avec uniquement des variables,
vous pouvez directement (sans préciser de zone) valoriser ces
variables avec setVar sans passer par les fonctions addSession,closeSession
ou newSession. |
ex:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp");
// Dans le fichier test.vtp, il y a une zone
"mazone"
$vtp->addSession($handle,"mazone");
// La zone 'mazone' contient une variable header
$vtp->setVarF($handle,"mazone.header","header.htm");
$vtp->closeSession($handle,"mazone");
$vtp->Display();
?>
|
|
Valorise
une variable dans l'ensemble d'un fichier, ou d'une zone (et
sous zone)
|
int
setGlobalVar(handle
arg,string
zone_var,mixed
val)
|
Valorise la variable 'var', de la zone 'zone' et ses sous
zones, avec 'val'.
zone_var
s'écrit de cette façon : "nom_de_la_zone.nom_de_la_variable"
- Retourne
1 si tout se passe bien.
- Retourne
-1 en cas de problème.L'execution du script continue
mais un
message
d'erreur est affiché.
Arg désigne
le handle du fichier sur lequel vous souhaitez utiliser cette
fonction. Vous pouvez également valoriser l'ensemble
des fichiers vtp en utilisant la constante ALL.
|
ex
d'utilisation:
$vtp->setVar($handle,"var",$i);
//
remplace toutes les variables nommées "var"
dans le fichier indiqué par le handle.
Ce fichier doit avoir été préalablement
ouvert.
$vtp->setVar(ALL,"var",$i);
//
remplace toutes les variables nommées "var"
dans tous les fichiers. Il n'est pas nécessaire que
les fichiers soient préalablement ouverts.
$vtp->setVar($handle,"zone.var",$i);
//
remplace toutes les variables nommées "var"
dans la zone "zone" et ses sous zone. Le fichier
indiqué par le handle doit avoir été
préalablement ouvert.
|
|
|
int
addSession(handle
id,string
nomzone[,CACHED,int
timelimit,
int numsession])
|
Crée
une session sur la zone nomzone.
- Retourne
1 si tout se passe bien.
- Version
1.3 Cache Edition uniquement:
- CACHED
: indique que l'on veut mettre dans le cache la session
demandée.
- timelimit
(int): durée (en secondes) de la validité
du cache.
- numsession:
cette variable permet de mettre en cache une certaine
session d'un zone.
(par exemple pour une zone "test" générée
5 fois ( => 5 sessions): on peut mettre en cache
la session 2 et 5).
- Retourne
0 si le cache est toujours valable.
- Retourne
-1 en cas de problème.L'execution du script continue
mais un
message d'erreur est affiché.
Remarque:
Pour afficher une zone sans variable, il suffit d'ouvrir et
de fermer une session.
Cas
particulier:
Si vous avez créé un fichier template avec uniquement
des variables, vous pouvez directement valoriser ces variables
avec setVar sans passer par les fonctions addSession,closeSession
ou newSession.
|
ex:
Version
normale:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp");
// Dans le fichier test.vtp, il
y a une zone "mazone"
for($i=1;$i<5;$i++){
$vtp->addSession($handle,"mazone");
// La zone 'mazone' contient une variable
var
$vtp->setVar($handle,"mazone.var",$i);
$vtp->closeSession($handle,"mazone");
}
$vtp->Display();
?>
Version
cache:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp");
// Dans le fichier test.vtp, il
y a une zone "mazone"
for($i=1;$i<5;$i++){
$test =
1;
if ($i==2)
$test = $vtp->addSession(
$handle,"mazone",CACHED,3600);
else $vtp->addSession($handle,"mazone");
if ($test){
//
La zone 'mazone' contient une variable var
$vtp->setVar($handle,"mazone.var",$i);
}
$vtp->closeSession($handle,"mazone");
}
$vtp->Display();
?>
|
|
|
int
closeSession(handle
id,string nomdelazone)
|
Ferme
la session nomzone et génère le code..
- Retourne
1 si tout se passe bien.
- Retourne
-1 en cas de problème.L'execution du script continue
mais un
message
d'erreur est affiché.
Cas
particulier:
Si vous
avez créé un fichier template avec uniquement
des variables, vous pouvez directement valoriser ces variables
avec AddVal et AddValF sans passer par les fonctions AddSession,CloseSession
ou NewSession. |
Attention
: Lors de la fermeture d'une zone, les sous zones de celle-ci
sont automatiquement réinitialisée à
Null.
ex:
1.
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp");
// Dans le fichier test.vtp, il y
a une zone "mazone"
for($i=1;$i<5;$i++){
$vtp->addSession($handle,"mazone");
// La zone 'mazone' contient une variable var
$vtp->setVar($handle,"mazone.var",$i);
$vtp->closeSession($handle,"mazone");
}
$vtp->Display();
?>
2.
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle
= $vtp->Open("test2.vtp");
// Dans le fichier test2.vtp, il y
a une zone "mazone" ne contenant que du HTML
$vtp->addSession($handle,"mazone");
$vtp->closeSession($handle,"mazone");
$vtp->Display();
?>
|
|
Création
automatique d'une session
|
int
newSession(handle id,
string nomzone)
|
Ferme
automatiquement la session précédent de 'nomzone'
( si elle existe ) ainsi que celle de ses sous-zones, puis
ouvre
une nouvelle session sur 'nomzone'.
- Retourne
1 si tout se passe bien.
- Version
avec Cache:
- CACHED
: indique que l'on veut mettre dans le cache la session
demandée.
- timelimit
(int): durée (en secondes) de la validité
du cache.
- numsession:
cette variable permet de mettre en cache une certaine
session d'un zone.
(par exemple pour une zone "test" générée
5 fois ( => 5 sessions): on peut mettre en cache
la session 2 et 5).
- Retourne
0 si le cache est toujours valable.
- Retourne
-1 en cas de problème.L'execution du script continue
mais un
message
d'erreur est affiché.
Attention:
Cette
fonction réduit (un peu) les performances de la classe.
Pour une execution optimale, utilisez addSession et closeSession
Remarque:
Pour afficher une zone sans variable, il suffit d'utiliser
la fonction NewSession
Cas
particulier:
Si
vous avez créé un fichier template avec uniquement
des variables, vous pouvez directement valoriser ces variables
avec setVar sans passer par les fonctions addSession,closeSession
ou newSession.
|
Attention
: Lors de la fermeture d'une zone, les sous zones de celle-ci
sont automatiquement réinitialisée à
Null.
ex:
1.
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp");
// Dans le fichier test.vtp, il y
a une zone "mazone"
for($i=1;$i<5;$i++){
$vtp->newSession($handle,"mazone");
//
La zone 'mazone' contient une variable var
$vtp->setVar($handle,"mazone.var",$i);
}
$vtp->Display();
?>
2.
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle
= $vtp->Open("test2.vtp");
// Dans le fichier test2.vtp, il y
a une zone "mazone" ne contenant que du HTML
$vtp->newSession($handle,"mazone");
$vtp->Display();
?>
|
|
Vérifie
la validité du cache.
|
int
isCached(handle
id)
|
VTemplate
1.3 Cache Edition uniquement !
Vérifie si le fichier associé au handle id est
caché et si son cache est encore valable.
Le handle est celui retourné par la fonction Open.
- Retourne
1 si le cache est encore valable.
- Retourne
0 si le fichier n'est pas caché ou si le cache du
fichier a expiré.
|
ex:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$handle = $vtp->Open("test.vtp",CACHED,800);
// Ouverture du fichier en mode cache.Le
cache dure 800 secondes
if(
!$vtp->isCached($handle)
){
$vtp->addSession($handle,"mazone");
// La zone 'mazone' contient une variable header
$vtp->setVarF($handle,"mazone.header","header.htm");
$vtp->closeSession($handle,"mazone");
}
$vtp->Display($handle);
?>
|
|
Génére
le code d'un fichier template et valorise la variable d'un
autre fichier avec ce code généré.
|
Parse
(handle handle_destination,
string zone_var, handle
handle_source[, string
zone])
|
Ancienne
fonction : Parse_Ext.
Cette fonction permet de gèrer le multi-fichier.
Elle génère
le code issu du
parsing du template sur le fichier indiqué par le handle_source
( et optionnellement sur une zone precise de ce fichier.)
Puis valorise la variable du fichier indiqué par le
handle_destination, par le résultat de la génération
à l'étape précédante.
|
Attention
: Lors de la fermeture d'une zone, les sous zones de celle-ci
sont automatiquement réinitialisée à
Null.
ex:
source
: copyright.vtp
====
debut fichier copyright.vtp =====<br>
<!--VTP_mazone-->
debut zone "mazone" de copyright<br>
{#var}<br>
fin zone "mazone" de copyright<br>
<!--/VTP_mazone-->
==== fin fichier copyright.vtp =====<br>
source
: main.vtp
==== debut
fichier main.vtp =====<br>
<html>
bla bla bla bla
<!--VTP_mazone-->
<br>dans une zone :<br>
{#var2}<br>
<!--/VTP_mazone-->
ou directement dans le fichier main<br>
{#copy}
</html>
==== fin fichier main.vtp =====<br>
Version
normale:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$main = $vtp->Open("main.vtp");
$fichier2 = $vtp->Open("copyright.vtp");
$vtp->addSession($fichier2,"mazone");
// La zone 'mazone' contient une variable var
$vtp->setVar($fichier2,"mazone.var","999999999999");
$vtp->closeSession($fichier2,"mazone");
$vtp->addSession($fichier2,"mazone");
$vtp->addSession($main,"mazone");
$vtp->Parse($main
, "mazone.var2",
$fichier2, "mazone"
);
// le contenu de la zone "mazone"
du fichier2 est copié dans la variable "var2"
de la zone "mazone" du main
$vtp->closeSession($main,"mazone");
$vtp->Parse($main
, "copy", $fichier2);
// le contenu du fichier2 est
copié dans la variable "copy" du main
$vtp->Display();
// Affiche tout
ce qui a été généré
au dessus.
?>
Version
cache:
<?php
include("vtemplate.class.php");
// Inclusion du fichier
$vtp = new VTemplate;
//
Déclaration de l'object
$main = $vtp->Open("main.vtp");
$fichier2
= $vtp->Open("copyright.vtp",CACHED,3600);
if
( !$vtp->isCached($fichier2)
){
$vtp->addSession($fichier2,"mazone");
// La zone 'mazone' contient une variable var
$vtp->setVar($fichier2,"mazone.var","999999999999");
$vtp->closeSession($fichier2,"mazone");
}
$vtp->addSession($main,"mazone");
$vtp->Parse($main
, "mazone.var2",
$fichier2, "mazone"
);
// le contenu de la zone "mazone"
du fichier2 est copié dans la variable "var2"
de la zone "mazone" du main
$vtp->closeSession($main,"mazone");
$vtp->Parse($main
, "copy", $fichier2);
// le contenu du fichier2 est
copié dans la variable "copy" du main
$vtp->Display();
//
Affiche tout ce qui a été généré
au dessus.
?>
|
|
Génère
et Affiche les résultats
|
[string]
Display([handle
id][,int
disp [,string zone]
]])
|
Attention
changement de l'ordre des parametres par rapport à
la fonction Afficher.
Ancienne
fonction : [string] Afficher([int handle],[string zone]);
Génère le code issu du parsing du template.
Si
vous décidez que disp = 0 alors Afficher retourne le
code généré mais ne l'affiche pas.
Par
défaut, disp vaut 1 et affiche le résultat.
la
version 1.1.2 Ajoute un nouveau paramètre.
-->
Il permet d'afficher une zone particulière.Cette
fonctionnalité est utilisée pour gérer
Les
pieds de page et les entêtes.
la version 1.3 ajoute un nouveau paramètre:
--> Il permet de préciser quel fichier on doit
afficher
Par
défaut la fonction Display() génére
le code du premier fichier ouvert. Si vous souhaitez générer
le code d'un autre fichier vous devez preciser le handle
de ce fichier.
|
ex:
$vtp->Display();
// Affiche tout ce qui a été
généré au dessus.
$code = $vtp->Display(0);
// Récupère le code généré
sans l'affiché
$vtp->Display($handle3,1,"FOO3");
// Affiche la zone FOO du fichier d'handle
$handle3.
|
|
|