<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum CakePHP.org.pl - Dynamicznie generowany CSS w kejku]]></title>
		<link>http://forum.cakephp.org.pl/topic/55/dynamicznie-generowany-css-w-kejku/</link>
		<description><![CDATA[Najświeższe odpowiedzi w Dynamicznie generowany CSS w kejku.]]></description>
		<lastBuildDate>Thu, 09 Apr 2009 08:29:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Dynamicznie generowany CSS w kejku]]></title>
			<link>http://forum.cakephp.org.pl/post/255/#p255</link>
			<description><![CDATA[<p>Mam nadzieje, ze taka oczywista oczywistosc pomoze komus zaoszczedzic troche czasu.<br />Na przykladzie kontrolera PagesController, zalozmy ze tworzymy strone z profilami graczy - kazdy profil bedzie sie nieco roznic, a roznice np jak obrazek w &quot;topi`e&quot;, czy kolor czcionki mozna zdefiniowac w panelu admina i zapisac do bazy... W kazdym badz razie nie chcemy tego zapisywac jako osobnych plikow w katalogu webroot/css, nie chcemy tez przekazywac zadnych parametrow do includowanego pliku get&#039;em ( ze wzgledu na ograniczona ilosc znakow jakie mozna przeslac&nbsp; przez get w poszczegolnych przegladarkach)</p><br /><p>w kontrolerze definiujemy metode css :<br /></p><div class="codebox"><pre><code>public function css() {
         /**
          * Upewniamy sie ze informace wyswietlane przez debug nie rozwala nam szablonu css. Akurwat tego kawalka nie mialem  czasu
          * optymalizowac, przemyslec , wybralem pierwsze dzialajace rozwiazanie (w tej chwili)
          */
         Configure::write(&#039;debug&#039;,0);

         /**
          * Data ostatniej aktualizcji jednego z elementow szablonu (select modified ..... order by modified DESC limit 1) 
          * Potrzebna do ustawienia parametrow cache przegladarki  dla pliku css 
          */
         $templateModified;

         /**
          * Wygenerowany wczesniej kod css, z zamienionymi wartosciami domyslnymi na te zczytane w bazie, najelpiej wygenerowac w modelu.
          */
          $generatedCss;

         /**
          * Wysylamy naglowki do przegladarki, jedyny wymagany to ten drugi (Content-Type)
          */
     e(header(&quot;Date: &quot; . date(&quot;D, j M Y G:i:s &quot;, $templateModified) . &#039;GMT&#039;));
         e(header(&quot;Content-Type: text/css&quot;));
         e(header(&quot;Expires: &quot; . gmdate(&quot;D, j M Y H:i:s&quot;, time() + DAY) . &quot; GMT&quot;));
     e(header(&quot;Cache-Control: cache&quot;)); // HTTP/1.1
     e(header(&quot;Pragma: cache&quot;));        // HTTP/1.0

         /* Ewentualnie mozna jeszcze &quot;skompresowac&quot; wygenerowany kod css */
         /* http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php */
         /* remove comments */
         $generatedCss = preg_replace(&#039;!/\*[^*]*\*+([^/][^*]*\*+)*/!&#039;, &#039;&#039;, $generatedCss);
         /* remove tabs, spaces, newlines, etc. */
         $generatedCss = str_replace(array(&quot;\r\n&quot;, &quot;\r&quot;, &quot;\n&quot;, &quot;\t&quot;, &#039;  &#039;, &#039;    &#039;, &#039;    &#039;), &#039;&#039;, $generatedCss);

         die(e($generatedCss));


}</code></pre></div><p>linkujemy to to w ten sposob<br />&lt;link rel=&quot;stylesheet&quot; href=&quot;/pages/css&quot; type=&quot;text/css&quot; media=&quot;all&quot; /&gt;</p>]]></description>
			<author><![CDATA[null@example.com (robal77)]]></author>
			<pubDate>Thu, 09 Apr 2009 08:29:49 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/post/255/#p255</guid>
		</item>
	</channel>
</rss>

