Ticket #1241 (closed defect: wontfix)
Les balises tpl:lang ne fonctionnent pas dans les widgets
Reported by: | kozlika | Owned by: | xave |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | module:core | Version: | 2.3 |
Severity: | normal | Keywords: | |
Cc: |
Description
Pour reproduire le bug (ou la feature ?), insérer dans un fichier template :
<tpl:Widget id="search"> <setting name="title">{{tpl:lang Tagada}}</setting> </tpl:Widget>
Le titre n'est pas affiché.
Change History
comment:2 Changed 14 years ago by bruno
Ca ne peut pas marcher comme ça. Les paramètres des widgets sont actuellement une verrue dans le balisage des templates. Seules des valeurs en dur sont tolérées. {{tpl lang Tagada}} ne renvoit pas la traduction de Tagada, mais le code php <?php echo ('Tagada'); ?>
S'il y a une l10n à mettre, je vois plutôt ça comme Mirovinben.
comment:3 Changed 14 years ago by kozlika
Tous les contenus textuels des templates acceptent des chaînes de traduction. Spa très logique qu'on ne puisse pas en placer là aussi je trouve.
comment:4 Changed 14 years ago by bruno
Aucune balise de bloc, excepté tpl:Widget, ne permet de définir des paramètres liés à cette balise dans son contenu. Cette approche est vraiment une verrue au système de templates.
Si je te dis que c'est en partie à cause du fait que les widgets retournent du code en dur, tu cries au complot/lobbying sur le ticket #1234 ? ;o)
comment:5 Changed 14 years ago by kozlika
Non ;-)
Je te l'ai dit, je suis partagée sur ce ticket 1234. Ce que je préférerais c'est que tout ce genre de binious soit visible pour l'utilisateur quand il est sur son admin de widgets et qu'il puisse reprendre la main s'il le souhaite (je n'ai pas trop réfléchi au truc, mais je vais le faire, en tout cas sur le plan fonctionnel, évidemment pas sur le plan du code... ;-))
comment:8 Changed 12 years ago by JcDenis
heu, je suis peut être bête mais pourant quand je lis les lignes 127 et 135 du fichier _public.php des widgets, je vois la possibilité de traduction avec tpl:lang ?! nan ?
cf la: https://hg.dotclear.org/dotclear/file/0eee9bcfc116/plugins/widgets/_public.php
comment:9 Changed 12 years ago by kozlika
Je ne sais pas ce qu'il y a dans le code, je sais juste que l'exemple là-haut ne fonctionne pas :)
comment:10 Changed 12 years ago by JcDenis
Ha oui effectivement le contenu de la balise "setting" est transformé par le moteur de template avant le widget, du coup on se retrouve avec du php, du xml, du texte, etc... comme titre (ou autres paramètres) du widget.
Ça va être compliqué la...
(Et les modifications apporté au code source date d'avant le HG donc je n'ai pas de point de repère des changements fait dans le moteur de template ni dans Widgets.)
comment:11 Changed 11 years ago by franck
Petit problème détecté dans le code _public.php des widgets à propos de la gestion des {{tpl:lang …}} :
En l'état, la fonction widgetHandler() reçoit un contenu dans lequel les {{tpl:lang …}} ont déjà été remplacés par le code idoine (les balises "valeurs" sont compilées avant les balises "blocs"), c'est à dire un "<?php echo (\'…\'); ?>
C'est aussi valable dans la fonction tplWidget()
Alors forcément ça va pas marcher très bien.
J'ai essayé de modifier ça pour remplacer le code généré (<?php echo…) mais sans réussir à pondre la bonne regexp.
comment:12 Changed 8 years ago by franck
- Status changed from new to closed
- Resolution set to wontfix
- Milestone A definir deleted
Ayant déjà constaté le pb, j'ai choisi de déporter la possibilité de traduction dans le source php de mes plugins, genre...