Getting pager to show on magento list

孤街浪徒 提交于 2020-01-11 06:54:20

问题


We currently have a quote page which lists all existing quotes that we would like to show the pager.

We have the following code in the List page which we've added the call to the pager but it doesn't appear to be showing frontend at all.

I've also added the history page which displays a list with a pager as an example of a working page we are trying to emulate.

Can anyone point us in the right direction as we appear to be missing something

List

<?php $_quotation = $this->getQuotations();?>
<?php if($_quotation->getSize()): ?>
<?php echo $this->getPagerHtml(); ?>
<table cellspacing="0" class="data-table" id="my-quotations-table">
    <thead>
        <tr>
            <th class="quote-quote"><?php echo $this->__('Quote #') ?></th>
            <th class="quote-date"><?php echo $this->__('Creation Date') ?></th>
            <th class="quote-valid"><?php echo $this->__('Valid until') ?></th>
            <th class="quote-status"><?php echo $this->__('Status') ?></th>
            <th class="quote-view-link">&nbsp;</th>
        </tr>
    </thead>
    <tbody>
        <?php $_odd = ''; ?>
        <?php foreach ($this->getQuotations() as $_quotation): ?>
            <?php $_quotation->checkExpirationDateAndApply(); ?>
            <tr>
                <td><?php echo $_quotation->getincrement_id() ?></td>
                <td><?php echo $this->formatDate($_quotation->getcreated_time()) ?></td>
                <td><?php echo $this->formatDate($_quotation->getValidEndTime()); ?>
                <td><?php echo $this->__($_quotation->getstatus()); ?></td>
                <td class="a-center"><?php if ($_quotation->isViewableByCustomer()): ?>
                        <a href="<?php echo $this->getViewUrl($_quotation) ?>"><?php echo $this->__('View Quotation') ?></a>
                        <?php endif; ?>
                </td>
            </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<script type="text/javascript">decorateTable('my-quotations-table')</script>
<?php echo $this->getPagerHtml(); ?>
<?php else: ?>
    <p><?php echo $this->__('You have no quotes available.') ?></p>
<?php endif ?>

History

<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
<?php $_orders = $this->getOrders(); ?>
<div class="pager"><?php echo $this->getPagerHtml(); ?></div>
<?php if($_orders->getSize()): ?>
<table class="data-table" id="my-orders-table">
    <col width="1" />
    <col width="1" />
    <col />
    <col width="1" />
    <col width="1" />
    <col width="1" />
    <thead>
        <tr>
            <th><?php echo $this->__('Order #') ?></th>
            <th><?php echo $this->__('Date') ?></th>
            <th><?php echo $this->__('Delivery To') ?></th>
            <th><span class="nobr"><?php echo $this->__('Order Total') ?></span></th>
            <th><span class="nobr"><?php echo $this->__('Order Status') ?></span></th>
            <th>&nbsp;</th>
        </tr>
    </thead>
    <tbody>
        <?php $_odd = ''; ?>
        <?php foreach ($_orders as $_order): ?>
        <tr>
            <td><?php echo $_order->getRealOrderId() ?></td>
            <td><span class="nobr"><?php echo $this->formatDate($_order->getCreatedAtStoreDate()) ?></span></td>
            <td><?php echo $_order->getShippingAddress() ? $this->htmlEscape($_order->getShippingAddress()->getName()) : '&nbsp;' ?></td>
            <td><?php echo $_order->formatPrice($_order->getGrandTotal()) ?></td>
            <td><em><?php echo $_order->getStatusLabel() ?></em></td>
            <td class="a-center">
                <span class="nobr"><a href="<?php echo $this->getViewUrl($_order) ?>"><?php echo $this->__('View Order') ?></a>
                    <?php /*<span class="separator">|</span><a href="<?php echo $this->getTrackUrl($_order) ?>"><?php echo $this->__('Track Order') ?></a>&nbsp;*/ ?>
                    <?php if ($this->helper('sales/reorder')->canReorder($_order)) : ?>
                    <span class="separator">|</span> <a href="<?php echo $this->getReorderUrl($_order) ?>" class="link-reorder"><?php echo $this->__('Reorder') ?></a>
                <?php endif ?>
                </span>
            </td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<script type="text/javascript">decorateTable('my-orders-table');</script>
<?php echo $this->getPagerHtml(); ?>
<?php else: ?>
    <p><?php echo $this->__('You have placed no orders.'); ?></p>
<?php endif ?>

Layout block for List

<quotation_quote_list>
    <reference name="root">
        <action method="setTemplate"><template>page/3columns-account.phtml</template></action>
    </reference>
    <update handle="customer_account"/>
    <reference name="content">
            <block type="Quotation/Frontend_Grid" name="quotationslist" as="quotationslist" template="Quotation/List.phtml"/>
    </reference>
</quotation_quote_list>

回答1:


We can implement custom model collection with magento pagination by extending Mage_Catalog_Block_Product_List class in our block class. Suppose I want to display users blog posts with pagination. Here is the steps to implement it easily:

  1. Create a block class (posts.php) and add the below code in it.

    class Blog_User_Block_Posts extends Mage_Catalog_Block_Product_List
    {
        protected function _beforeToHtml()
        {
            $toolbar = $this->getToolbarBlock();
            $collection = $this->_getPostsCollection();
            $toolbar->setCollection($collection);     /*(Add toolbar to collection)*/
            return parent::_beforeToHtml();
        }
    }
    
  2. In the view.phptml file add the below code in it

    <?php echo $this->getToolbarHtml() ?>
    


来源:https://stackoverflow.com/questions/6437175/getting-pager-to-show-on-magento-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!