Bon, j'ai un peu tourné ça dans tous les sens

On a des fichiers CSS (entres autres) qui contiennent des URLs vers des ressources (fichiers) fournies par Dotclear (ou des plugins tiers).

Ça peut être des images (pour le fond par exemple), des URLs pointant vers des polices de caractères, etc.

Or l’accès à ces ressources ne peut se faire directement depuis l’URL du blog (ou de l’administration), parce que les chemins réels sont dynamiques d’une installation à une autre.

On a donc un URL handler qui gère ce genre de demandes, en vérifiant au passage deux ou trois bricoles pour ne pas servir n’importe quoi :-)

Sauf que les URLs utilisées peuvent varier, comme en ce moment où on casse/reconstruit toute la hiérarchie du code de Dotclear.

Par exemple, ceci (avec la 2.26) :

@font-face {
  font-family: 'opendys';
  src: url('index.php?pf=a11yConfig/lib/css/fonts/opendyslexic-regular-webfont.woff2') format('woff2'),
    url('index.php?pf=a11yConfig/lib/css/fonts/opendyslexic-regular-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
body:not(.a42-ac-inv-contrast):not(.a42-ac-high-contrast):not(.a42-ac-text-img) #accessconfig.a11yc-vd button {
  background-image: url(index.php?pf=a11yConfig/img/visual-deficiency.svg), none;
}
body:not(.a42-ac-inv-contrast):not(.a42-ac-high-contrast):not(.a42-ac-text-img) #accessconfig.a11yc-wc button {
  background-image: url(index.php?pf=a11yConfig/img/wheelchair.svg), none;
}

Deviendra cela (avec la 2.27) :

@font-face {
  font-family: 'opendys';
  src: url('index.php?process=Home&pf==a11yConfig/lib/css/fonts/opendyslexic-regular-webfont.woff2') format('woff2'),
    url('index.php?process=Home&pf==a11yConfig/lib/css/fonts/opendyslexic-regular-webfont.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
body:not(.a42-ac-inv-contrast):not(.a42-ac-high-contrast):not(.a42-ac-text-img) #accessconfig.a11yc-vd button {
  background-image: url(index.php?process=Home&pf==a11yConfig/img/visual-deficiency.svg), none;
}
body:not(.a42-ac-inv-contrast):not(.a42-ac-high-contrast):not(.a42-ac-text-img) #accessconfig.a11yc-wc button {
  background-image: url(index.php?process=Home&pf==a11yConfig/img/wheelchair.svg), none;
}

En détail url(index.php?pf= devient url(index.php?process=Home&pf=.

J’avais pensé à :

  • utiliser des variables CSS initialisées avec un script JS, lui-même récupérant les infos utiles via un behavior PHP, mais il y a des cas où ça arrive trop tard (comprendre après le chargement du fichier CSS)
  • modifier à la volée le contenu du fichier servi, mais ça va ralentir passablement les délais de réponse
  • gérer ce genre de fichier comme des fichiers PHP, ce qui permettrait d’insérer du code pour récupérer dynamiquement les URLs, sauf que c’est une jolie porte d’entrée pas trop sécurisée.

Bref, je me demande si on ne va pas simplement basculer les URLs sous leurs nouvelles formes dans les fichiers CSS vu que ça ne risque pas de changer tous les jours…

Suffit de faire un remplacement avec son éditeur de code favori, à la nuance près que ça ne sera compatible qu’avec la prochaine version de Dotclear (2.27).

PS : Peut-être qu’une nouvelle idée me viendra dans quelques jours, mois, années… Qui sait !

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15748

Haut de page