it-swarm.dev

Stili multipli su un sito Web

Sto creando un Joomla! 3.x sito web con 3 stili diversi in base al tipo di visitatore (principalmente differenze di colore e diversi moduli visualizzati o meno):

  • Stile blu per "persone"
  • Stile verde per piccoli negozi
  • Stile rosso per grandi negozi

Il sito web ha anche 2 lingue ma lo stile non cambierà in base a loro.

La mia domanda è: quale sarebbe la migliore pratica per gestire quegli stili?

Le mie idee finora:

  • Usa 3 modelli diversi, tuttavia l'unica differenza tra loro sarebbe il CSS.
  • Usa un unico modello con tutti gli stili su di esso e crea (o trova?) Un plugin per occuparti (in sessione) di una lezione in base alla scelta del visitatore.
2
Shaz

Immagino che le persone, piccoli e grandi negozi saranno gruppi di utenti diversi. Quindi un approccio semplice e diretto è quello di basare le variazioni dei tuoi stili sui gruppi di utenti e sull'ACL.

1. Per visualizzare diversi moduli: È possibile creare Livelli di accesso per ciascun gruppo di utenti e assegnare il modulo desiderato al livello di accesso associato di ciascun gruppo di utenti.

2. Per avere stili/combinazioni di colori (CSS) diversi: Puoi creare 3 file CSS aggiuntivi, che gestiranno tutte le variazioni di stile e le combinazioni di colori. Quindi nel modello è possibile verificare il gruppo utenti dell'utente corrente e chiamare il relativo file CSS.

Come accedere ai dati dell'utente

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



Approccio alternativo e un po 'più complicato per assegnare gli stili:
È possibile eseguire il back-end delle impostazioni CSS/Schema/Style nel modello e creare 3 stili diversi dal back-end, che attiveranno le corrispondenti regole CSS o file per il modello. Quindi è possibile creare diverse voci di menu e fornire loro l'accesso per ciascun gruppo utenti e assegnare lo stile di modello corrispondente a queste voci di menu.

1
FFrewin

Abbiamo combattuto questo in passato e nella nostra esperienza diventa sempre disordinato, quindi l'abbiamo abbandonato per un approccio più semplice. Successivamente, abbiamo trovato un'estensione chiamata Chameleon , che avrebbe fatto esattamente quello che volevamo e quello che stai chiedendo, ma era troppo tardi per implementarlo nel nostro progetto. Non posso commentare in base all'esperienza personale, ma sembra molto apprezzato nelle sue recensioni e sembra essere abbastanza potente e flessibile.

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