Getting pager to show on magento list

2019-02-19 23:09发布

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条回答
疯言疯语
2楼-- · 2019-02-19 23:32

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() ?>
    
查看更多
登录 后发表回答