<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum CakePHP.org.pl - Model-Widok-Kontroler]]></title>
		<link>http://forum.cakephp.org.pl/</link>
		<description><![CDATA[Najświeże tematy w Forum CakePHP.org.pl.]]></description>
		<lastBuildDate>Thu, 29 Jul 2010 19:01:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Zmienna globalna dla controllera]]></title>
			<link>http://forum.cakephp.org.pl/topic/149/zmienna-globalna-dla-controllera/new/posts/</link>
			<description><![CDATA[<p>Witam, </p><p>Chciałbym ustawić globalnie zmienną &quot;$posted&quot; w controllerze(i wyświetlić ją w widoku), tak, aby w zależności od tego, czy post został napisany, dziś, wczoraj, czy też 5 dni temu wyświetlał się odpowiedni tekst.</p><p>Zrobiłem coś takiego:<br /></p><div class="codebox"><pre><code>    $today = date(&#039;Y-m-d&#039;);
    $d = date(&#039;d&#039;)-1;
    $yesterday = date(&#039;Y-m-&#039;.$d.&#039;&#039;);
    $hour =  substr($advertisment[&#039;Advertisment&#039;][&#039;date_posted&#039;], 11, 5);
    $posted = substr($advertisment[&#039;Advertisment&#039;][&#039;date_posted&#039;], 0, 10);</code></pre></div><div class="codebox"><pre><code>&lt;?php if($posted == $today) { echo &#039;Dzisiaj o &#039;.$hour.&#039;&#039;; } elseif($posted == $yesterday) { echo &#039;Wczoraj o &#039;.$hour.&#039;&#039;; } else { echo substr($advertisment[&#039;Advertisment&#039;][&#039;date_posted&#039;], 0, 16); } ?&gt;</code></pre></div><p>Jak zapisać to wszystko jako funkcję w controllerze i wyświetlać tylko jedną zmienną?</p><p>Czy funkcja ma być w beforefilter? Przy każdym warunku dać return i na końcu set zmienna, $zmienna?<br />Jeżeli tak to prosiłbym o przykładową funkcję bo coś mi nie wychodzi.</p><p>Pozdrawiam.</p>]]></description>
			<author><![CDATA[dummy@example.com (JaRo)]]></author>
			<pubDate>Thu, 29 Jul 2010 19:01:39 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/149/zmienna-globalna-dla-controllera/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Paginate i order]]></title>
			<link>http://forum.cakephp.org.pl/topic/150/paginate-i-order/new/posts/</link>
			<description><![CDATA[<p>Chcę zrobić paginację w categoriach (lista wpisów z danej kategorii), ale wywala mi błąd gdy wpisuję w order date_posted (w tabeli categories go nie ma, za to jest w tabeli advertisments) - zatem ustawiając paginate tak jak poniżej </p><div class="codebox"><pre><code>var $paginate = array(&#039;limit&#039; =&gt; 3, &#039;order&#039; =&gt; array(&#039;Advertisment.date_posted&#039; =&gt; &#039;desc&#039;));</code></pre></div><p>otrzymuję taki błąd</p><div class="codebox"><pre><code>SQL Error: 1054: Unknown column &#039;Advertisment.date_posted&#039; in &#039;order clause&#039;</code></pre></div><p>jak zatem odnieść się do pola date_posted w innej tabeli (tj. advertisments).</p><p>Pozdrawiam.</p>]]></description>
			<author><![CDATA[dummy@example.com (JaRo)]]></author>
			<pubDate>Thu, 29 Jul 2010 19:00:29 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/150/paginate-i-order/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Baza-Model-Relacje]]></title>
			<link>http://forum.cakephp.org.pl/topic/123/bazamodelrelacje/new/posts/</link>
			<description><![CDATA[<p>Witam, <br />dopiero zaczynam zabawę z CakePHP więc nie wiem wszystkiego. Mam pewien problem. Zacznę najpierw od bazy:<br /><a href="http://img28.imageshack.us/i/testkb.png/"><span class="postimg"><img src="http://img28.imageshack.us/img28/3646/testkb.th.png" alt="http://img28.imageshack.us/img28/3646/testkb.th.png" /></span></a><br />Tak mam ułożona bazę, stworzyłem sobie tak na szybko wykorzystując bake. Aktualnie tabele mam połączone w sposób:<br />1. Person model(dla tabeli People):<br /></p><div class="codebox"><pre><code>var $belongsTo = array(
        &#039;Type&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Type&#039;,
            &#039;foreignKey&#039; =&gt; &#039;type_id&#039;,
        ),
        &#039;Degree&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Degree&#039;,
            &#039;foreignKey&#039; =&gt; &#039;degree_id&#039;,
        ),
        &#039;Institute&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Institute&#039;,
            &#039;foreignKey&#039; =&gt; &#039;institute_id&#039;,
        )
    );</code></pre></div><p> <br />2. Type:<br /></p><div class="codebox"><pre><code>var $belongsTo = array(
        &#039;Habilitation&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Habilitation&#039;,
            &#039;foreignKey&#039; =&gt; &#039;habilitation_id&#039;,
        ),
        &#039;Professor&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Professor&#039;,
            &#039;foreignKey&#039; =&gt; &#039;professor_id&#039;,
        ),
        &#039;Doctor&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Doctor&#039;,
            &#039;foreignKey&#039; =&gt; &#039;doctor_id&#039;,
        )
    );

    var $hasMany = array(
        &#039;Person&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Person&#039;,
            &#039;foreignKey&#039; =&gt; &#039;type_id&#039;,
            &#039;dependent&#039; =&gt; false,
        )
    );</code></pre></div><p>3. i np professors:<br /></p><div class="codebox"><pre><code>var $hasMany = array(
        &#039;Type&#039; =&gt; array(
            &#039;className&#039; =&gt; &#039;Type&#039;,
            &#039;foreignKey&#039; =&gt; &#039;professor_id&#039;,
            &#039;dependent&#039; =&gt; false,
        )
    );</code></pre></div><p>pozostałe 2 doctors, habilitations są podobne(będą). Zadaniem moim jest aby przy tworzeniu nowej osoby(tabela People) zaznaczyć przypisanie do któreś z tych trzech D/P/H. Po to stworzyłem tabele types, tylko nie bardzo wiem czy dobrze relacje w cake utworzyłem. Zacząłem się zastanawiać czy do połączenie nie wykorzystać aftersave() gdzie po zapisaniu w tabeli osobnika ręcznie utworzyć połączenie do wybranej tabeli.</p><p>Jakby coś było niezrozumiałe to pytać wytłumaczę ;]</p>]]></description>
			<author><![CDATA[dummy@example.com (robal77)]]></author>
			<pubDate>Tue, 23 Feb 2010 08:29:07 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/123/bazamodelrelacje/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Jak policzyć ilość postów w danej kategorii?]]></title>
			<link>http://forum.cakephp.org.pl/topic/117/jak-policzyc-ilosc-postow-w-danej-kategorii/new/posts/</link>
			<description><![CDATA[<p>Witam,<br />jestem początkującym programistą i to mój drugi dzień z CakePHP. Dopiero co skończyłem tutorial jak napisać bloga.<br />Przejdźmy do problemu:</p><p>Dodałem tabelę <em>categories</em> o polach <em>id, title</em>.<br />W tabeli <em>posts</em> dodałem nowe pole <em>cat_id</em>.</p><p>Teraz wyświetlając kategorie chciałbym, aby obok nich wyświetlała się ilość postów do niej przypisanych. Jak to najprościej zrobić?</p><p>Próbowałem za pomocą takiego fragmentu kodu ale się nie udało:<br /></p><div class="codebox"><pre><code>    $this-&gt;Category-&gt;bindModel(array(&#039;hasMany&#039; =&gt; array(&#039;Post&#039;)));
    $posts = $this-&gt;Category-&gt;Post-&gt;find(&#039;count&#039;, array(&#039;conditions&#039; =&gt; array(&#039;cat_id&#039; =&gt; &#039;Category.id&#039;)));</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (Eliard)]]></author>
			<pubDate>Tue, 26 Jan 2010 14:16:17 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/117/jak-policzyc-ilosc-postow-w-danej-kategorii/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[paginate('Model.metoda')]]></title>
			<link>http://forum.cakephp.org.pl/topic/120/paginatemodelmetoda/new/posts/</link>
			<description><![CDATA[<p>Witam! Dopiero zaczynam swoją &quot;przygodę&quot; z cake&#039;kiem i oczywiście napotkałem na kilka trudności - mam nadzieję, że to forum okaże się pomocne <img src="http://forum.cakephp.org.pl/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>Tak jak w tytule: Używam metody paginate - w momencie kiedy chcę stronnicować zwykły model - wszystko jest ok. Niestety kiedy chciałbym stronnicować dane zwracane przez metodę (z tego samego modelu) to już nie działa tak jak powinno.</p><p>w skrócie:</p><div class="codebox"><pre><code>// wyswietla dane z modela
$this-&gt;set(&#039;data&#039;, $this-&gt;paginate(&#039;Model&#039;)); 

// wyswietla te same dane z modela jak wyżej, nawet jeśli metoda nie istnieje...
$this-&gt;set(&#039;data&#039;, $this-&gt;paginate(&#039;Model.method&#039;));</code></pre></div><br /><p>starałem się też ustawiać &#039;Model.method&#039; w public $paginate = array(...); ale bez rezultatu. Byłbym wdzięczny za pomoc!</p>]]></description>
			<author><![CDATA[dummy@example.com (.dex)]]></author>
			<pubDate>Sat, 02 Jan 2010 14:56:33 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/120/paginatemodelmetoda/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[deleteThreaded]]></title>
			<link>http://forum.cakephp.org.pl/topic/93/deletethreaded/new/posts/</link>
			<description><![CDATA[<p>Szukalem jakiegos zgrabnego rozwiazania (byc moze nie dokladnie i wynalazlem kolo poraz drugi)&nbsp; na usuwanie rekordow z drzewka opartego tylko o parent_id... (bez wag left i right) i splodzilem takich kilka metod modelu :</p><div class="codebox"><pre><code>        /**
         * Deletes tree element with all of his descendants.
         * @return boolean
         * @param array $records Results of find(&quot;threaded&quot;) query.
         * @param array $recordToDelete id of record to be deleted.
         * @param mixed $model Instance of model or null. When null this object will be used.
         */
        public function deleteAllThreaded($records,$recordToDelete,$model =null)
        {
            $flatArray = array(); 
            if(is_null($model))
            {
                $model = $this;
            }
            $this-&gt;toSingleDimmension($flatArray, $records,$model-&gt;name);
            $toDelete[] = $recordToDelete;
            $this-&gt;findChildren($toDelete,$flatArray,$recordToDelete);
            $model-&gt;deleteAll(array(&quot;id&quot; =&gt; $toDelete));
            
            return true;
        }
        
        /**
         * Makes multidimensional array falt. 
         * Recurrent helper method.
         * @param array $flatArray Destination array.
         * @param array $data Multidimensional array.
         * @param string $model Model name.
         */
        private function toSingleDimmension(&amp;$flatArray, $data, $modelName)
        {    
            foreach($data as $record)
            {                        
                $flatArray[] = $record[$modelName];
                if(!empty($record[&quot;children&quot;]))
                {            
                    $this-&gt;toSingleDimmension($flatArray, $record[&quot;children&quot;],$modelName);
                }
            }
        }
        
    /**
     * Searches all given records to the bottom, for children with given $parentId
     * Recurrent helper method.
     * @param array $toDelete stack for ids of record to be deleted.
     * @param array $records falt array which contains flat array created from results of find(&quot;threaded&quot;).
     * @param integer $parentId id of parent to search for.
     */
    private function findChildren(&amp;$toDelete,$records,$parentId)
    {
        foreach($records as $record)
        {
            if($record[&quot;parent_id&quot;] == $parentId)
            {
                $toDelete[] = $record[&quot;id&quot;];
                $this-&gt;findChildren($toDelete,$records,$record[&quot;id&quot;]);                
            }
        }
    }</code></pre></div><p>Wsie metody powinny sie znadywac w modelu lub w app model.</p><p>pryklad uzycia ....</p><div class="codebox"><pre><code>        public function deleteTreeElement($data)
        {
            $TemplateMenuItem = $this-&gt;getModelObject(&quot;TemplateMenuItem&quot;);
            $records = $TemplateMenuItem-&gt;find(&quot;threaded&quot;);
            
            $this-&gt;deleteAllThreaded($records,$data[&quot;elementId&quot;], $TemplateMenuItem);
                       ....
                 }</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (robal77)]]></author>
			<pubDate>Wed, 05 Aug 2009 16:08:44 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/93/deletethreaded/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Wyznaczanie wydajności pracy maszyn w zadanych okresach]]></title>
			<link>http://forum.cakephp.org.pl/topic/90/wyznaczanie-wydajnosci-pracy-maszyn-w-zadanych-okresach/new/posts/</link>
			<description><![CDATA[<p>Witam,<br />Borykam się ostatnio z jednym problemem, zanim coś konkretnie zacznę robić chciałbym się poradzić bardziej doświadczonych kolegów.<br />Docelowo chodzi o wyznaczanie wydajności pracy maszyn w zadanym okresie czasu. Niby na pierwszy rzut oka nic nadzwyczaj skomplikowanego, ale jak zwykle diabeł tkwi w szczegółach.<br />Wydajność jest wyliczana na podstawie przyrostów z liczników odczytywanych co tydzień i następnie dzielonych przez całkowitą ilość godzin jakie w zadanym tygodniu mogła pracować dana maszyna, typowo 5 dni * 24h = 120h. Powiedzmy że z przyrostu z licznika odczytano 60h co daje 50% wydajności w okresie tygodnia.<br />Oczywiście w realnym świecie zdarzają się święta, urlopy, przestoje itp zakały które powodują, że wartość 120h zmienia się w obie strony.<br />Często zdarza się że produkcja rusza wcześniej i całkowity czas wynosi wtedy np 128 godzin, muszę to oczywiście uwzględniać w swoich obliczeniach wydajności. Ilość maszyn pracujących wówczas jest także mniejsza, bo pracuje tylko kilka gniazd produkcyjnych z kilkunastu.</p><p>Moje przemyślenia w tym temacie skupiają się oczywiście na takiej organizacji danych by było łatwo napisać algorytm do wyznaczania tych nazwijmy to &quot;idealnych&nbsp; (100%) czasów pracy&quot;. Kluczem do sprawnej pracy jest odpowiednia organizacja danych obejmująca wszystkie niuanse opisane powyżej. Drugim moim zmartwieniem jest objętość danych: 365dni i ok 50 maszyn. Potrzebne są niewątpliwie pewne optymalizacje w tym zakresie. Oto moje pomysły jak do tej pory:</p><p>Planuję stworzenie tabeli opisującej tylko dni wolne od pracy i takie w których maszyny nie pracują przez 24 godziny. Dni wolnych jest mniej niż pracujących więc myślę że to będzie rozsądne rozwiązanie. Domyślnie każdy dzień spoza tabeli jest pracujący.<br /></p><div class="codebox"><pre><code>create table day_exceptions(
    id integer unsigned not null auto_increment,
    created datetime not null, // czas utworzenia wpisu, sprawa dyskusyjna, być może to wleci w przyszłości
    day_exc date not null, // data danego wolnego dnia
    machine_id integer unsigned not null, // numer maszyny której dotyczy dany rekord
    hours  tinyint unsigned not null default 0, // ilość godzin planowanej produkcji danego &quot;wolnego&quot; dnia {0, 8, 16, 24}h
primary key (id)
);</code></pre></div><p>Tyle jeśli chodziło by o przechowywanie danych, inna kwestia to dodawanie nowych danych, planuję dwie opcje:<br />1 - dodawanie pojedynczych dni do tabeli<br />2 - dodawanie zakresów dni, czyli powiedzmy od 1 maja 2009 do 5 maja 2009.<br />Tutaj zaczyna się problem kontroli poprawności wprowadzanych danych. Trzeba bowiem sprawdzić czy dla danej maszyny dana data nie jest już obstawiona. Na &quot;łatwość&quot; sprawdzania poprawności ma jak wiadomo organizacja samych danych w tabeli więc widać doskonale jak ważne jest dobre zaplanowanie wszystkiego. Wracamy więc do punktu wyjścia.</p><p>Jeśli drogi Forumowiczu dotarłeś aż tutaj to gratuluję Ci cierpliwości i oczekuję bardzo na wszelkie opnie, krytykę, jakieś inne pomysły czy rozwiązania które obejmą specyfikę tego problemu. Jedna dobra rada pozwoli potem zaoszczędzić sporo czasu. Jak zawsze dobry pomysł to podstawa.</p>]]></description>
			<author><![CDATA[dummy@example.com (Cookie)]]></author>
			<pubDate>Sun, 02 Aug 2009 08:28:52 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/90/wyznaczanie-wydajnosci-pracy-maszyn-w-zadanych-okresach/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Model potrzebuje danych z innego modelu]]></title>
			<link>http://forum.cakephp.org.pl/topic/85/model-potrzebuje-danych-z-innego-modelu/new/posts/</link>
			<description><![CDATA[<p>Sprawa wygląda następująco:<br />Model odpowiedzialny za liczniki (z maszyn produkcyjnych) podczas dodawania nowego licznika przez użytkownika dokonuje walidacji wprowadzonej wartości. Tzn poza sprawdzaniem właściwego formatu itp. sprawdza również samą wartość wprowadzanego licznika. Chodzi o to by użytkownik wpisując licznik nie przekroczył zakresu licznika z maszyny. Dane o maksymalnych wartościach liczników zapisane są w modelu odpowiadającym za maszyny. Mam problem z pobraniem danych z modelu maszyny do modelu liczników w celu wykonania walidacji.<br />Piszę bo szukam ELEGANCKIEGO rozwiązania zgodnego z wzorcem MVC.</p><p>1. rozwiązanie jakie mi się nasuwa do dodanie do $this-&gt;data w kontrolerze liczników wartości do jakiegoś nowego klucza np maxCounter jeszcze w kontrolerze. Wtedy wszystko czego potrzebuję było by w modelu w zmiennej $this-&gt;data. To było by chyba najmniej eleganckie.</p><p>2. rozwiązanie to pobranie tej maksymalnej wartości z kontrolera maszyn przez wywołanie requestAction z modelu licznika(nie wiem czy jest to możliwe z modelu). Wydaje się troszeczkę bardziej zgodne ze wzorcem MVC</p><p>3. które mi nie wychodzi to załatwienie wszystkiego między modelami, tzn bez angażowania w to kontrolerów i pisania dodatkowej funkcji (jak w pkt. 2) Przydatne było by pobranie tej wartości przez wywołanie bezpośrednio z modelu licznika.</p><p>Proszę o jakieś rady w tym temacie.</p>]]></description>
			<author><![CDATA[dummy@example.com (id02009)]]></author>
			<pubDate>Tue, 21 Jul 2009 08:46:51 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/85/model-potrzebuje-danych-z-innego-modelu/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[przechwytywanie danych z paska adresu? jak?   cake/posts/view/19/1231]]></title>
			<link>http://forum.cakephp.org.pl/topic/67/przechwytywanie-danych-z-paska-adresu-jak-cakepostsview191231/new/posts/</link>
			<description><![CDATA[<p>http://localhost/cake/posts/view/19/1231 </p><br /><p>tego typu adres przekazuje dane w zmiennych:</p><p>core ma włączone :&nbsp; &quot;debug=3&quot;</p><br /><br /><p>chcialbym pobrac zmienna stąd:</p><p>&nbsp; &nbsp; [params] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [pass] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [0] =&gt; 19<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [1] =&gt; 1231<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )<br />[...]</p><br /><p>chcę pobrać&nbsp; tą zmienną&nbsp; &nbsp;[1] = 1231&nbsp; &nbsp;tylko jak ?</p><br /><p>czekam na wasze pomysły...</p><br /><br /><br /><p>----------------------------------kod ---------------<br />&nbsp; &nbsp; &nbsp; &nbsp; PostsController Object<br />(<br />&nbsp; &nbsp; [name] =&gt; Posts<br />&nbsp; &nbsp; [here] =&gt; /cake/posts/view/19/1231<br />&nbsp; &nbsp; [webroot] =&gt; /cake/<br />&nbsp; &nbsp; [action] =&gt; view<br />&nbsp; &nbsp; [uses] =&gt; <br />&nbsp; &nbsp; [helpers] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [0] =&gt; Html<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [1] =&gt; Form<br />&nbsp; &nbsp; &nbsp; &nbsp; )</p><p>&nbsp; &nbsp; [params] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [pass] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [0] =&gt; 19<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [1] =&gt; 1231<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [named] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [controller] =&gt; posts<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [action] =&gt; view<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [plugin] =&gt; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [form] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [url]=&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [url]=&gt; posts/view/19/1231<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [models] =&gt; Array<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [0] =&gt; Post<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )</p><p>&nbsp; &nbsp; &nbsp; &nbsp; )</p><p>[..................]</p>]]></description>
			<author><![CDATA[dummy@example.com (robal77)]]></author>
			<pubDate>Wed, 08 Jul 2009 13:34:16 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/67/przechwytywanie-danych-z-paska-adresu-jak-cakepostsview191231/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[inkludowanie w widoku innego kontrolera]]></title>
			<link>http://forum.cakephp.org.pl/topic/73/inkludowanie-w-widoku-innego-kontrolera/new/posts/</link>
			<description><![CDATA[<p>Witam.</p><p>Stworzyłem sobie kontroler &quot;Ankieta&quot; w której stworzyłem metody dodawania, usuwania z bazy i wyświetlania ankiety. Z tym że chciałbym wyświetlać tą ankietę na każdej stronie w menu. <br />W metodzie wyświetlania ustawiłem $this-&gt;layout = &#039;empty&#039; <br />I chciałbym zrobić jakiś render w domyślnym layout&#039;cie. Szukałem, kombinowałem ale nie mam pojęcia jak to zrobić. <br />Proszę chociaż napisać że się nie da jeśli to prawda.</p>]]></description>
			<author><![CDATA[dummy@example.com (robal77)]]></author>
			<pubDate>Wed, 08 Jul 2009 13:29:17 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/73/inkludowanie-w-widoku-innego-kontrolera/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[getLastInsertID]]></title>
			<link>http://forum.cakephp.org.pl/topic/70/getlastinsertid/new/posts/</link>
			<description><![CDATA[<p>Cześć,</p><p>Mam pytanie. Czy jest to bezpieczna funkcja? Chodzi mi o to czy jeżeli w jednej funkcji zapiszę jakieś dane w tablicy model-&gt;save($data), to czy teraz pobierając model-&gt;getLastInsertId() id ostatnio dodanego rekordu, na 100% otrzymam prawidłową wartość, czy cake nie pozwoli, żeby między wywołaniami obu tych funkcji, nikt inny nie dodał nowych danych? Jeżeli nie, to w jaki sposób mogę otrzymać identyfikator tego rekordu? Dodam, że korzystam z mysql i tablic typu myIsam.</p><p>Heh jednak wygooglowałem, model-&gt;id wystarczy, jakby ktoś chciał wiedzieć.. </p><p>Mimo to i tak chciałbym wiedzieć, jak działa interpreter php-a. Czy wywołana funkcja nie może być przerwana przez inną?</p>]]></description>
			<author><![CDATA[dummy@example.com (kaczuss)]]></author>
			<pubDate>Thu, 21 May 2009 09:18:46 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/70/getlastinsertid/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[pobieraanie listy wartosci pola enum w kejku]]></title>
			<link>http://forum.cakephp.org.pl/topic/56/pobieraanie-listy-wartosci-pola-enum-w-kejku/new/posts/</link>
			<description><![CDATA[<p>Akurat potrzebowalem czegos takiego, a na grupie kejka luszie pisza same glupoty lub oklepane slogany ( w stylu oficjalne stanowsikwo developerow kejka ... ).</p><p>Zakladajac ze w tabeli items&nbsp; jest pole enum - item_type ( &quot;type_a&quot;, ..., &quot;type_n&quot;), i nie musimy tlumaczycz wartosci przymowanych przez enum na jakies posrednie stringi, mozna to zrobic w ten sposob.<br /></p><div class="codebox"><pre><code>       $values = $this-&gt;Item-&gt;schema(&quot;item_type&quot;);
       $values = explode(&quot;,&quot;,str_replace(&quot;&#039;&quot;,&quot;&quot;,substr($values[&quot;type&quot;],5,strlen($values[&quot;type&quot;])-6)));            
       $this-&gt;set(&quot;item_type&quot;, array_combine($values,$values));</code></pre></div><p>powyzszy linijki wysla do widoku taki array</p><div class="codebox"><pre><code>       $item_type[&quot;type_a&quot;] = &quot;type_a&quot;;
       .
       .
       .
       $item_type[&quot;type_n&quot;] = &quot;type_n&quot;;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (robal77)]]></author>
			<pubDate>Thu, 16 Apr 2009 11:22:48 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/56/pobieraanie-listy-wartosci-pola-enum-w-kejku/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[Dynamicznie generowany CSS w kejku]]></title>
			<link>http://forum.cakephp.org.pl/topic/55/dynamicznie-generowany-css-w-kejku/new/posts/</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[dummy@example.com (robal77)]]></author>
			<pubDate>Thu, 09 Apr 2009 08:29:49 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/55/dynamicznie-generowany-css-w-kejku/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[bindModel z tym samym modelem]]></title>
			<link>http://forum.cakephp.org.pl/topic/52/bindmodel-z-tym-samym-modelem/new/posts/</link>
			<description><![CDATA[<p>Czesc, nie mam przy sobie kodu ale jak bedzie potrzebny to poszukam.</p><p>Problem:<br />tabela projekt(id,user_id,created_by)<br />tabela users (id,name).</p><p>projekt posiada relacje belongs to users dla klucza users_id. Posiada on jednak tez kolumnę created_by ktora nie jest indeksowana i byla zrobiona na zasadzie &#039;a moze sie przyda&#039;. No i okazalo sie ze sie przydaje.</p><p>Podczas wyciagania zapytania o projekty wyskakuje mi tez tabela Users dla klucza user_id. Potrzebuje tez jednak zrobić drugi raz users ale dla wartosci created_by.</p><p>Dolaczylem wiec na szybko model (przykladowy):</p><p>$this-&gt;Projekt-&gt;bindModel(array(&#039;belongsTo&#039; =&gt;Array(&#039;User&#039;=&gt; array (............, foreign_key =&gt; created_by))))</p><p>i....... nic <img src="http://forum.cakephp.org.pl/img/smilies/hmm.png" width="15" height="15" alt="hmm" /></p><p>Pytanie:<br />Czy takie cos jest mozliwe, a jak tak to czy zalozenie jest dobre a tylko zle wykonanie czy tez trzeba to robic zupelnie inaczej.</p>]]></description>
			<author><![CDATA[dummy@example.com (alfabeta)]]></author>
			<pubDate>Thu, 02 Apr 2009 12:01:49 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/52/bindmodel-z-tym-samym-modelem/new/posts/</guid>
		</item>
		<item>
			<title><![CDATA[rozbudowana join table]]></title>
			<link>http://forum.cakephp.org.pl/topic/47/rozbudowana-join-table/new/posts/</link>
			<description><![CDATA[<p>Witam.<br />Mam pytanie, gdyż dopiero zaczynam z cakePHP, a chcę się dowiedzieć, jak skonfigurować model mając mniej więcej takie powiązanie tabel. <br />tabelaA , tabelaB, tabelaA_tabelaB, tabelaC, tabelaA_tabelaB_tabelaC. Czy powinienem postarać się uprościć tabele/relacje w takiej bazie? Czy nie będzie mi to później sprawiać problemów.</p>]]></description>
			<author><![CDATA[dummy@example.com (robal77)]]></author>
			<pubDate>Thu, 02 Apr 2009 08:08:23 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/topic/47/rozbudowana-join-table/new/posts/</guid>
		</item>
	</channel>
</rss>
