<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum CakePHP.org.pl - Reverse Routing i URLe paginacji]]></title>
	<link rel="self" href="http://forum.cakephp.org.pl/feed/atom/topic/91/"/>
	<updated>2009-08-03T12:09:49Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.cakephp.org.pl/topic/91/reverse-routing-i-urle-paginacji/</id>
		<entry>
			<title type="html"><![CDATA[Odp: Reverse Routing i URLe paginacji]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/432/#p432"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[tomay7]]></name>
				<uri>http://forum.cakephp.org.pl/user/227/</uri>
			</author>
			<updated>2009-08-03T12:09:49Z</updated>
			<id>http://forum.cakephp.org.pl/post/432/#p432</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Reverse Routing i URLe paginacji]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/431/#p431"/>
			<content type="html"><![CDATA[<p>Zerknij na metode dispatch w dispatche&#039;rze.</p>]]></content>
			<author>
				<name><![CDATA[robal77]]></name>
				<uri>http://forum.cakephp.org.pl/user/143/</uri>
			</author>
			<updated>2009-08-03T11:00:31Z</updated>
			<id>http://forum.cakephp.org.pl/post/431/#p431</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Reverse Routing i URLe paginacji]]></title>
			<link rel="alternate" href="http://forum.cakephp.org.pl/post/430/#p430"/>
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[tomay7]]></name>
				<uri>http://forum.cakephp.org.pl/user/227/</uri>
			</author>
			<updated>2009-08-03T09:22:46Z</updated>
			<id>http://forum.cakephp.org.pl/post/430/#p430</id>
		</entry>
</feed>

