IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ bibliothèques et extensions PHP

FAQ bibliothèques et extensions PHPConsultez toutes les FAQ

Nombre d'auteurs : 7, nombre de questions : 71, dernière mise à jour : 16 juin 2021 

 
OuvrirSommaireTemplatesTinyButStrong

TinyButStrong (TBS) est un moteur de templates écrit en PHP.

L'idée avec TinyButStrong est de réutiliser autant que possible tout le code existant, que ce soit du PHP ou du HTML.

Créé le 1er juin 2007  par Guillaume Rossolini

Lien : Qu'est-ce qu'un template ?
Lien : Quel est le principe de fonctionnement d'un template ?
Lien : Quels sont les principaux systèmes de template ?
Lien : Comparatif : Découverte des principaux moteurs de template en PHP, par Guillaume Rossolini
Lien : TinyButStrong

Télécharger l'archive compressée depuis le site officiel et la décompresser sur le serveur.

Créé le 12 juillet 2007  par Guillaume Rossolini
 
Sélectionnez
$template = new clsTinyButStrong();
Créé le 12 juillet 2007  par Guillaume Rossolini

Un gabarit VTemplate s'écrit en HTML :

 
Sélectionnez
    <meta name="generator" content="{$meta_generator}" />
    <meta name="description" content="{$meta_description}" />
    <meta name="keywords" content="{$meta_keywords}" />
    <meta name="MS.LOCALE" content="{$meta_mslocale}" />
Créé le 12 juillet 2007  par Guillaume Rossolini
 
Sélectionnez
$result = mysql_query('SELECT name, value FROM header') or die(mysql_error());
while($meta = mysql_fetch_assoc($result))
{
    $template->MergeField('meta_'.$meta['name'], $meta['value']);
}
 
Sélectionnez
    <meta name="generator" content="{$meta_generator}" />
    <meta name="description" content="{$meta_description}" />
    <meta name="keywords" content="{$meta_keywords}" />
    <meta name="MS.LOCALE" content="{$meta_mslocale}" />
Créé le 12 juillet 2007  par Guillaume Rossolini

TBS peut remplir le gabarit directement à partir d'une requête SQL, si vous utilisez l'un des SGBD supportés. Ce n'est pourtant pas recommandé, dans la mesure où cela peut faire double emploi avec votre classe d'ORM par exemple.

Script PHP (array) :
Sélectionnez
$subjects = array();
$result = mysql_query($sql['subjects']);
while($subject = mysql_fetch_assoc($result))
{
    $sujects[] = $subject;
}
$template->MergeBlock('subject', $subjects);
Script PHP (requête SQL) :
Sélectionnez
$template->MergeBlock('subject', $resource, 'SELECT id, title FROM subject')
Gabarit :
Sélectionnez
{$subject;block=begin}
    <div class="bloc_cours">
        <div class="titre_cours">{$subject.title}</div>
    </div>
    <br />
    <br />
{$subject;block=end}
Créé le 12 juillet 2007  par Guillaume Rossolini
Script PHP (array) :
Sélectionnez
if($template->MergeBlock('subject', 'array', 'subjects') > 0)
{
    if($template->MergeBlock('category', 'array', 'subjects[%p1%][categories]') > 0)
    {
        $template->MergeBlock('tutorial', 'array', 'subjects[%p1%][categories][%p2%][tutorials]');
    }
}
Script PHP (requête SQL) :
Sélectionnez
$sql = 'SELECT id, title
        FROM subject';
if($template->MergeBlock('subject', $resource, $sql) > 0)
{
    $sql = 'SELECT id, title
            FROM category
            WHERE subject_id = %p1%';
    if($template->MergeBlock('category', $resource, $sql) > 0)
    {
        $sql = 'SELECT id, uri, title, description
                FROM tutorial
                WHERE category_id = %p2%';
        $template->MergeBlock('tutorial', $resource, $sql);
    }
}
Gabarit :
Sélectionnez
{$subject;block=begin}
    <div class="bloc_cours">
        <div class="titre_cours">{$subject.title}</div>
    {$category;block=begin;p1={$subject.id}}
        <div class="categorie_cours">{$category.title}</div>
        <div class="liste_cours">
            <ul>
        {$tutorial;block=begin;p1={$subject.id};p2={$category.id}}
                <li>
                    <a href="{$tutorial.uri}">{$tutorial.title}</a> : {$tutorial.description}
                </li>
        {$tutorial;block=end}
            </ul>
        </div>
        <hr />
    {$category;block=end}
    </div>
    <br />
    <br />
{$subject;block=end}
Créé le 12 juillet 2007  par Guillaume Rossolini

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.