Interesting approach.

You can ofc set

Zend_View_Helper_PaginationControl::setDefaultViewPartial()

in the controller or bootstrap. Items per page - can be also passed to
model, right?

Best practices...must think about this...

Regards,
Saša Stamenković


On Tue, Dec 8, 2009 at 3:45 PM, Fred Jiles <[email protected]> wrote:

> I do my pagination in the model.  So you wouldn't need any logic in the
> controller.  Just pass the page param and the param you use for the context
> switcher to the model and it will decide to paginate or not, and return the
> result set.
>
>
> On Tue, Dec 8, 2009 at 9:40 AM, scs <[email protected]> wrote:
>
>> I am already using ContextSwitch helper and have two different view
>> scripts (one normal html view and one for excel view).
>> However, my pagination code was in the controller. If I did not
>> misunderstand,
>> I shall move the following code (pagination code) to the view script
>> (in this case to the html view) ?
>> Am I right?
>>
>> >>    $page=$this->_getParam('page', 1);
>> >>    $paginator = Zend_Paginator::factory($rows);
>> >>    $paginator->setItemCountPerPage($limit);
>> >>    $paginator->setCurrentPageNumber($page);
>>
>> Thanks...
>>
>> On Tue, Dec 8, 2009 at 4:29 PM, Matthew Weier O'Phinney
>> <[email protected]> wrote:
>> > -- scs <[email protected]> wrote
>> > (on Tuesday, 08 December 2009, 03:27 PM +0200):
>> >> Then this is what i will do :)
>> >>
>> >> $limit = ( ($format == 'excel') ? count($rows) : 100 );
>> >>
>> >>    $page=$this->_getParam('page', 1);
>> >>    $paginator = Zend_Paginator::factory($rows);
>> >>    $paginator->setItemCountPerPage($limit);
>> >>    $paginator->setCurrentPageNumber($page);
>> >>
>> >>    $this->view->applications = $paginator;
>> >
>> > This is really view logic. I'd recommend using the ContextSwitch action
>> > helper, and defining an "excel" context; this will allow you to have
>> > separate view scripts for your HTML and Excel contexts. Then, keep the
>> > logic in your controller minimal, and within your separate view scripts,
>> > handle pagination differently.
>> >
>> >
>> >> On Tue, Dec 8, 2009 at 3:23 PM, Саша Стаменковић <[email protected]>
>> wrote:
>> >> > Yes, but I thought you already solved that :)
>> >> > Some request param would be nice
>> >> > www.yourhost/controller/action/format/excel
>> >> >
>> >> > Regards,
>> >> > Saša Stamenković
>> >> >
>> >> >
>> >> > On Tue, Dec 8, 2009 at 10:19 AM, Саша Стаменковић <
>> [email protected]>
>> >> > wrote:
>> >> >>
>> >> >> Have you tried:
>> >> >>  $paginator->setItemCountPerPage($paginator->getTotalItemCount())
>> >> >> in excel context.
>> >> >> Thats the first thing coming to my mind.
>> >> >> Regards,
>> >> >> Saša Stamenković
>> >> >>
>> >> >>
>> >> >> On Tue, Dec 8, 2009 at 9:52 AM, scs <[email protected]> wrote:
>> >> >>>
>> >> >>> Hi,
>> >> >>> I have an html report that has paging. It list 100 records in every
>> page.
>> >> >>> I added an excel report to this action and need to disable the
>> paging
>> >> >>> feature
>> >> >>> in excel output/context.
>> >> >>>
>> >> >>> But I am not sure if there is a better way.
>> >> >>>
>> >> >>> Something like this or a better way? :
>> >> >>> //get format param from request
>> >> >>> ...
>> >> >>> if ($format != 'excel') {
>> >> >>>    $page=$this->_getParam('page', 1);
>> >> >>>    $paginator = Zend_Paginator::factory($rows);
>> >> >>>    $paginator->setItemCountPerPage(100);
>> >> >>>    $paginator->setCurrentPageNumber($page);
>> >> >>>
>> >> >>>    $this->view->applications = $paginator;
>> >> >>> } else {
>> >> >>>    $this->view->applications = $rows;
>> >> >>> }
>> >> >>>
>> >> >>> Thanks
>> >> >>> scs
>> >> >>
>> >> >
>> >> >
>> >>
>> >
>> > --
>> > Matthew Weier O'Phinney
>> > Project Lead            | [email protected]
>> > Zend Framework          | http://framework.zend.com/
>> >
>>
>
>

Reply via email to