Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
logo
Sommaire > Templates > TinyButStrong
        Qu'est-ce que TinyButStrong ?
        Comment installer TinyButStrong ?
        Comment instancier TinyButStrong ?
        Quelle est la syntaxe d'un gabarit TinyButStrong ?
        Comment envoyer une variable au template avec TinyButStrong ?
        Comment répéter un bloc du gabarit avec TinyButStrong ?
        Comment placer un bloc dans un autre (imbrication) avec TinyButStrong ?



Qu'est-ce que TinyButStrong ?
auteur : Guillaume Rossolini
fr 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.

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

Comment installer TinyButStrong ?
auteur : Guillaume Rossolini
Télécharger l'archive compressée depuis le site officiel et la décompresser sur le serveur.


Comment instancier TinyButStrong ?
auteur : Guillaume Rossolini
$template = new clsTinyButStrong(); 

Quelle est la syntaxe d'un gabarit TinyButStrong ?
auteur : Guillaume Rossolini
Un gabarit VTemplate s'écrit en HTML :
    <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}" />

Comment envoyer une variable au template avec TinyButStrong ?
auteur : Guillaume Rossolini
$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']);
}
    <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}" />

Comment répéter un bloc du gabarit avec TinyButStrong ?
auteur : 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) :
$subjects = array();
$result = mysql_query($sql['subjects']);
while($subject = mysql_fetch_assoc($result))
{
    $sujects[] = $subject;
}
$template->MergeBlock('subject', $subjects);
Script PHP (requête SQL) :
$template->MergeBlock('subject', $resource, 'SELECT id, title FROM subject')
Gabarit :
{$subject;block=begin}
    <div class="bloc_cours">
        <div class="titre_cours">{$subject.title}</div>
    </div>
    <br />
    <br />
{$subject;block=end}

Comment placer un bloc dans un autre (imbrication) avec TinyButStrong ?
auteur : Guillaume Rossolini
Script PHP (array) :
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) :
$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 :
{$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}


Consultez les autres F.A.Q.


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

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com