<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum CakePHP.org.pl - Reverse Routing i URLe paginacji]]></title>
		<link>http://forum.cakephp.org.pl/topic/91/reverse-routing-i-urle-paginacji/</link>
		<description><![CDATA[Najświeższe odpowiedzi w Reverse Routing i URLe paginacji.]]></description>
		<lastBuildDate>Mon, 03 Aug 2009 12:09:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Reverse Routing i URLe paginacji]]></title>
			<link>http://forum.cakephp.org.pl/post/432/#p432</link>
			<description><![CDATA[<p>okej, metoda prob i bledow udalo mi sie zrobic te URLe tak jak chcialem. wiec tak - w kontrolerze Posts mam metode odpowiadajaca za wyswietlanie postow danego uzytkownika z danej kategorii:</p><div class="codebox"><pre><code>class PostsController extends AppController {
 
 function category_view($username = null, $category_slug = null) {
 }

}</code></pre></div><p>dodalem do Routera nastepujaca regule:</p><div class="codebox"><pre><code>Router::connect(
        &#039;/blog/:username/kategoria/*&#039;, 
        array(&#039;controller&#039;=&gt;&#039;posts&#039;, &#039;action&#039;=&gt;&#039;category_view&#039;),
        array(&#039;pass&#039; =&gt; array(&#039;username&#039;), &#039;username&#039; =&gt; &#039;[0-9a-zA-Z]+&#039;)
    );</code></pre></div><p>oraz w widoku category_view.ctp na samym poczatku cos takiego:</p><div class="codebox"><pre><code>$username = $this-&gt;passedArgs[0];
$category_slug =  $this-&gt;passedArgs[1];

unset($this-&gt;passedArgs[0]);

$paginator-&gt;options(array(&#039;url&#039; =&gt; 
    array_merge(array(&#039;username&#039;=&gt;$username),$this-&gt;passedArgs)
));  </code></pre></div><p>I teraz dziala tak jak chcialem czyli Paginator Helper buduje poprawne linki -&nbsp; czyli np posty ADMINA z kategorii PHP znajduja sie pod adresem:</p><div class="codebox"><pre><code>sample.com/blog/admin/kategoria/php
sample.com/blog/admin/kategoria/php/page:2 //itd.</code></pre></div><p>natomiast linki do kategorii w widoku wypluwam w ten sposob:</p><div class="codebox"><pre><code>&lt;?php echo $html-&gt;link(
            &#039;Tytul kategorii&#039;, //np PHP 
            array(
                &#039;controller&#039; =&gt; &#039;posts&#039;,
                &#039;action&#039; =&gt; &#039;category_view&#039;,
                &#039;username&#039; =&gt; $username, // np. admin
                $category_slug //np. php
            ) 
            
); ?&gt;</code></pre></div><p>pozdrawiam</p>]]></description>
			<author><![CDATA[null@example.com (tomay7)]]></author>
			<pubDate>Mon, 03 Aug 2009 12:09:49 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/post/432/#p432</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Reverse Routing i URLe paginacji]]></title>
			<link>http://forum.cakephp.org.pl/post/431/#p431</link>
			<description><![CDATA[<p>Zerknij na metode dispatch w dispatche&#039;rze.</p>]]></description>
			<author><![CDATA[null@example.com (robal77)]]></author>
			<pubDate>Mon, 03 Aug 2009 11:00:31 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/post/431/#p431</guid>
		</item>
		<item>
			<title><![CDATA[Reverse Routing i URLe paginacji]]></title>
			<link>http://forum.cakephp.org.pl/post/430/#p430</link>
			<description><![CDATA[<p>Witajcie,</p><p>znowu mam problem z Routerem. W mojej aplikacji uzytkownicy moga zakladac blogi - domyslnie kazdy blog dostepny jest pod adresem:</p><p>sample.com/blog/nazwauzytkownika</p><p>Domyslnie pod powyzszym adresem widac wszystkie posty danego uzytkownika (niezaleznie od kategorii). Chcialem, aby przegladanie postow po konkretnej kategorii mialo taki adres:</p><p>sample.com/blog/nazwauzytkownika/kategoria/nazwakategorii</p><p>wiec dodalem taka regule:</p><div class="codebox"><pre><code>Router::connect(
        &#039;/blog/:username/kategoria/:slug&#039;, 
        array(&#039;controller&#039; =&gt; &#039;posts&#039;, &#039;action&#039; =&gt; &#039;category_view&#039;),
        array(
            &#039;pass&#039; =&gt; array(&#039;username&#039;, &#039;slug&#039;),
            &#039;username&#039; =&gt; &#039;[0-9a-zA-Z]+&#039;, 
            &#039;slug&#039; =&gt; &#039;[a-z0-9]+&#039;
        ));</code></pre></div><p>ponadto w widoku mam cos takiego:</p><div class="codebox"><pre><code>$paginator-&gt;options(array(&#039;url&#039; =&gt; $this-&gt;passedArgs)); </code></pre></div><p>niemniej URLe paginacji (numerki, poprzednie, nastepne) wygladaja w ten sposob:</p><p><a href="http://www.sample.com/posts/category_view/nazwauzytkownika/nazwakategorii/page:2">www.sample.com/posts/category_view/nazwauzytkownika/nazwakategorii/page:2</a> </p><p>zamiast:</p><p><a href="http://www.sample.com/blog/nazwauzytkownika/nazwakategorii/page:2">www.sample.com/blog/nazwauzytkownika/nazwakategorii/page:2</a> </p><p>Wyglada na to ze Paginator Helper nie lapie tej reguly ktora ustawilem, chociaz jesli buduje link do kategorii w widoku przez HTML Helpera to URL jest poprawny:</p><div class="codebox"><pre><code>&lt;? echo $html-&gt;link(
    &#039;Nazwa kategorii&#039;, 
    array(
        &#039;controller&#039; =&gt; &#039;posts&#039;, 
        &#039;action&#039; =&gt; &#039;category_view&#039;, 
        &#039;username&#039; =&gt; $nazwauzytkownika, 
        &#039;slug&#039; =&gt; $nazwakategorii
    )
); ?&gt;</code></pre></div><p>Macie jakies pomysly?</p>]]></description>
			<author><![CDATA[null@example.com (tomay7)]]></author>
			<pubDate>Mon, 03 Aug 2009 09:22:46 +0000</pubDate>
			<guid>http://forum.cakephp.org.pl/post/430/#p430</guid>
		</item>
	</channel>
</rss>

