web-dev-qa-db-fra.com

Plusieurs styles sur un site Web

Je crée un Joomla! Site Web 3.x avec 3 styles différents en fonction du type de visiteur (principalement des différences de couleur et des modules différents affichés ou non):

  • Style bleu pour "personnes"
  • Style vert pour les petits magasins
  • Style rouge pour les grands magasins

Le site Web a également 2 langues mais le style ne changera pas selon elles.

Ma question est la suivante: quelle serait la meilleure pratique pour gérer ces styles?

Mes idées jusqu'ici:

  • Utilisez 3 modèles différents, cependant la seule différence entre eux est le css.
  • Utilisez un seul modèle avec tous les styles et créez (ou trouvez?) Un plugin pour prendre en charge (en session) une classe en fonction du choix du visiteur.
2
Shaz

Je suppose que les gens, les petits et les grands magasins, seront des groupes d'utilisateurs différents. Une approche simple et directe consiste donc à baser les variations de vos styles sur les groupes d'utilisateurs et la liste de contrôle d'accès.

1. Pour afficher différents modules: Vous pouvez créer des niveaux d'accès pour chaque groupe d'utilisateurs et affecter le module souhaité au niveau d'accès associé à chaque groupe d'utilisateurs.

2. Pour avoir différents styles/Schéma de couleurs (CSS): Vous pouvez créer 3 fichiers css supplémentaires, qui gèrent toutes les variations de style et les schémas de couleurs. Ensuite, dans votre modèle, vous pouvez rechercher le groupe d'utilisateurs de l'utilisateur actuel et appeler le fichier css relatif.

Comment accéder aux données de l'utilisateur

$user = JFactory::getUser(); //Get the current user object
$user->groups; //Returns an array with the ids of the usergroups of the user.



Alternative et approche un peu plus délicate pour attribuer les styles:
Vous pouvez sauvegarder les paramètres CSS/Scheme/Style dans votre modèle et créer 3 styles différents à partir du backend, ce qui déclenchera les règles CSS ou les fichiers correspondants pour le modèle. Ensuite, vous pouvez créer différents éléments de menu et leur donner un accès pour chaque groupe d'utilisateurs, puis affecter le style de modèle correspondant à ces éléments de menu.

1
FFrewin

Nous nous sommes battus dans le passé et, dans notre expérience, nous nous trouvons toujours en désordre. Nous l'avons donc abandonné pour une approche plus simple. Ensuite, nous avons trouvé une extension appelée Chameleon , qui allait faire exactement ce que nous voulions et ce que vous demandez, mais il était trop tard pour la mettre en œuvre dans notre projet. Je ne peux pas commenter sur la base de mon expérience personnelle, mais il semble très bien noté dans ses critiques et semble être assez puissant et flexible.

Chameleon detects:

★ Browser (IE v6, FF, iPhone, iPad, tablet, mobile etc; using Categorizr for smart detection)
★ Browser language
★ Date, time, time of day
★ Page type (article, category, front page etc)
★ Virtuemart page types, cart contents, categories & coupons
★ Hikashop page types, categories and specific items
★ K2 page types, categories, authors and more
★ User id and group, logged-in and logged-out users
★ Article id, section, category and tags (J3.x)
★ Component
★ Domain/sub-domain of your site
★ Page URL and HTTP referrer
★ Random probability
★ GeoIP detection of the guest’s city/country
★ All "children" of a given menu or menu item
★ Anything else you can detect with a snippet of PHP.
2
GDP