Autor | Zpráva | ||
---|---|---|---|
Actimel Profil |
#1 · Zasláno: 1. 5. 2012, 22:36:31
Zdravím,
přemýšlím, jak nejlépe udělat stránku, která bude mít nadefinované styly externě a na webu v administraci se budou dát měnit (např. na webu v administraci změníte z bílého pozadí na černé a to se změní ve stylech, aby to tak viděli všichni návštěvníci) jediné co mě napadá, jak by to mohlo jít je udělat např. soubor styles.php, kde bych ty ruzné hodnoty tahal z databáze a pak bych includoval ten soubor do hlavičky (takže už by vpodstatě nebyly externě - to by nevadilo, hlavně ať je to v souboru zvlášť). Doufám, že si dokážete představit, co tím myslím a budu rád za vaše nápady na efektivnější řešení. |
||
Str4wberry Profil |
#2 · Zasláno: 1. 5. 2012, 22:56:25
Napadají mě dvě možnosti. Jedna je generovat CSS soubory (je třeba dát pozor na kešování) na základě určitých parametrů. Druhá je mít jeden soubor s možnostmi vzhledů a dle nastavení přidat třídu třeba pro
<html> a ve společném CSS souboru:
html.jménoTřídy element {vlastnosti} Záleží na způsobu kolik a jak často se toho bude měnit. Můžeš také používat více CSS souborů, i když z důvodu rychlostní optimalisace bych to nedoporučoval. |
||
Actimel Profil |
#3 · Zasláno: 1. 5. 2012, 23:00:34
no když jsem se nad tím ještě teď tak zamyslel tak nakonec nebude se to měnit tak často, aby každý návštěvník musel čekat na to, co mu vytáhne databáze, takže spíš asi přichází v úvahu to generování stylů, jen vůbec nevím, jak je vygenerovat..
|
||
nemeja Profil |
#4 · Zasláno: 1. 5. 2012, 23:07:17
a co třeba mít pro každou barvu styl a pak na základě podmínky upravovat cestu k css souboru, nebo generovat do hlavičky styly jen pro změnu dané barvy
|
||
Actimel Profil |
#5 · Zasláno: 1. 5. 2012, 23:11:49
mě se nejedná jen o jednu barvu :) v těch stylech bude třeba 50 tříd a nebudou tam jen barvy ale i jiný věci a než bych udělal kombinaci všech možných stylů.... to bych se radši oběsil :D
|
||
nemeja Profil |
#6 · Zasláno: 1. 5. 2012, 23:17:03
No tak na tu generaci bych si vytvořil objekt, kterej by si na základě údajů o nastavení z DB generoval části stylů a ty nakonec spojil do konečného výsledku -> zacachoval a pak načetl uživateli, při změně nastavení by se provedl nový cache.
|
||
Actimel Profil |
#7 · Zasláno: 1. 5. 2012, 23:23:01
k čemu je to zacachování? nestačí jen fopen() na otevření styles.css a fwrite() -em tam vypsat názvy tříd a vlastnosti?
|
||
Borius Profil |
#8 · Zasláno: 1. 5. 2012, 23:23:34
Actimel:
„… i jiný věci a než bych udělal kombinaci všech možných stylů.... to bych se radši oběsil“ Potom jedině podle rady [#2] Str4wberry – soubory CSS generovat. Ptáš se jak? Odpověď tamtéž: „na základě určitých parametrů“. |
||
nemeja Profil |
#9 · Zasláno: 1. 5. 2012, 23:32:11
Actimel:
„k čemu je to zacachování?“ Představ si, že by jsi musel pro každej refresh generovat znova a znova CSS. Takhle si ho pro danou konfiguraci vytvoříš jen jednou a pak budeš jen kontrolovat jestli existuje a rovnou nalinkuješ ten soubor ;) |
||
Actimel Profil |
#10 · Zasláno: 2. 5. 2012, 07:59:37
nemeja:
no, ale když to budu mít v administraci a vygeneruje se ten styles.css po tom, co kliknu na uložit, tak už se pak nic generovat znovu nemusí, změní se to jen tehdy, pokud někdo v administraci něco změní a uloží, nebo ne? Borius: tak to generování by šlo vyřešit tak, že vytáhnu ty vlastnosti ke každé třídě z databáze a pak foreach-em vygeneruji obsah styles.css, který následně do něj zapíšu, správně? |
||
Sir Tom Profil |
#11 · Zasláno: 2. 5. 2012, 08:28:43
Actimel:
Jednou již vygenerovaný soubor style.css se nemusí znovu generovat. Uživatel si jej jenom stáhne. Myšlenkový postup je takový: 1. uživatel si stáhne soubor style.css (musí existovat) - tím pro uživatele všechna práce končí 2. ty můžeš kdykoliv onen soubor style.css editovat - k tomu máš 2 možnosti: 2a - buď si sám ručně upravíš onen soubor style.css a nahraješ jej na server 2b - vytvoříš si nějakou webovou aplikaci, se kterou CSS upravíš - zde máš opět 2 možnosti 2bI - buď budeš editovat style.css přímo (v nějakém html editoru - např. TinyMCE) 2bII - nebo jej vygeneruješ za pomoci databáze Záleží na tobě, co chceš. Varianta 2. je nejpohodlnější a nejméně náročná nicméně musíš umět CSS. Varianta 2bII je zase na udělání nejvíce náročná, ale pro editaci a změnu stylů CSS znát nemusíš. Ať již použiješ jakýkoliv způsob, vždy bys měl na konci vytvořit nový style.css a umístit jej tam, odkud si jej uživatel může stáhnout (viz bod 1.). |
||
Str4wberry Profil |
#12 · Zasláno: 2. 5. 2012, 09:55:03
Kešováním jsem myslel to, že když se vygeneruje nový
styles.css , tak může mít uživatel nakešován ten starý a změny se mu neprojeví. Pokud by byl jeden soubor s všemi variantami, tak by se tohle řešit nemuselo. Pokud tedy soubor přegeneruješ, je vhodné změnit jeho URL, pod kterou se připojuje do stránky (třeba přidáním nějakého smetí typu ?verze=2 , aby se soubor stáhl znova).
Teoreticky výsledné CSS nikam do nového souboru ukládat nemusíš, výkonově zřejmě nebude problém mít styles.php , který vrátí CSS se specifickými styly přímo z databáze.
|
||
Actimel Profil |
#13 · Zasláno: 2. 5. 2012, 11:20:54
Sir Tom:
2bII je to, co se mé představě nejvíce blíží - protože by to mělo být uděláno tak, aby si web mohl v administraci upravit i úplně obyčejný uživatel internetu Str4wberry: a když zakážu kešování toho styles.css, bude to nějak v budoucnu na škodu? když ten styles.css bude mít řekněme 10kB, tak si myslím, že to vyjde na stejno, jestli pokaždé bude uživatel stahovat 10kB nebo bude čekat na script, který zjistí, jestli to bylo přegenerováno nebo ne.. |
||
Časová prodleva: 12 let
|
0