Les librairies
Fonctions
Ajax Csv Check Date Mkdate Debug File Form Format Html I18N Mkpanier Tableau Vue Xml
Plugin Calendar Plugin Rss Plugin GestionUser Plugin wsClient Plugin wsServeur
FONCTIONS
getRep(upload/img/js...)
Obtenir l'adresse d'un type d'element
Attention: cette fonction est appelé tacitement pour des fonctions comme HTML::getImage(), pas besoin de l'appeler donc
getUrl()
Retourne l'adresse formatée par le framework (utilisé de maniere tacite, par exemple HTML::getLink(), FORM::openForm...)
getVar($var,$ou[facultatif],$defaut[facultatif])
Retourne une variable des qu'il la trouve dans un tableau d'environnement ordre: POST,GET,SESSION
On peut egalement lui specifier $ou, dans ce cas la on lui demande rechercher uniquement dans $_POST ou $_GET... avec POST,GET,SESSION,FILE
Code
<?php
//Au lieu d'ecrire:
if( isset($_GET['id']) and $_GET['id']==2)
//On ecrit:
if( getVar('id','GET')==2)
?>
Par defaut, si il ne trouve pas, il retourne false, mais on peut lui specifier sa valeur de retourne en cas d'echec en 3eme parametre $defaut
Code
<?php
echo getVar('id','GET','Pas d id');
?>
setVar($var,$val,$ou)
Ecrit une variable dans une des variables d'environnement $_GET,$_POST ou $_SESSION
exple: apres une authentifaction setVar('logue',1,'SESSION')
getVarNavigation()
Retourne le couple module::action
exple: pour article::liste
getVarModule()
Retourne le module
exple: pour article::liste retourne "article"
getVarAction()
Retourne l'action
exple: pour article::liste retourne "liste"
getModuleVar($module,$var)
Retourne la variable d'un module
setModuleVar($module,$var,$val)
Definit la variable d'un module
redirect($url)
Redirige vers une page
Code
<?php
$article=getInstance('article');
$article->titre='article enregistre';
$article->save();
redirect('article::list');
?>
objToTab($obj,$var,$val)
Retourne un tableau d'architecture $tableau[ $obj->var ]=$obj->val
Code
<?php
//pratique par exemple pour generer facilement un select
echo FORM::getSelect('categorie', objToTab($categorie,'id','libelle'))
?>
Peut egalement servir de cache de donnée
getInstanceTpl()
Retourne l'instance unique du template
getInstance($class)
Retourne l'instance unique d'une classe
getNewInstance($class)
Retoune une nouvelle instance d'une classe
getPlugin($nomPlugin)
Retourne une nouvelle instance d'un plugin : pas besoin de mettre "plugin_"
Code
<?php
//pour plugin_ini situé dans plugin/plugin_ini.php
$ini=getPlugin('ini');
?>
AJAX
Note: pour l'utilisation d'ajax il vous faut charger le fichier javascript ajax.js regardez le fichier site/layout/template1ajax.php
AJAX::getLinkInnerHtml($libelle,$url,$cible,$tabParams[optionnel],$plus[optionnel])
Fonction retournant un lien html executant une requete ajax qui va faire un innerHtml de la sortie d'$url
Appelez la page $url, tout ce que vous verrez a l'ecran sera inseré dans l'element html avec l'id $cible
Code
<?php
echo AJAX::getLinkInnerHtml('mon lien ajax','article::edit','monDiv',array('id'=>1) );
?>
Sortie
<a href="#" onclick="AjaxAppelInnerHtml('article::edit','&id=1','POST','AjaxReceptInnerHtml','monDiv');affiche('monDiv');return false;">mon lien ajax</a>
N'oubliez pas de creer un div "monDiv" sinon la sortie de article::edit ne sera jamais affichée
Code
<?php
echo AJAX::getDiv('monDiv');
?>
Sortie
<div id="monDiv"></div>
AJAX::getLinkReturn($libelle,$url,$fonctionCible,$tabParams[optionnel],$plus[optionnel])
Idem que precedente sauf que cette fois-ci au lieu de faire un inner html de la sortie, elle l'envoie à la fonction javascript $fonctionCible le texte affiché
il vous faudra donc creer une fonction javascript prenant un parametre qui sera la sortie retournée par ajax
Code
<?php
echo AJAX::getLinkReturn('mon lien ajax','article::edit','maFonctionJavascript',array('id'=>1) );
?>
Sortie
<a href="#" onclick="AjaxAppel('article::edit','&id=1','POST','maFonctionJavascript');return false;">mon lien ajax</a>
AJAX::getLinkReturnXml($libelle,$url,$fonctionCible,$tabParams[optionnel],$plus[optionnel])
Idem que precedente sauf que cette fois-ci au lieu de faire un inner html de la sortie, elle l'envoie à la fonction javascript $fonctionCible un objet xml de la sortie
il vous faudra donc creer une fonction javascript prenant un parametre qui sera la sortie retournée par ajax
il faut naturellement que la sortie de votre module soit au format xml :)
Code
<?php
echo AJAX::getLinkReturn('mon lien ajax','article::edit','maFonctionJavascript',array('id'=>1) );
?>
Sortie
<a href="#" onclick="AjaxAppel('article::edit','&id=1','POST','maFonctionJavascript');return false;">mon lien ajax</a>
AJAX::getDiv($id,$contenu,$plus[optionnel])
Retourne un div avec un id, surtout a utiliser pour tout ce qui est interaction ajax/javascript
Code
<?php
echo AJAX::getDiv('identifiantDeMonDiv','du texte');
?>
Sortie
<div id="identifiantDeMonDiv">du texte</div>
AJAX::getLink($libelle,$url,$plus=false)
Retourne un lien javascript
Code
<?php
echo AJAX::getLink('mon lien javascript','alert("toto")');
?>
Sortie
<a href="#" onclick="alert('toto');return false;">mon lien javascript</a>
DATE
DATE::getDate($format,$date[optionnel])
Retourne la date envoyé au format personnalisé, la date est attendu au format YYYY-MM-DD HH:MM:SS
$format represente le format souhaité
Chaque tag represente un affichage:
Pour noel a 12h30 (2007-12-25 12:30:10)
$d => 25
$m => Dec
$M => Decembre
$im => 12
$y => 07
$Y => 2007
$H => 12
$i => 30
$s => 10
Code
<?php
echo DATE::getDate('2007-12-25 12:30:10','$d $M $Y a $Hh$i');
?>
Sortie
25 decembre 2007 a 12h30
DATE::calculDateMois($date,$operation[+ ou -],$nb)
Permet de calculer une date en ajoutant/soustrayant des mois
retourne la date au format YYYY-MM-DD
Code
<?php
echo DATE::calculDateMois('2007-12-25','+',1);
?>
Sortie
2008-01-25
DATE::calculDateJour($date,$operation[+ ou -],$nb)
Permet de calculer une date en ajoutant/soustrayant des jours
retourne la date au format YYYY-MM-DD
Code
<?php
echo DATE::calculDateJour('2007-12-25','+',1);
?>
Sortie
2007-12-26
DATE::calculDateAnnee($date,$operation[+ ou -],$nb)
Permet de calculer une date en ajoutant/soustrayant des années
retourne la date au format YYYY-MM-DD
Code
<?php
echo DATE::calculDateAnnee('2007-12-25','+',1);
?>
Sortie
2008-12-25
DATE::isFerie($date)
Permet de savoir si une date est férié ou non
retourne true ou false selon
note: jour ferié = week-end + jour férié
MKDATE
Avec cette classe, vous manipulez les dates comme un objet bien flexible
Vous commencez par creer une date, soit avec une date defini (provenant d'une base de donnée ou autre) soit vous prenez la date du jour
Dans tous les cas, lors de la creation de l'objet vous pouvez lui passez la date au format Y-m-d
Code
<?php
$mkdate=new MKDATE('2007-12-25');
?>
$mkdate->addJour($nb[combien de jour vous ajoutez a la date])
Permet d'ajouter a votre date N jour
$mkdate->addMois($nb[combien de mois vous ajoutez a la date])
Permet d'ajouter a votre date N mois
$mkdate->addAnnee($nb[combien de annee vous ajoutez a la date])
Permet d'ajouter a votre date N annee
$mkdate->setJour($jour)
Permet d'initialiser le jour de votre objet date (si ce n'a pas été fait lors de la creation de l'objet)
$mkdate->setMois($mois)
Permet d'initialiser le mois de votre objet date (si ce n'a pas été fait lors de la creation de l'objet)
$mkdate->setAnnee($annee)
Permet d'initialiser l'annee de votre objet date (si ce n'a pas été fait lors de la creation de l'objet)
$mkdate->getJour($format[par defaut retourne le jour sur 2 caracteres / int])
Retourne le jour selon le format
formats possibles
int: retourne un entier
$mkdate->getMois($format[par defaut retourne le mois sur 2 caracteres / int / court / long])
Retourne le mois de la semaine selon le format
formats possibles
int: retourne un entier
court: retourne le mois sous forme de nom court (jan,fev...)
long: retourne le mois sous forme de nom long (janvier,fevrier...)
$mkdate->getAnnee($format[par defaut retourne l'annee sur 4 caracteres / int / court])
Retourne l'annee selon le format
formats possibles
int: retourne un entier
court: retourne l'annee sur 2 caracteres
$mkdate->getJourSemaine($format[par defaut retourne le jour sur 2 caracteres / int / long])
Retourne le jour de la semaine selon le format
formats possibles
int: retourne un entier
long: retourne le jour de la semaine sous forme de nom long (lundi,mardi...)
$mkdate->isFerie()
Retourne true ou false selon que la date en question est ou non ferie
note: le samedi et dimanche sont considéré comme férié
$mkdate->getFormat($format)
Retourne la date sous le format $format
Comme lorsque vous faites un date('Y-m-d'), getFormat attend un format quasi similaire avec les tags suivants:
$d : jour sur 2 caracteres
$m : mois sous forme de nom court (jan,fev...)
$M : mois sous forme de nom long (janvier,fevrier...)
$im: mois sur 2 caracteres
$y : annee sur 2 caracteres
$Y : annee sur 4 caracteres
$H : heure sur 2 caracteres
$i : minutes sur 2 caracteres
$s : secondes sur 2 caracteres
note: MKDATE ne gere pas les heures,minutes... utilisez MKDATETIME pour cela
Exemples
Code
<?php
$mkdate=new MKDATE('2008-12-25');
echo $mkdate->getFormat('$d $m $y');
//25 dec 08
$mkdate->addJour(2);
echo $mkdate->getFormat('$d $m $y');
//27 dec 08
//format us
echo $mkdate->getFormat('$im-$d-$Y');
//12-27-2008
?>
MKPANIER
Avec cette classe vous manipulez votre panier comme un objet, celui-ci se sauvegardant automatiquement en session
Code
<?php
$mkpanier=new MKPANIER();
?>
$mkpanier->isVide()
Indique si le panier est vide :)
$mkpanier->addLigne($reference,$libelle,$quantite,$prix,$plus=false)
Ajoute une ligne au panier, on lui specifie la reference de l'article, la quantite, le prix unitaire et une info en plus si besoin (une information supplementaire (en promo, marque ...)
$mkpanier->delLigne($reference)
Supprimer une ligne du panier, la ligne de l'article $reference
$mkpanier->addQte($reference)
Incremente la quantité de l'article $reference
$mkpanier->subQte($reference)
Decremente la quantité de l'article $reference
$mkpanier->delPanier()
Vide le panier
$mkpanier->getPanier()
Retourne le tableau du panier, une ligne contient dans l'ordre : reference, libelle, quantite, prixUnitaire, prixTotal, infoPlus
Code
<?php
$panier=new MKPANIER();
if(!$panier->isVide())
foreach($panier->getPanier() as $ligne){
list($id,$libelle,$qte,$prixU,$prixT,$plus)=$ligne;
}
?>
$mkpanier->getTotal()
Retourne le total HT du panier
DEBUG
DEBUG::printr($var)
Retourne un textarea contenant le resultat d'un print_r de la variable $var
note: comme la majorité des methodes dans le mkframework, elle retourne cela, elle ne l'affiche pas, n'oubliez pas le echo :)
DEBUG::vardump($var)
Retourne un textarea contenant le resultat d'un var_dump de la variable $var
note: comme la majorité des methodes dans le mkframework, elle retourne cela, elle ne l'affiche pas, n'oubliez pas le echo :)
DEBUG::getEnv()
Retourne un textarea contenant les resultats de print_r des variables d'environnements GET,POST,SESSION,SERVER
note: comme la majorité des methodes dans le mkframework, elle retourne cela, elle ne l'affiche pas, n'oubliez pas le echo :)
DEBUG::getAll()
Alias de DEBUG::getEnv()
DEBUG::getLastRequete()
Retourne un textarea contenant la derniere requete executé a l'instant T, utile pendant la phase de debug pour bien voir a chaque appel de l'ORM la requete executée :)
FILE
FILE::getRep($dir,$critere[optionnel])
Recupere un tableau des fichiers d'un repertoire
Si $critere est renseigné ne retourne que les fichiers se finissant par l'extension $critere
FILE::read($fichier,$sortie[optionnel])
Retourne le contenu du fichier $fichier
selon $sortie il sera retourné sous forme de tableau ou en un seul string
par defaut sous forme de tableau sinon sous forme de string
FILE::write($fichier,$contenu)
Ecrit $contenu dans $fichier
FILTRE
#form
FORM
FORM::getForm($contenu,$option[optionnel])
Retourne un formulaire html
$option represente les parametres d'un formulaire: action,method...
Code
<?php
echo FORM::getForm('texte');
?>
Sortie
<form action="" method="POST">
texte
</form>
FORM::getInput($name,$value[optionnel],$plus[optionnel])
retourne un champ input html
Code
<?php
echo FORM::getInput('prenom','bibi');
?>
Sortie
<input type="text" name="prenom" value="bibi" />
FORM::getInputPass($name,$value[optionnel],$plus[optionnel])
retourne un champ input password html
Code
<?php
echo FORM::getInputPass('pass');
?>
Sortie
<input type="password" name="pass" />
FORM::getInputFile($name,$value[optionnel],$plus[optionnel])
retourne un champ input fichier html
Code
<?php
echo FORM::getInputFile('fichier');
?>
Sortie
<input type="file" name="fichier" />
FORM::getHidden($name,$value[optionnel],$plus[optionnel])
retourne un champ input caché html
Code
<?php
echo FORM::getHidden('option','update');
?>
Sortie
<input type="hidden" name="option" value="update" />
FORM::getTextarea($name,$value[optionnel],$plus[optionnel])
retourne un champ textarea
Code
<?php
echo FORM::getTextarea('texte','mon texte');
?>
Sortie
<textarea name="texte">mon texte</textarea>
FORM::getSelect($name,$tableau,$selected[optionnel],$plus[optionnel])
retourne une list box de $tableau
Code
<?php
echo FORM::getSelect('genre',array(''=>'selectionnez','masc'=>'masculin','fem'=>'feminin'),'masc');
?>
Sortie
<select name="genre">
<option value="">selectionnez</option>
<option value="masc" selected="selected">masculin</option>
<option value="fem">feminin</option>
</select>
FORM::getRadio($name,$valeur,$checked[optionnel],$plus[optionnel])
retourne un input html type radio
Code
<?php
echo FORM::getRadio('reponse','oui',true);
?>
Sortie
<input type="radio" name="reponse" value="oui" checked="checked" />
FORM::getCheckbox($name,$valeur,$checked[optionnel],$plus[optionnel])
retourne un input html type checkbox
Code
<?php
echo FORM::getCheckbox('reponse','oui',true);
?>
Sortie
<input type="checkbox" name="reponse" value="oui" checked="checked" />
FORM::getButton($libelle,$onclick,$plus[optionnel])
retourne un bouton
Code
<?php
echo FORM::getButton('Faire une alerte','alert("toto")');
?>
Sortie
<input type="button" value="Faire une alerte" onclick="alert('toto')" />
FORM::getSubmit($libelle,$plus[optionnel])
retourne un bouton submit
Code
<?php
echo FORM::getSubmit('enregistrer');
?>
Sortie
<input type="submit" value="enregistrer" />
FORM::getInputDate($name,$value=false,$formatDateBdd='$Y-$m-$d')
retourne un lot d'input gerant la date en prenant en parametre une date au format $formatDateBdd
Code
<?php
echo FORM::getInputDate('dateCreation','2007-12-25','$Y-$m-$d');
?>
Sortie
<input type="text" name="dateCreation_d" id="dateCreation_d" value="25" onKeyUp="inputVerifInt(this.id)" MAXLENGTH="2" style="width:20px" />
/
<input type="text" name="dateCreation_m" id="dateCreation_m" value="12" onKeyUp="inputVerifInt(this.id)" MAXLENGTH="2" style="width:20px" />
/
<input type="text" name="dateCreation_Y" id="dateCreation_Y" value="2007" onKeyUp="inputVerifInt(this.id)" MAXLENGTH="2" style="width:20px" />
FORM::getFromInputDate($post,$nomChamp,$format)
retourne la date au format definit dans $format
Code
<?php
echo FORM::getFromInputDate($_POST,'dateCreation',$Y-$m-$d)
?>
Sortie
2007-12-25
FORMAT
HTML
HTML::getImage($src,$alt[optionnel],$plus[optionnel])
retourne le code html d'une image
note: les images sont a placer dans le repertoire data/img/
nul besoin de preciser l'emplacement
Code
<?php
echo HTML::getImage('logo.jpg');
?>
Sortie
<img src="data/img/logo.jpg" alt="" />
HTML::getLink($nom,$href,$plus[optionnel])
retourne un lien html
note: le $href est interpreté par le moteur d'url du framework
pour appelé un module/action on appelle module::action[¶metre=valeur optionnel]
Code
<?php
echo HTML::getLink('liste article','article::list');
?>
Sortie
<a href="index.php?:nav=article::list">liste article</a>
Code
<?php
echo HTML::getLink('article 1','article::show&id=1');
?>
Sortie
<a href="index.php?:nav=article::show&id=1">article 1</a>
HTML::getLinkJs($libelle,$href,$plus[optionnel])
retourne un lien javascript (equivalent d'AJAX::getLink() )
Code
<?php
echo HTML::getLinkJs('ouvre une alerte','alert("toto")');
?>
Sortie
<a href="#" onclick="alert('toto');return false">ouvre une alerte</a>
HTML::getAncre($nom)
retourne une ancre html
Code
<?php
echo HTML::getAncre('ici');
?>
Sortie
<a id="ici" name="ici"></a>
HTML::getSpan($texte,$plus[optionnel])
retourne un span html
Code
<?php
echo HTML::getSpan('mon texte',array('class'=>'commentaire'));
?>
Sortie
<span class="commentaire">mon texte</span>
HTML::getP($texte,$plus[optionnel])
retourne un paragraphe html
Code
<?php
echo HTML::getP('mon texte',array('class'=>'commentaire'));
?>
Sortie
<p class="commentaire">mon texte</p>
HTML::getDiv($texte,$plus[optionnel])
retourne un div html
Code
<?php
echo HTML::getDiv('mon texte',array('class'=>'commentaire'));
?>
Sortie
<div class="commentaire">mon texte</div>
HTML::getH($niveau,$texte,$plus=false)
retourne un H1,2,3... $niveau=1 => h1, $niveau=2 => h2...
Code
<?php
echo HTML::getH(1,'mon titre',array('class'=>'titre1'));
?>
Sortie
<h1 class="titre1">mon titre</h1>
HTML::getBr($nb[optionnel 1 par defaut]
retourne $nb x
HTML::getSpace($nb[optionnel 1 par defaut]
retourne $nb x
HTML::getList($tableau,$plus[optionnel])
retourne une liste html du tableau $tableau
Code
<?php
echo HTML::getList(array('lundi','mardi','mercredi'));
?>
Sortie
<ul>
<li>lundi</li>
<li>mardi</li>
<li>mercredi</li>
</ul>
HTML::getFlash($src,$width[optionnel],$height[optionnel],$flashvars[optionnel])
retourne le code html pour include le fichier flash
note: si on ne fournit pas la largeur, les dimensions du flash sont récupérées par php
HTML::getIframe($src,$plus[optionnel])
retourne une iframe avec pour source $src
Code
<?php
echo HTML::getIframe('article::list');
?>
Sortie
<iframe src="index.php?:nav=article::list"></iframe>
HTML::getJavascript($code,$language[optionnel])
retourne du code javascript
Code
<?php
$code='alert("hello world"); ';
echo HTML::getJavascript($code);
?>
Sortie
<script language="Javascript>alert("hello world");</script>
HTML::encode($texte)
retourne le texte $texte encodé en html
I18N
VUE
VUE::getCycle($tab,$id[optionnel])
retourne alternativement le contenu de $tab
a utiliser dans les vues pour gerer par exemple l'alternance des lignes d'un tableau
Code
<?php
<?php foreach($articleTab as $article):?>
<tr <?php echo VUE::getCycle(array('class="alt1"','class="alt2"'))?>>
<td><?php echo $article->titre ?></td>
</tr>
<?php endforeach; ?>
?>
Sortie
<tr class="alt1">
<td>titre 1</td>
</tr>
<tr class="alt2">
<td>titre 2</td>
</tr>
<tr class="alt1">
<td>titre 3</td>
</tr>
VUE::getIf($expression,$valeur,$else=null)
Retourne $valeur si $expression est vrai, a coupler avec les methodes statiques VUE::isZero,isVide,isArray,isNumber , sinon retourne $else
VUE::getIfNot($expression,$valeur,$else=null)
Le contraire de VUE::getIf
VUE::getIfInArray($var,$tab,$valeur,$else=null)
Retourne $valeur si $var est present dans le tableau $tab, sinon retourne $else
VUE::getIfNotInArray($var,$tab,$valeur,$else=null)
Le contraire de VUE::getIfInArray
VUE::getIfEgal($var1,$var2,$valeur,$else=null)
Retourne $valeur si $var1 egal $var2, sinon retourne $else
VUE::getIfNotEgal($var1,$var2,$valeur,$else=null)
Le contraire de VUE::getIfEgal
VUE::getIfZero($expression,$valeur,$else=null)
Retourne $valeur si $expression egal 0, sinon retourne $else
VUE::getIfNotZero($expression,$valeur,$else=null)
Le contraire de VUE::getIfZero
VUE::getIfVide($expression,$valeur,$else=null)
Retourne $valeur si $expression est vide, sinon retourne $else
VUE::getIfNotVide($expression,$valeur,$else=null)
Le contraire de VUE::getIfVide
VUE::getIfArray($expression,$valeur,$else=null)
Retourne $valeur si $expression est un tableau, sinon retourne $else
VUE::getIfNotArray($expression,$valeur,$else=null)
Le contraire de VUE::getIfArray
VUE::getIfNumber($expression,$valeur,$else=null)
Retourne $valeur si $expression est un nombre, sinon retourne $else
VUE::getIfNotNumber($expression,$valeur,$else=null)
Le contraire de VUE::getIfNumber
XML
$xml->ouvre($libelle,$attributs[optionnel sous forme de tableau])
Ouvre une balise, il suffira ensuite de faire un $xml->ferme() pour qu'il ferme la derniere ouverte
$xml->ferme()
ferme la derniere balise ouverte, pas besoin de preciser, l'objet le gere tout seul
$xml->ajoute($libelle,$valeur,$attributs[optionnel sous forme de tableau])
Ajoute une balise $libelle avec sa valeur pas besoin de fermer
$xml->getXml()
Retourne le xml genere
Exemples
Code
<?php
$xml=new XML;
$xml->ouvre('articles_list');
$xml->ouvre('article',array('id'=>55));
$xml->ajoute('id',55);
$xml->ajoute('titre','titre 55');
$xml->ferme();
$xml->ouvre('article');
$xml->ajoute('id',56);
$xml->ajoute('titre','titre 56');
$xml->ferme();
$xml->ferme();
echo $xml->getXml();
?>
Sortie
<articles_list>
<article id="55">
<id>55</id>
<titre>titre 55</titre>
</article>
<article>
<id>56</id>
<titre>titre 56</titre>
</article>
</articles_list>
Code
<?php
$xml=new XML;
$xml->ouvre('articles_list');
$xml->ouvre('article',array('id'=>55));
$xml->ajoute('id',55);
$xml->ajoute('titre','titre 55');
$xml->ouvre('auteur_list');
$xml->ouvre('auteur');
$xml->ajoute('nom','Hugo');
$xml->ajoute('prenom','Victor');
$xml->ferme();
$xml->ouvre('auteur');
$xml->ajoute('nom','Hugo');
$xml->ajoute('prenom','Georges');
$xml->ferme();
$xml->ferme();
$xml->ferme();
$xml->ouvre('article');
$xml->ajoute('id',56);
$xml->ajoute('titre','titre 56');
$xml->ferme();
$xml->ferme();
echo $xml->getXml();
?>
Sortie
<articles_list>
<article id="55">
<id>55</id>
<titre>titre 55</titre>
<auteur_list>
<auteur>
<nom>Hugo</nom>
<prenom>Victor</prenom>
</auteur>
<auteur>
<nom>Zola</nom>
<prenom>Emile</prenom>
</auteur>
</auteur_list>
</article>
<article>
<id>56</id>
<titre>titre 56</titre>
</article>
</articles_list>
CSV
Note: la classe csv utilise les memes noms de methodes que TABLEAU pour permettre facilement de changer un tableau html en csv
juste en remplacant new TABLEAU par new CSV
Note2: par contre ca ne prendra pas en compte les colspan (non gere par le csv)
$csv->addLigne()
Ajoute une ligne csv
$csv->addCase($valeur)
Ajoute une case dans le fichier excel
$csv->getTable()
Retourne le csv genere
Exemples
Code
<?php
$csv=new CSV;
$csv->addLigne();
$csv->addCase('NOM');
$csv->addCase('PRENOM');
$csv->addLigne();
$csv->addCase('Hugo');
$csv->addCase('Victor');
$csv->addLigne();
$csv->addCase('Zola');
$csv->addCase('Emile');
echo $csv->getTable();
?>
Sortie
NOM;PRENOM
Hugo;Victor
Zola;Emile
CHECK
Permet de valider un ensemble de points, utilise le plus souvent pour valider un formulaire
L'objet fonctionne ainsi: a chaque verification echoué, il ajoute le message passé en parametre a son tableau d'erreur
A la fin on verifie avec une de ses methode: isOk() si l'ensemble est ok ou non
$check->inArray($champ,$tableau,$messageErreur)
Si champ absent du tableau $tableau ajoute $messageErreur
$check->notInArray($champ,$tableau,$messageErreur)
Si champ present du tableau $tableau ajoute $messageErreur
$check->egalA($champ,$valeur,$messageErreur)
Si $champ different de $valeur ajoute $messageErreur
$check->notEgalA($champ,$valeur,$messageErreur)
Si $champ egal de $valeur ajoute $messageErreur
$check->isEmailValid($champ,$messageErreur)
Si $champ est un email non valide ajoute $messageErreur
$check->siVrai($expression,$messageErreur)
Si $expression est fausse ajoute $messageErreur
$check->longueurInfA($champ,$longueur,$messageErreur)
Si longueur de $champ n'est pas strictement inferieur a $longueur ajoute $messageErreur
$check->longueurInfOuEgalA($champ,$longueur,$messageErreur)
Si longueur de $champ n'est pas inferieur ou egal a $longueur ajoute $messageErreur
$check->longueurSupA($champ,$longueur,$messageErreur)
Si longueur de $champ n'est pas strictement superieur a $longueur ajoute $messageErreur
$check->longueurSupOuEgalA($champ,$longueur,$messageErreur)
Si longueur de $champ n'est pas superieur ou egal a $longueur ajoute $messageErreur
$check->longueurEgalA($champ,$longueur,$messageErreur)
Si longueur de $champ n'est pas egal a $longueur ajoute $messageErreur
$check->isOk()
Indique si l'ensemble des controles sont ok
$check->getError()
Retourne un tableau des erreurs générées
TABLEAU
Note: voir note csv, on peut juste en changeant la classe appele switcher un tableau html au format csv
les deux classes utilisant les memes methodes
Avec cette classe, vous ouvrez tout, vous ne fermez rien, la classe gerant les ouvertures fermeture de balise
$tableau->addLigne($plus[optionnel sous forme de tableau])
Permet de creer une nouvelle ligne TR, celles-ci sera fermée automatiquement
$tableau->addCase($valeur,$plus[optionnel sous forme de tableau])
Ajoute une case TD avec sa valeur + option si $plus fourni
$tableau->addCaseTd($valeur,$plus[optionnel sous forme de tableau])
Idem addCase sauf qu'on precise que c'est une case TD que l'on veut ouvrir
$tableau->addCaseTh($valeur,$plus[optionnel sous forme de tableau])
Idem addCase sauf qu'on force des balises TH
$tableau->getTable($plus[optionnel sous forme de tableau])
Retourne le tableau HTML genere
Exemples
Code
<?php
$tableau->new TABLEAU;
$tableau->addLigne();
$tableau->addCaseTh('NOM');
$tableau->addCaseTh('PRENOM');
$tableau->addLigne();
$tableau->addCase('Hugo');
$tableau->addCase('Victor',array('class'=>'special'));
$tableau->addLigne();
$tableau->addCase('Zola');
$tableau->addCase('Emile');
echo $tableau->getTable(array('class'=>'tableau2') );
?>
Sortie
<table class="tableau2">
<tr>
<th>NOM</th>
<th>PRENOM</th>
</tr>
<tr>
<td>Hugo</td>
<td class="special">Victor</td>
</tr>
<tr>
<td>Zola</td>
<td>Emile</td>
</tr>
</table>
Plugin Calendar
Rappel: pour appeler un plugin il suffit d'utiliser getPlugin(leNomDuplugin)
Pour le plugin Calendar
Code
<?php
$calendar=getPlugin('calendar');
//il renverra une instance de la classe plugin_calendar situé dans plugin/plugin_calendar.php
?>
$calendar->setRoot($adresse_racine des liens)
Votre calendrier peut avoir des liens sur chaque date, cette methode permet de definir la racine de ses liens (soit l'adresse de la page, soit par exemple une adresse de forum)
Par exemple on appel le calendrier de la page de liste de post, (post::list)
Code
<?php
$calendar=getPlugin('calendar');
$calendar->setRoot('post::list');
?>
$calendar->setClassToday($class pour la date du jour)
Indique la classe css a utiliser pour la date du jour
$calendar->setClassSelection($class pour la date selectionnée)
Indique la classe css a utiliser pour la date selectionnée (cliquée)
$calendar->setVarAnnee($var pour le nom de la variable a utiliser pour l'année)
Indique le nom de la variable get a utiliser pour l'année
$calendar->setVarMois($var pour le nom de la variable a utiliser pour le mois)
Indique le nom de la variable get a utiliser pour le mois
$calendar->setVarJour($var pour le nom de la variable a utiliser pour le jour)
Indique le nom de la variable get a utiliser pour le jour
$calendar->loadFromVar()
Par defaut, quand vous appelez le calendrier, il s'initialise avec la date du jour, commencant au mois en cours
Cette methode permet de lui indiquer de prendre en compte les variables get (annee, mois, jour) precedement indiqué
$calendar->enableLien()
Active les liens sur les jours
$calendar->disableLien()
Desactive les liens sur les jours
$calendar->enableNav()
Active la navigation (permet d'activer la navigation mois)
$calendar->disableNav()
Desactive la navigation (permet d'activer la navigation mois)
$calendar->send()
Retourne le calendrier
Code
<?php
$calendar=getPlugin('calendar');
$calendar->setVarAnnee('calAnnee');
$calendar->setVarMois('calMois');
$calendar->setVarJour('calJour');
$calendar->enableLien();
$calendar->setRoot('pages::calendrier');
$calendar->enableNav();
$calendar->loadFromVar();
$calendar->setClassToday('calendrierToday');
$calendar->setClassSelection('calendrierSelection');
echo $calendar->send();
?>
Plugin Rss
Rappel: pour appeler un plugin il suffit d'utiliser getPlugin(leNomDuplugin)
Pour le plugin Rss
Code
<?php
$rss=getPlugin('rss');
//il renverra une instance de la classe plugin_rss situé dans plugin/plugin_rss.php
?>
$rss->setRoot($adresse_absolue_du_site)
Les liens rss ne peuvent etre ecrit en relatif, ils doivent l'etre en absolue, d'ou la methode $root pour indiquer l'adresse absolue du site
note: lorsque vous generer un nouveau projet, il y a deja un exemple de rss, vous pouvez tres bien l'utiliser
$rss->setTitre($titre)
Indique le titre du feed rss (en general le nom de votre site)
$rss->setDesc($desc)
La description de votre feed rss
$rss->setUrl($url)
L'url de votre site
$rss->addNews(array('titre'=>'','desc'=>'','auteur'=>'','date'=>'','url'=>''))
Ajouter a votre feed rss une news via un tableau
$rss->send($feed='news')
Envoie la sortie, exactement: ecrit un fichier rss $feed dans le repertoire data/xml/ et redirige vers ce fichier de cache
Plugin gestionuser
Rappel: pour appeler un plugin il suffit d'utiliser getPlugin(leNomDuplugin)
Pour le plugin gestionuser
Code
<?php
$gestionuser=getPlugin('gestionuser');
//il renverra une instance de la classe plugin_gestionuser situé dans plugin/plugin_gestionuser.php
?>
Note: je conseille d'ajouter une methode dans le fichier de la classe modele de votre table user pour parametrer les droits de celui-ci
Code
<?php
(...)
public function getPluginGestionUser(){
$gestionuser=getPlugin('gestionuser');
//vos conditions
if($this->habilitation==1){
$gestionuser->allow('READ','leNomDeVotreRessource');
}elseif($this->habilitation==2){
$gestionuser->allow('READ','leNomDeVotreRessource');
$gestionuser->allow('WRITE','leNomDeVotreRessource');
}
}
?>
$gestionuser->allow($action,$ressource)
Authorise le user a $action sur $ressource
$gestionuser->deny($action,$ressource)
N'autorise pas le user a $action sur $ressource
$gestionuser->can($action,$ressource)
Indique si le user a le droit de $action sur $ressource
Plugin wsserveur
Rappel: pour appeler un plugin il suffit d'utiliser getPlugin(leNomDuplugin)
Pour le plugin gestionuser
Code
<?php
$wsserveur=getPlugin('wsserveur');
//il renverra une instance de la classe plugin_wsserveur situé dans plugin/plugin_wsserveur.php
?>
Un module est present depuis la v3_20 intitulé wsServeur, c'est la meilleur methode: vous créez un module ou vous instanciez le plugin
Code
<?php
Class module_monModuleServeur{
function init(){
$wsServeur=getPlugin('wsServeur');
//$wsServeur->addPassword('votreMotDePasseAvecDesNumeros1234etcaracteresspeciaux!!.?');
//on passe au plugin l'objet a utilser lors des appels du client
$wsServeur->handle($this);
}
}
?>
$wsserveur->handle($monObjetAutiliser)
Envoi au plugin l'objet a utiliser lors des appels du client: le client faisant des appels methodes/parametres
Le plugin fera des appels $monObjetAutiliser->lactionAppelee($tableauDeParametre)
$wsserveur->addPassword($motdepasse)
Ajoute une mesure de securité au serveur: il necessitera un mot de passe (chaine de caracteres longue)
$wsserveur->addIp($ip)
Ajoute une mesure de securité au serveur: il n'acceptera que les appels de l'ip $ip
note: les ips autorisés sont gérés en tableau, vous pouvez donc authoriser plusieurs ips en appelant plusieurs fois cette methode
Plugin wsclient
Rappel: pour appeler un plugin il suffit d'utiliser getPlugin(leNomDuplugin)
Pour le plugin gestionuser
Code
<?php
$wsserveur=getPlugin('wsclient');
//il renverra une instance de la classe plugin_wsserveur situé dans plugin/plugin_wsclient.php
?>
Vous avez un webServeur sur une de vos applications et aimeriez bien via votre application web appelez sa methode getCouleur qui necessite comme parametre
le parametre "fruit"
Dans votre fichier module/monModule/action.php
Code
<?php
public function _appelwebservice(){
//si le webServeur est a l'adresse http://monsite.com/v2/index.php?:nav=wsServeur
//adresse du serveur web service
$host='monsite.com'; //host du serveur
$adresse='/v2/index.php?:nav=wsServeur'; //adresse a partir de la racine du site
$port=80; //port du serveur (port apache)
$wsClient=getPlugin('wsClient');
$wsClient->setPassword('votreMotDePasseAvecDesNumeros1234etcaracteresspeciaux!!.?');
$wsClient->setHost($host);
$wsClient->setPage($adresse);
$wsClient->setPort($port);
$wsClient->setMethode('getCouleur');
$wsClient->setParam('fruit','fraise');
$wsClient->send();
//on recupere la reponse du webservice
$reponseWebService= $wsClient->getSortie();
$tpl=getInstanceTpl();
//on assigne la reponse du web service au template
$tpl->assign('reponseWebService',$reponseWebService);
$tpl->display('usepluginwsclient');
$tpl->send('template1');
}
?>
$wsclient->setPassword($motdepasse)
On indique au client que le webServeur necessite un mot de passe, et on lui passe celui-ci
$wsclient->setHost($host)
On indique au client le host du webserveur
$wsclient->setPage($adresseDeLaPageDepuisLaRacineDuServeur)
On indique au client l'adresse de la page serveur depuis la racine
Pour http://monsite.com/v2/index.php?:nav=wsServeur
L'adresse c'est a partir de la racine du site donc: /v2/index.php?:nav=wsServeur
$wsclient->setPort($port)
On indique au client le port du serveur
$wsclient->setMethode($methodeAappeler)
On indique au client quel methode appeler chez le serveur
$wsclient->setParam($nomDuparametre,$valeurDuParametre)
On indique au client un parametre a instancier
Dans le cas ou on a plusieurs parametre, l'appeler deux fois
$wsClient->send()
Envoie l'appel
$wsClient->getSortie()
Retourne la sortie du webservice