Dinamisks CSS ar mainīgajiem
16. November, 2007, 9:56 CSS, PHP, Web izstrādeŠādu pieeju vēl nebiju redzējis. Un jāatzīst - diezgan oriģināla pieeja. Tātad ideja ir tāda, ka būtu jauki, ja CSS failā varētu izmantot mainīgos. Pavisam vienkārši kā šajā piemērā (kopēts no oriģinālraksta):
/*
!TEXTCOLOUR #369
!BORDER 1px solid #369
*/
h1 { color: !TEXTCOLOUR; font-size: 1.1em }
p { color: !TEXTCOLOUR; font-style: italic }
div { color: !TEXTCOLOUR; border: !BORDER }
Lai tas viss darbotos, būs vajadzīgs speciāls PHP skripts, kas nopārsēs šo CSS failu un pados serverim. Tas viss ir vienkārši, bet šīs idejas elegantums slēpjas tur, ka klienta pusē CSS fails tiks tomēr pieprasīts, izmantojot oriģinālo nosaukum (piemēram, /styles/main.css). Kā jau attapīgākie noprata - būs jāizmanto mod_rewrite, kas izskatīsies aptuveni šāds (atkal ņemts no oriģinālraksts):
RewriteRule ^(.*)\.css$ /css_parser.php?css=$1.css [L]
Tātad, kā jau noprotams, css_parse.php (to varat apskatīt un iegūt oriģinālrakstā) būs tas skripts, kas veiks pārsēšanu un pados gatavu CSS pārlūkam.
Protams, dažs teiks, ka šāds risinājums vairāk noslogo serveri, kā arī izvirza lielākas prasības pret serveri (mod_rewrite), bet vai nu tas vienmēr ir tik nozīmīgi, ja runa iet par lielisku ideju ? :)
Tomēr esmu par 99.9% pārliecināts, ka nekad neizmantošu šo risinājumu, bet nekad jau nenāk par sliktu zināt, kas tas ir iespējams. :)


16. November, 2007, 11:00
Šāda koda ģenerēšana ar savu kodu (tb sava veida parsēšana) nav nekas jauns. Tas ir tikai normāli gribēt vienkāršāk nomainīt vienu vērtību n-vietās.
Var jau katru reizi neparsēt to failu, bet kešot rezultātu, piemēram, laižot to parsēšanas php skriptu offlainā un uz webu servējot statiksu, jau noparsētu, css failu.
16. November, 2007, 15:08
Piekrītu bubu, ka katru reizi parsēt būtu nežēlīgi, toties uzģenerēt css failu tikai izmaiņu gadījumā būtu pat ļoti vienkārši un viegli!
16. November, 2007, 16:03
h1 { color: ; font-size: 1.1em }
p { color: ; font-style: italic }
div { color: ; border: }
vienu reizi izlaizh caur php un gatavs.
var jau izmantot to ieprieksheejo metodi, bet man nepatiik, ka atkal tiek izmantota kaut kaada jauna valoda. taa pasha iemesla deelj manj nepatiik templeiti.
16. November, 2007, 16:06
http://paste.php.lv/6412/nonum
kods bija taads.
16. November, 2007, 23:47
Toč beztolks. Varbūt tikai izstrādes laikā, bet tad nafig mocīt mod_rewrite? Pieprasam parastu .php failu kurā padodam header(”Content-type: text/css”);