<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum CakePHP.org.pl - Dynamicznie generowany CSS w kejku]]></title>
	<link rel="self" href="http://forum.cakephp.org.pl/feed/atom/topic/55/"/>
	<updated>2009-04-09T08:29:49Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.cakephp.org.pl/topic/55/dynamicznie-generowany-css-w-kejku/</id>
		<entry>
			<title type="html"><![CDATA[Dynamicznie generowany CSS w kejku]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/255/#p255"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[robal77]]></name>
				<uri>http://forum.cakephp.org.pl/user/143/</uri>
			</author>
			<updated>2009-04-09T08:29:49Z</updated>
			<id>http://forum.cakephp.org.pl/post/255/#p255</id>
		</entry>
</feed>

