FAQ PHP
FAQ PHPConsultez toutes les FAQ
Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021
- 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 ?
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 : 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.
$template
=
new clsTinyButStrong();
Un gabarit VTemplate s'écrit en HTML :
$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
'
]
);
}
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.
$subjects
=
array();
$result
=
mysql_query($sql
[
'
subjects
'
]
);
while($subject
=
mysql_fetch_assoc($result
))
{
$sujects
[]
=
$subject
;
}
$template
->
MergeBlock('
subject
'
,
$subjects
);
$template
->
MergeBlock('
subject
'
,
$resource
,
'
SELECT id, title FROM subject
'
)
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]
'
);
}
}
$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
);
}
}
{$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}