Dotclear

Ticket #858 (closed defect: wontfix)

Opened 16 years ago

Last modified 10 years ago

Appeler des fichiers CSS de la même façon que les fichiers template

Reported by: Moe Owned by: team
Priority: normal Milestone:
Component: module:themes Version: 2.1
Severity: normal Keywords:
Cc:

Description

Dotclear pourrait avoir une balise pour chercher les fichiers CSS dans le dossier du thème, dans le dossier du thème parent et enfin dans le thème par défaut. L'URL de la première feuille de style trouvée serait renvoyée par la fonction.

Par exemple, si on voudrait le fichier style.css :

<style type="text/css" media="print">
@import url({{tpl:GetCSSFile filename="style.css"}});
</style>

Avec ce code, un thème enfant pourrait remplacer le contenu du fichier style.css du thème parent. Je crois qu'actuellement ce n'est pas possible facilement.

Attachments

_public.php Download (1.4 KB) - added by Moe 16 years ago.
Un fichier _public.php avec le code

Change History

Changed 16 years ago by Moe

Un fichier _public.php avec le code

comment:1 Changed 16 years ago by Moe

J'ai ajouté une "preuve de concept" en fichier joint.

comment:2 Changed 16 years ago by Moe

Cette proposition était intéressante mais n'offrait pas plus de possibilités aux plugins. Il faudrait voir si les fichiers CSS peuvent être appelés avec la même logique que les fichiers template, c'est à dire d'abord dans le répertoire du thème, etc.

comment:3 Changed 15 years ago by xave

  • Owner changed from xave to team
  • Component changed from module:core to module:themes

comment:4 follow-up: ↓ 5 Changed 15 years ago by Tomtom33

@Moe: C'est quoi la finalité de la chose? Parce si tu adoptes une structure de thèmes "parent-enfant", c'est parce qu'en théorie, le thème enfant dépend beaucoup du thème parent donc de sa structure HTML et CSS. Je vois pas l'utilité de remplacer le style.css du thème parent.

comment:5 in reply to: ↑ 4 ; follow-up: ↓ 8 Changed 15 years ago by noe

@Tomtom33:

En l’état, la css du thème parent n’est pas prise en compte dans le thème enfant (sauf à faire une référence explicite type {{tpl:BlogThemeURL}}/../parent/style.css), du coup, je ne comprends pas ta remarque, Tomtom. Le principe actuel d’un thème enfant c’est de reprendre les fonctions (html, _public.php) du parent dans une css différente :-)

Quant à l’héritage de la css, j’avoue ne pas voir non plus ce que ça apporte précisément. Tu as une idée d’application, Moe ?

comment:6 follow-up: ↓ 7 Changed 15 years ago by Tomtom33

@Noe: Oui et non. Si le thème enfant reprend le _head.html du thème parent, la CSS est normalement inscrite dans ce fichier et est donc reprise.

comment:7 in reply to: ↑ 6 Changed 15 years ago by noe

@Tomtom33: Nope : si le _head.html contient la formule « normale » {{tpl:BlogThemeURL}}/style.css, c’est bien celle du thème en cours et pas celle du parent qui sera appelée (et heureusement, si tous les thèmes sans _head.html récupéraient la css du thème par défaut on serait bien embêtés).

comment:8 in reply to: ↑ 5 Changed 15 years ago by Moe

Replying to noe:

Quant à l’héritage de la css, j’avoue ne pas voir non plus ce que ça apporte précisément. Tu as une idée d’application, Moe ?

Si tu utilises cette balise dans ton thème parent, tu as juste à ajouter un fichier dans ton thème enfant pour qu'il remplace le ficheir du thème parent, sans avoir à toucher aux fichiers template. Par exemple, il suffirait de modifier le fichier print.css (contenu dans le thème par défaut) avec l'éditeur de thème pour que le fichier soit enregistré dans le thème et chargé, comme pour les fichiers template.

comment:9 Changed 15 years ago by xave

  • Milestone changed from 2.2 to 2.3

comment:10 Changed 14 years ago by bruno

  • Milestone 2.3 deleted

comment:11 follow-up: ↓ 12 Changed 13 years ago by franck

  • Status changed from new to closed
  • Resolution set to wontfix

Ça voudrait dire que tous les thèmes devraient utiliser cette fonction (ou balise) pour la gestion des CSS afin de permettre aux thèmes enfants (y'en a beaucoup au fait dans la nature ?) de les surcharger.

Toujours pas convaincu de l'utilité réelle, surtout voyant qu'il n'existerait, à la sortie d'une release proposant cette balise, aucun thème (potentiel parent) adapté. Du coup aucun thème enfant ne pourrait en profiter. Bref ça renvoie son utilité à un futur que je sens lointain… Pas vous ?

Je ferme et on ré-étudiera la demande si le ticket est rouvert.

comment:12 in reply to: ↑ 11 Changed 13 years ago by zeiram

Replying to franck:

Toujours pas convaincu de l'utilité réelle, surtout voyant qu'il n'existerait, à la sortie d'une release proposant cette balise, aucun thème (potentiel parent) adapté. Du coup aucun thème enfant ne pourrait en profiter. Bref ça renvoie son utilité à un futur que je sens lointain… Pas vous ?

J'y vois un intérêt (mais assez anecdotique, il est vrai) : cela permettrait (si c'est accompagné des behaviours kivonbien) à un greffon comme publicCDN de déporter les fichiers de style vers un CDN. Car en l'état actuel, je ne vois pas comment faire pour que ce greffon puisse prendre en compte les données statiques des thèmes. Mais comme je l'ai indiqué, c'est assez anecdotique comme utilisation.

comment:13 Changed 13 years ago by franck

  • Status changed from closed to reopened
  • Resolution wontfix deleted

comment:14 Changed 13 years ago by franck

Du coup on offre la possibilité d'inclure n'importe quel fichier présent dans un des répertoires (ou sous-répertoires) en question (le code proposé par Moe n'est pas limité aux CSS).

On ouvre la porte à quoi exactement ?

comment:15 Changed 13 years ago by franck

  • Milestone set to A definir

comment:16 Changed 13 years ago by JcDenis

Perso, j'attendrai la branche Twig ;-)

comment:17 Changed 10 years ago by franck

  • Status changed from reopened to closed
  • Resolution set to wontfix
  • Milestone A definir deleted

Depuis on a la balise {{tpl:BlogParentThemeURL}} qui permet de récupérer la feuille de style du thème parent et comme il n'y a plus de notion de thème par défaut, en tout cas pas de feuille de style par défaut (remplacé par un jeu de template), ce ticket n'est plus d'actualité… sauf pour l'exemple du CDN indiqué par zeiram.

Bref, je ferme.

Note: See TracTickets for help on using tickets.

Sites map