Comment Kon Fait pour ?

Livrer une application en prod
Recuperer une variable GET,POST
Passer une variable de l'action à la vue
Alterner la couleur des lignes d'un tableau
Gérer la pagination de son site
Charger un module a un emplacement template
Executer un traitement pour l'ensemble d'un module
Ajouter un plugin
Appeler / Utiliser un plugin
Un export excel (csv pour etre exact)
Recuperer le nom du module
Recuperer le nom de l'action
Recuperer la variable de navigation
Faire un lien vers l'action liste du module article

Livrer une application en prod

Le builder genere les applications dans son repertoire data/siteGenere/
Il suffit de copier le repertoire de votre application sur le serveur, pas besoin de "geler" ou autre, l'application est autonome.

Recuperer une variable GET,POST

Voir dans la page de librairie

Passer une variable de l'action à la vue

Par exemple, passer l'objet article de l'action à la vue show
module/article/action.php

Code


<?php 
$tpl
=getInstanceTpl();
//on "assigne" la variable $article au template sous le nom "monArticle"
$tpl->assign('monArticle',$article);
$tpl->display('show');
$tpl->send('template1');
 
?>


Coté vue
module/article/tpl/show.php

Code


<?php 
echo $monArticle->id;
echo 
$monArticle->titre;
 
?>


Alterner la couleur des lignes d'un tableau

On utilise VUE::getCycle( array() )

Code


<table>
    <?php foreach($articleTab as $article):?>
    <tr class="<?php echo VUE::getCycle( array('blanc','gris') ):?>">
        <td><?php echo $article->id?></td>
        <td><?php echo $article->titre?></td>
    </tr>
    <?php endforeach;?>
</table>


Gérer la pagination de son site

Dans votre fichier module/article/action.php

Code


<?php 
/*Pagination-------------*/
$total=getInstance('Article')->count();

$pagination=new PAGINATION();
$pagination->setRoot('article::list'); //definit l'adresse racine des liens de pagination root&page=N
$pagination->setLimite(3); //limite d'enregistrement par page
$pagination->setTotal$total );
$pagination->setVar('nb'); //variable GET utilisé pour gerer la pagination
//mis dans la vue $pagination->setLibelle('Page'); //libelle utilise pour les liens de pagination, exple: Page 1, Page 2... 

$articleTab=getInstance('Article')->findLimitnull,$pagination->getLimit() );

$tpl=getInstanceTpl();
$tpl->assign('pagination',$pagination); //on envoi a la vue l'objet pagination, pour afficher les liens de pagination
/*-------------Pagination*/

(...)
 
?>


Dans votre fichier vue module/article/tpl/list.php

Code


<?php 
(...)

/*Pagination---------------------------------------*/
$pagination->setLibelle('Page'); //libelle utilise pour les liens, exple: page 1, page 2...
echo $pagination->getList('pagination','selected');
/*---------------------------------------Pagination*/
 
?>


Charger un module a un emplacement template

Vous pouvez avoir besoin de charger un module a un endroit donnée
Pour cela vous devez inclure ce module, par exemple le calendrier a "emplacement" par exemple "calendrier"

Code


<?php 
$tpl
=getInstanceTpl();
$tpl->moduleInclude('calendrier::list','calendrier');
$tpl->display('maPage');
$tpl->send('template1');
 
?>

et a partir de la, de n'importe quel vue ou template, vous pourrez l'afficher en faisant

Code


<?php echo $this->getContent('calendrier');?>



Executer un traitement pour l'ensemble d'un module

Pour cela, la methode init() a fait son apparition, cette methode est toujours executée a chaque appel d'action d'un module
On l'utilise lors de la generation de crud opur initier en permanence le menu

Code


<?php 
function init(){
    
$tpl=getInstanceTpl();
    
//on charge a chaque fois le menu a l'emplacement "menu"
    
$tpl->moduleInclude('menu::list','menu');
    
    
//de cette facon, dans template1 on affiche le menu avec un echo $this->getContent('menu') 
}
 
?>


Ajouter un plugin

Rien de plus simple, creer un fichier plugin_votrePlugin.php dans le repertoire plugin/
qui contiendra

Code


<?php 
Class plugin_votrePlugin{
    
//le contenu de votre plugin
}
 
?>


Appeler/utiliser un plugin

Utiliser la fonction getPlugin(nomDeVotrePlugin sans "plugin_")
retourne une instance de votre plugin

Code


<?php 
$plugin
=getPlugin('nomDeVotrePlugin');
$plugin->maMethode();
 
?>


Un export excel (csv pour etre exact)

Dans votre fichier action par exemple module/article/action.php

Code


<?php 
$articleTab
=getInstance('Article')->find();

$tpl=getInstanceTpl();
$tpl->assign('articleTab',$articleTab);
$tpl->display('liste_article_csv');
//on envoi le resultat au layout download avec comme variable "fichier"
//ou on definit le nom du fichier qui sera force a telecharger
$tpl->send('download?fichier=test.csv');
 
?>


Dans la vue module/article/tpl/liste_article_csv.php

Code


<?php 
$tableau
=new CSV;
    
$tableau->addLigne();
        
$tableau->addCase'ID' );
        
$tableau->addCase'TITRE' );
        
    foreach(
$articleTab as $article){
        
        
$tableau->addLigne();
            
$tableau->addCase$article->id );
            
$tableau->addCase$article->titre );
    
    }
echo 
$tableau->getTable();
    
 
?>


Recuperer le nom du module

Ce framework utilise une variable contenant le couple module::action
Pour recuperer juste le nom du module

Code


<?php 
echo getVarModule();
 
?>


Recuperer le nom de l'action

Ce framework utilise une variable contenant le couple module::action
Pour recuperer juste le nom de l'action

Code


<?php 
echo getVarAction();
 
?>


Recuperer la variable de navigation

Ce framework utilise une variable contenant le couple module::action
Pour recuperer juste le nom du module

Code


<?php 
echo getVarNavigation();
 
?>


Faire un lien vers l'action liste du module article

Pour creer un lien vers un couple module / action
Ecrivez un

Code


<?php 
//sans parametre
echo HTML::getLink('Mon lien','article::liste');

//avec parametre (par exemple edition id 2)
echo HTML::getLink('Mon lien editer article numero 2','article::editer&id=2');
 
?>