[CSS] Et "site à la con"

Et "site à la con" [CSS] - HTML/CSS - Programmation

Marsh Posté le 21-01-2005 à 11:01:25    

Dans ma société, nous utilisons un outil de CMS développé en interne.
Les premières lignes datant de 3/4 ans, ils n'est pas prévu pour gérer des CSS dynamiquement. Normalement, il bosse avec des tables dans tous les sens (la bonne vieille méthode de goret quoi).
 
Nous profintons d'un nouveau développement pour nous mettre "vraiment" au XHTML/CSS. Le soft de CMS a été légèrement modifié afin de ne plus générer de tableaux, mais par contre, le module d'édition CSS à la volée est trop complexe pour être écrit maintenant.
 
Le site en question nous pose un problème de taille.
D'un point de vue créa, il n'y a qu'une dizaine de layouts différents pour les pages. Par contre, chaque rubrique utilise son propre set de couleurs (et background images).
 
Donc, premier problème, on ne peut pas modifier à la volée la CSS. Donc, l'idée d'inclure une CSS en PHP, modifiée à la volée selon la rubrique en cours (couleurs, etc.) est impossible.
 
Pire, on ne peux pas associer une CSS différente pour chaque page.
 
Bref, actuellement, on se trouve avec une CSS "énorme", et les templates de pages (identiques d'un point de vue structurels d'une rubrique à l'autre) sont dupliqués pour utiliser des id différens aux éléments afin de retrouver les styles dédiés à la rubrique.
 
Je viens de proposer un truc pour limiter les dégats :
-> inclure une CSS "générique" (définition des styles qui sont identiques d'une rubrique à l'autre)
-> include une CSS par rubrique (avec les définitions de tous les éléments propores aux rubriques, avec comme suffix le nom de la rubrique).
 
L'intérêt de ce système, c'est de :
-> Pouvoir rapidement retrouver et modifier un style précis, en utilisant des fichiers plus petits.
-> N'avoir qu'à dupliquer un fichier CSS puis le modifier pour créer un set de styles pour une nouvelle rubrique.
 
Mais bon, ça reste pas top...
 
Est-ce que vous avez déjà eu ce genre de problématique ? Quelle solution pourrions-nous mettre en place pour améliorer la chose ?
 
Je rappelle : pas de PHP possible dans le code : les pages sont générées automatiquement (et en plus c'est des fichiers HTML statique qui sont générés)


Message édité par Arjuna le 21-01-2005 à 11:02:01
Reply

Marsh Posté le 21-01-2005 à 11:01:25   

Reply

Marsh Posté le 21-01-2005 à 11:06:19    

des fois, mieux vaut tout casser et refaire qu'essayez de maintenir un truc bancal qui va etre tres couteux a l'utilisation et a la maintenance...

Reply

Marsh Posté le 21-01-2005 à 11:12:26    

Non, le truc n'est pas coûteux ni à l'utilisation, ni à la maintenance.
 
Actuellement, ma boîte emploie un certain nombre de personnes non qualifiées, et qui mettent en ligne jusqu'à 50 pages par jour. Va mettre 50 pages en lignes dans la journée en les tapant à la main toi (chaque page ayant des spécificités).
 
La question n'est pas de savoir si on utilise ou pas notre CMS, mais de comment s'en sortir avec le XHTML + CSS pour en tirer partie.
 
Comme leur nom l'indique, y'a pas de notion de PHP dans ces deux normes, donc on devrait très bien pouvoir trouver des trucs pour améliorer la choses en se passant de développement. La solution sur laquel on est parti actuellement est déjà pas mal.

Reply

Marsh Posté le 21-01-2005 à 14:27:18    

Ce que tu peux faire c'est "eduquer" les utilisateurs.
On va faire simple, imaginons que tu n'as qu'un style qui est integre dans tes pages, le style de base commun a tout le monde.
Ce que tu peux faire apres, c'est montrer aux utilisateurs qui ecrivent les pages comment faire pour "importer" le style de la categorie.
Ils doivent faire qqch comme ca :

Code :
  1. <style type="text/css">
  2. @import(chemin/versle/style.css);
  3. </style>


 
Avec cette methode tu peux maintenir tes fichiers sur le serveur.
Bon cette methode fonctionne a condition que tes utilisateurs creent entierement la page en html.
Par contre si c'est le cms qui cree la page dynamiquement tu peux essayer de "hacker" le code de gestion des categories afin qu'il integre ce code en fonction de la categorie.

Reply

Marsh Posté le 21-01-2005 à 14:29:45    

=> Le souci, c'est que le CMS ne gère que le contenu de la balise body [:spamafote]
 
Mais je vais voir en effet ce qu'on peut faire avec ça.

Reply

Marsh Posté le 21-01-2005 à 14:41:37    

Bon, je crois qu'on va laisser tomber en fait, et on va garder le système mis en place.
 
J'essaie de comprendre comment marche le bignou, et à priori, y'a pas moyen de faire les bidouilles que j'aimerais permettre de faire.
 
Je pensais faire le bourrin et inclure la CSS depuis un JS par exemple, mais même ça, on ne peut pas. Parceque le JS serait un include, mais l'appli ne permet que de faire des includes globaux à tout le site, et non pas une branche de l'arboressence. Le reste, c'est des blocs (donc modifiable par le client) et surtout, ils ne sont pas héritables, donc il faudrait penser à le remettre à chaque fois qu'on crée une page... Un peu bordelique.

Reply

Marsh Posté le 21-01-2005 à 17:07:05    

Ca serait gérable avec une feuille de style unique (potentiellement ensuite éclatée en feuilles filles pour faciliter la maintenance), et avec une classe appliquée à la balise body pour chaque rubrique du site.
 
Dans le HTML:

Code :
  1. <body class="rubrique1">
  2. ...
  3. </body>


 
Dans la CSS:

Code :
  1. body.rubrique1 { /* règles héritées spécifiques à la page */  }
  2. body.rubrique1 p, body.rubrique1.blockquote { ... }


 
Ca va faire des CSS un peu plus grosses que la normale, mais elles ne nécessitent qu'un seul include dans le header.


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 21-01-2005 à 17:26:01    

En effet, c'est une bonne idée :jap:
 
Sinon, après discussion avec une personne qui s'occupe de la maintenance de l'outils, il va nous permettre d'appeler une CSS particulière selon la rubrique finalement.
 
En mixant ces deux éléments, on devrait pouvoir réduire considérablement la nombre de styles.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed