<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum CakePHP.org.pl - Użytkownicy online - problem z app_controll.php]]></title>
	<link rel="self" href="http://forum.cakephp.org.pl/feed/atom/topic/119/"/>
	<updated>2010-05-05T21:16:13Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.cakephp.org.pl/topic/119/uzytkownicy-online-problem-z-appcontrollphp/</id>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/608/#p608"/>
			<content type="html"><![CDATA[<p>w app_controller dodajesz zmienna klasy:<br /></p><div class="codebox"><pre><code>var $uses = array(&#039;Member&#039;);</code></pre></div><p>dzieki temu kazda akcja bedzie miala model Member <img src="http://forum.cakephp.org.pl/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>a potem w beforeFilter() dajesz:<br />- sprawdzenie czy jest zmienna sesyjna ($this-&gt;Session-&gt;check(&#039;Auth.User.id&#039;))<br />- jezeli jest, to zaktualizuj baze itp.</p>]]></content>
			<author>
				<name><![CDATA[m1chal]]></name>
				<uri>http://forum.cakephp.org.pl/user/235/</uri>
			</author>
			<updated>2010-05-05T21:16:13Z</updated>
			<id>http://forum.cakephp.org.pl/post/608/#p608</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/572/#p572"/>
			<content type="html"><![CDATA[<p>pewnie nie wytrzymal brniecia bez konca w php4 , kiedy ostani raz sprawdzalem roadmap kejka, zapowiadalo sie na to ze bedzie napisany w php5 , tuz przed wypuszczeniem php8 rc 1 ;-) </p><p>Co do samego lithium ... jakos tego nie widze na serwerach produkcyjnych, chyba ze ktos sobie chce koniecznie zrobic cos we frameworku php5&nbsp; bez przegladania tysiecy stron dokumentacji <img src="http://forum.cakephp.org.pl/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[robal77]]></name>
				<uri>http://forum.cakephp.org.pl/user/143/</uri>
			</author>
			<updated>2010-02-09T21:12:43Z</updated>
			<id>http://forum.cakephp.org.pl/post/572/#p572</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/571/#p571"/>
			<content type="html"><![CDATA[<p>no musze przyznac, ze jest duzo racji w tym co piszesz. tak btw gwoo juz nie pisze cake-a tylko lithium <img src="http://forum.cakephp.org.pl/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[tomay7]]></name>
				<uri>http://forum.cakephp.org.pl/user/227/</uri>
			</author>
			<updated>2010-02-03T22:42:45Z</updated>
			<id>http://forum.cakephp.org.pl/post/571/#p571</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/570/#p570"/>
			<content type="html"><![CDATA[<p>W wiekosci przypadkow, jezeli juz ladujesz model w ktorlerze, wywolujesz z niego odpowiednia metode, i wysylasz dane do widoku/ komponentu, wtedy zamiast : <br /></p><div class="codebox"><pre><code>if (!isset($this-&gt;Liwko)) $this-&gt;loadModel(&#039;Liwko&#039;);
$this-&gt;set(&quot;data&quot;,$this-&gt;Liwko-&gt;skoczPoPiwko());</code></pre></div><p>mozesz zrobic tak: </p><div class="codebox"><pre><code>$this-&gt;set(&quot;data&quot;,ClassRegistry::init(&quot;Liwko&quot;,&quot;Model&quot;)-&gt;skoczPoPiwko()); </code></pre></div><p>Zeby mozna bylo obslugiwac bledy ladowania modelu, albo unikac tworzenia dwoch instancji tego samego modelu, mozna opakowac ClassResitry::init i ClassRegistry::getObject w jakas metode, dzieki ktorej zminimializujemy ryzyko refactoringu 3/4 aplikacji <img src="http://forum.cakephp.org.pl/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><p>Przy korzystaniu z fluent interface, wygla to jeszcze bardziej minimalistycznie i przejzyscie : </p><div class="codebox"><pre><code>$this-&gt;getModelObject(&quot;Liwko&quot;)-&gt;skoczPoPiwko()-&gt;getUsers()-&gt;sortByName()-&gt;saveTofile(&quot;log.txt&quot;)-&gt;skoczPoDrugie();</code></pre></div><p>Tak, fatycznie gwoo gdzies tam pisal , ze on osobiscie woli&nbsp; $this-&gt;loadModel(), ale ja uwazam ze&nbsp; modele , o ile nie sa automatycznie ladowanie przez kontroller ( model podstawowy, albo z $uses), to nie powinny byc ladowane wg lasnego widzimisie, do kontrollera mozna zawsze zrobic model, niekrzystajacy z tabeli, porobic akcesory do obcych modeli i tam sobie ladowac, nie ladowac, sprawdzac poprawnosc otrzymanych danych i dopowiednio reagowac na bledy, zostawiac kontrollery przejrzystymi.</p><p>A terazskocze po piate, sam.</p>]]></content>
			<author>
				<name><![CDATA[robal77]]></name>
				<uri>http://forum.cakephp.org.pl/user/143/</uri>
			</author>
			<updated>2010-02-01T02:23:34Z</updated>
			<id>http://forum.cakephp.org.pl/post/570/#p570</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/569/#p569"/>
			<content type="html"><![CDATA[<p>deweloperzy Cake radza uzywac loadModel, no i zauwaz jaka roznica w objetosci kodu <img src="http://forum.cakephp.org.pl/img/smilies/tongue.png" width="15" height="15" alt="tongue" /></p>]]></content>
			<author>
				<name><![CDATA[tomay7]]></name>
				<uri>http://forum.cakephp.org.pl/user/227/</uri>
			</author>
			<updated>2010-01-28T21:18:30Z</updated>
			<id>http://forum.cakephp.org.pl/post/569/#p569</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/566/#p566"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>tomay7 napisał/a:</cite><blockquote><p>skorzystaj z loadModel:</p><div class="codebox"><pre><code>if (!isset($this-&gt;Member)) $this-&gt;loadModel(&#039;Member&#039;);</code></pre></div></blockquote></div><p>Raczej bym uzyl jednak klasy registry ;-)</p>]]></content>
			<author>
				<name><![CDATA[robal77]]></name>
				<uri>http://forum.cakephp.org.pl/user/143/</uri>
			</author>
			<updated>2010-01-23T07:22:25Z</updated>
			<id>http://forum.cakephp.org.pl/post/566/#p566</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/565/#p565"/>
			<content type="html"><![CDATA[<p>skorzystaj z loadModel:</p><div class="codebox"><pre><code>if (!isset($this-&gt;Member)) $this-&gt;loadModel(&#039;Member&#039;);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[tomay7]]></name>
				<uri>http://forum.cakephp.org.pl/user/227/</uri>
			</author>
			<updated>2010-01-18T00:00:10Z</updated>
			<id>http://forum.cakephp.org.pl/post/565/#p565</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/556/#p556"/>
			<content type="html"><![CDATA[<p>jeśli 1.2 spróbuj ClassRegistry::init()</p>]]></content>
			<author>
				<name><![CDATA[id02009]]></name>
				<uri>http://forum.cakephp.org.pl/user/199/</uri>
			</author>
			<updated>2009-12-28T09:18:32Z</updated>
			<id>http://forum.cakephp.org.pl/post/556/#p556</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Użytkownicy online - problem z app_controll.php]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/554/#p554"/>
			<content type="html"><![CDATA[<p>Potrzebuje informacji na temat użytkowników, którzy są online w serwisie. W bazie danych trzymam informacje o ostatniej akcji zalogowanego użytkownika i na tej podstawie wysnuwam wniosek, czy jest on on-line, czy nie. Zapis akcji robię w app_controller.php jako, że kod tam zawarty jest wykonywane zawsze. Cały kod jest zawarty w metodzie beforeRender</p><div class="codebox"><pre><code>$member=$this-&gt;Session-&gt;read(&#039;Auth.Member&#039;);
        if(!empty($member)){
            $this-&gt;set(&#039;auth&#039;, true);
            if(isset($this-&gt;Member)){
                $data=array();
                $data[&#039;Member&#039;][&#039;id&#039;]=$member[&#039;id&#039;];
                $data[&#039;Member&#039;][&#039;last_action&#039;]=time();
                $this-&gt;Member-&gt;save($data,false);
            }
        } else
            $this-&gt;set(&#039;auth&#039;, false);</code></pre></div><p>Problem w tym, że czasami odwołanie $this-&gt;Member - wyrzuca błąd, gdyż nie każda podstrona używa tego modelu. W takim wypadku chciałem dynamiczne załadować moduł, jednak App:import wyrzuca błąd, że metoda import() nie istnieje. W jaki sposób zrobić to tak, aby działało poprawnie? Tzn. załadować dynamicznie moduł Member lub w ogóle przenieść wywołanie z app_controller.php gdzie indziej ten kod?</p>]]></content>
			<author>
				<name><![CDATA[sabat24]]></name>
				<uri>http://forum.cakephp.org.pl/user/244/</uri>
			</author>
			<updated>2009-12-25T12:05:39Z</updated>
			<id>http://forum.cakephp.org.pl/post/554/#p554</id>
		</entry>
</feed>
