If condition en html
RésoluHerve_be Messages postés 1123 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
dans certains scripts html je vois parfois des tags par exemple dans phpBB
`<!-- IF ALBUM_DESC --><div>{ALBUM_DESC}</div><!-- ENDIF -->
Qu'est-ce qui fait que la condition IF est bien exécutée alors qu'en html <!-- --> indique un commentaire ?
Je ne trouve pas de description de cette syntaxe en html.
- If condition en html
- Excel cellule couleur si condition texte - Guide
- Editeur html - Télécharger - HTML
- Espace en html ✓ - Forum HTML
- [**] Balise pour un espace vide en hml. Merci ✓ - Forum Webmastering
- Excel condition ou - Guide
3 réponses
Bonjour,
Comme j'avais la flemme de rédiger une explication, je me suis permis de passer par chatgpt.
Et donc :
ce n'est pas du HTML standard, mais une syntaxe de moteur de template utilisée par phpBB, qui repose sur un moteur appelé TemplateEngine (basé sur une version personnalisée de la syntaxe de Template de phpBB).
Comment ça marche ?
phpBB parse les fichiers
.html
à l’aide de son propre moteur de template. Avant que le navigateur voie quoi que ce soit, le moteur PHP de phpBB interprète ces directives de contrôle, comme<!-- IF ... -->
,<!-- ELSE -->
, etc., et génère du HTML "pur" que le navigateur pourra afficher.Donc ce n'est pas le navigateur ou le HTML qui comprend ces
<!-- IF ... -->
, c’est phpBB côté serveur qui les transforme en code HTML standard.
Hello,
Comme le dit jordane45 / chatGPT, il n'y a pas de IF (ou plus généralement de bloc algorithmiques en HTML) : c'est une syntaxe propre à PhpBB.
De manière générale, quand l'affichage est soumis a une conditions, celle-ci doit être résolue :
- soit par le client (le navigateur), typiquement avec du javascript ou du CSS
- soit par le serveur web, typiquement grâce à PHP
Si de plus, ton site web est réalisé avec un outil particulier (ici PhpBB), rien n'empêche de définir dans les messages des balises dédiées pour définir des blocs algorithmiques dans ce qui est sensé être de l'HTML pur. Charge alors à l'outil en question de traiter (dans son code, disons écrit en PHP) de faire ce qu'il est supposé faire.
L'idée est ici de pouvoir définir un squelette de page dépendant de certaines conditions, et de pouvoir exprimer ces conditions sans recourir à PHP. D'ailleurs, de la même manière {ALBUM_DESC} n'est pas de l'HTML non plus. Cette balise est la aussi substituée par PhpBB, avec la valeur adéquate, grâce à son code écrit en PHP. La syntaxe ainsi définie pour écrire un squelette est ainsi :
- nécessaire et suffisante pour pouvoir faire ce qu'on a envie de faire dans un squelette ;
- moins forte que ce qu'on pourrait faire en PHP dans l'absolu (pour éviter que des squelettes susceptibles de casser le site puissent être écrit) ;
- plus accessible pour quelqu'un qui ne sait pas faire de PHP/HTML (notamment pour récupérer les valeurs des variables).
Quand un client visite une page, soumise à un tel squelette est visitée :
- PhpBB récupère le squelette associé à la page et les données qui lui sont associé (par exemple, des données stockées dans une base de données, dans ton exemple une description d'album)
- PhpBB traite les balises PhpBB par ce qu'il faut :
- suppression des blocs dont les conditions ne sont pas satisfaites
- substitution des valeurs entre accolades sont substituées
- PhpBB retourne au navigateur le résultat (qui ne contient donc plus que du HTML, et éventuellement du CSS et du JS)
- Le navigateur évalue le CSS/JS/HTML fait le rendu la page, sans même avoir conscience de tout ce que PhpBB a pu faire en amont.
Bonne chance
Merci à chatgpt, je n'ai pas encore le réflexe d'y poser mes questions, quand une majorité l'aura les forums deviendront obsolètes ce qui est bien dommage.
Donc ce moteur PHP de phpBB se trouve sur mon serveur (où pourrait-il être d'autre) : sous quelle forme (comme je suis ici je n'ai pas le courage de demander au chat) ?
Oui, le moteur de template est intégré au code de phpbb.
Au même titre que tu pourrais avoir TWIG comme moteur de template dans un projet symfony par exemple.
Il existe différents moteurs de template que tu peux utiliser lorsque tu code des sites.
Ce sont des scripts (de librairies) qu'il faut installer puis utiliser dans tes codes.
Mais pourquoi ces questions ?
je ne sais pas dans quels fichiers je n'utilise pas phpbb.
pour le comment ça fonctionne..en gros.. au moment d'afficher le contenue de ta page, le fichier html est d'abord transmis à un script (php).
le script regarde son contenu, analysé à la recherche de mots clés (ou d'expressions) puis envoyé vers le navigateur réécrit en fonction de ce qu'il y a trouvé.
Je n'utilise pas phpbb .. mais bien d'autres .. et le fonctionnement est toujours le même.
Ton
merci de laisser la "parole" à ceux qui savent.
pourrait être mal interprété par quelqu'un de susceptible ..
qui ? moi ? oui un peu... :-)
Bref, les réponses t'ont été données par d'autres . j'espère que ça te convient.
PS: Ce qui m'étonne un peu, c'est ton manque de recherche par toi même.. car même sans passer par de l'IA ... de simples recherches sur internet t'auraient sûrement donné suffisamment d'infos pour essayer de comprendre par toi même.(ne serait-ce que la documentation officielle).
Bref, après de brèves recherches, j'ai pu voir que phpbb dans ses versions les plus récentes utilise le moteur de template twig (ah tiens.. c'est justement celui que je t'avais cité).
Et enfin, pour revenir à une explication un peu plus détaillée correspondant à ta version de phpbb (qui utilise un moteur "maison" )
Détails du moteur de template "maison" de phpBB < 3.1 :
-
Situé principalement dans
includes/template.php
. -
Interprète des fichiers
.tpl
(dans le dossierstyles/ton_style/template/
). -
Utilise une syntaxe propre à phpBB, (comme celle que tu as montré)
-
Ne permet ni logique complexe, ni filtres avancés, ni extensions dans les templates.
-
Tout traitement est fait en PHP avant d’être injecté dans le template via
$template->assign_var()
ou$template->assign_block_vars()
.
Voila voila ...
Bonne continuation.