Hi There, This sounds like a problem I was struggling with recently when I was also deploying Zend_Paginator on a search results page.
>1. $this->getRequest()->getParams() returns too much info, such as >controller, action and module. I need just my parameters and I don't know >how to do this with Zend. getParams() receives data from multiple sources and sometimes isn't exactly what you need getQuery() will provide you with the $_GET variables only, or you could use setParamSources() to limit what you receive from getParams() >2. In my test, instead of having the proper URL even for search_text I >have: >http://quickstart/data/index/page/2/0/search_text > >There is an extra "0" and no "search" thus I am handling this array wrong. Remember that calls to $this->url() from the pagination partial will take into account any routes that you defined in your front controller. In effect, you are sending the array ( [page] => 2, [0] => 'search_text' ) to your default route. >3. My tests only allow one parameter, I would really like to send all >three. You can easily set up a custom router that can take those three parameters. I only needed to include two, but this is what I did for mine In the front controller: ------------------------ $router = $front->getRouter(); $route = new Zend_Controller_Router_Route_Regex('search/([^\/]*)(/([0-9]*))?', array( 'module' => 'search', 'controller' =>'index', 'action' =>'results' ), array( 1 => 'q', 2 => 'page' ), "search/%s/%s" ); $router->addRoute('search', $route); In my Paginator partial: ------------------------ <!-- Next page link --> <?php if (isset($this->next)): ?> <a href="<?php echo $this->url(array('q' => $this->urlQuery,'page' => $this->next)); ?>"> Next > </a> <?php else: ?> <span class="disabled">Next ></span> <?php endif; ?> I hope that's some help. There is no need to use sessions to do this. Matt Matt Pearson Internet Solutions Developer Liz Earle Beauty Co. -----Original Message----- From: eugenevdm [mailto:[email protected]] Sent: 04 August 2009 17:34 To: [email protected] Subject: Re: [fw-general] What is the fourth parameter of pagination control? With regarding to Zend Pagination Control's fourth parameter: Customize wrote: > > > What can we pass there as an additional parameters? URL encoded data > like search form data as an array? Where do we retrieve this fourth > parameter and how? (view partial script of paginator control? how?) > > I have the same application as this user, I want to "carry over" URL parameters with the pagination control for searching, filtering, and custom use. I nearly have this figured out but in the absence of a good example I cannot get it working. To test it I have tried this in my script when setting up a paginationControl: <?= $this->paginationControl($this->paginator, 'Sliding', 'partials/pagination.phtml', array("search" => "search_text")); ?> What I actually want to carry over from page to page is a URL parameters equal to: ?search=search_text&filter=custom_filter&custom=my_custom_command I thought in my controller I could do this: $url_params = $this->getRequest()->getParams(); $this->view->url_params = $url_params; And then send this somehow as an array to my partial. In my test for partial I have this (testing on the 'next' link, presumably I'm going to have to incorporate this on *every* link): <!-- Next page link --> <?php if (isset($this->next)): ?> | "<?= $this- url(array('page' => $this->next, $this->search)); ?>">Next > | <?php else: ?> | Next > | <?php endif; ?> Multiple problems: 1. $this->getRequest()->getParams() returns too much info, such as controller, action and module. I need just my parameters and I don't know how to do this with Zend. 2. In my test, instead of having the proper URL even for search_text I have: http://quickstart/data/index/page/2/0/search_text There is an extra "0" and no "search" thus I am handling this array wrong. 3. My tests only allow one parameter, I would really like to send all three. I would prefer not to use sessions as per the other suggestions if Zend already has this built in. Please assist. -- View this message in context: http://www.nabble.com/What-is-the-fourth-parameter-of-pagination-control --tp22051496p24811928.html Sent from the Zend Framework mailing list archive at Nabble.com. Work with the environment... think before you print Liz Earle Naturally Active Skincare The Green House Ryde IOW PO33 1BD Telephone +44 (0)1983 813913. Fax +44 (0)1983 813912. Email [email protected] <mailto:[email protected]> Web www.lizearle.com <http://www.lizearle.com> Liz Earle Naturally Active Skincare is a trading name of Liz Earle Beauty Co. Limited. Registered in England No. 3070395 Registered address: 5 Fleet Place, London, EC4M 7RD.
