Invalid argument supplied for foreach() in /home/content/07/6268407/html/app/design/frontend/MYTHEME/template/catalog/product/list/toolbar.phtml on line 63
After much digging around, I realized that this error is due to change in Magento on how the pagination works now in 1.4 as compared to earlier versions. The theme I used was clearly not compatible with Magento1.4 and hence this issue. To resolve this problem, here are the steps I took:
1. Create Template file for Pagination
Create a new file for handling pagination according to the new way. Create a new file called pager.phtml in the /template/catalog/product/list/ folder inside your theme folder. Now write the below code into this new file:
<?php if($this->getCollection()->getSize()): ?> <?php if($this->getLastPageNum()>1): ?> <td class="pages"> <strong><?php echo $this->__('Page:') ?></strong> <ol> <?php if (!$this->isFirstPage()): ?> <li><a href="<?php echo $this->getPreviousPageUrl() ?>"><img src="<?php echo $this->getSkinUrl('images/pager_arrow_left.gif') ?>" alt="<?php echo $this->__('Previous Page'); ?>" /></a></li> <?php endif ?> <?php foreach ($this->getPages() as $_page): ?> <?php if ($this->isPageCurrent($_page)): ?> <li><span class="on"><?php echo $_page ?></span></li> <?php else: ?> <li><a href="<?php echo $this->getPageUrl($_page) ?>"><?php echo $_page ?></a></li> <?php endif ?> <?php endforeach;; ?> <?php if (!$this->isLastPage()): ?> <li><a href="<?php echo $this->getNextPageUrl() ?>"><img src="<?php echo $this->getSkinUrl('images/pager_arrow_right.gif') ?>" alt="<?php echo $this->__('Next Page'); ?>" /></a></li> <?php endif ?> </ol> </td> <?php endif; ?> <?php endif ?>
2. Call this Pagination code in Layout
Edit the catalog layout xml file to include this new pagination code. Open the file catalog.xml in the /layout/ folder inside your theme folder. Now search for this line of code:
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
Below this line, add the following new line to call the pager file that you created in step 1 above:
<block type="page/html_pager" name="product_list_toolbar_pager" template="catalog/product/list/pager.phtml" />
3. Call this Pagination code in Toolbar
Edit the toolbar html file to include this new pagination code. Open the file toolbar.phtml in the /template/catalog/product/list/ folder inside your theme folder. Now search for the below block of code approximately around lines 42 - 63:
<?php if($this->getLastPageNum()>1 && is_array($this->getPages())): ?> ... ... ... <?php endif; ?>
Now replace this block of code with the following single line of code:
<?php echo $this->getPagerHtml(); ?>
If you follow these 3 steps to the 'T' it should definitely resolve your problem!
To find out details of errors, please go through this post on Debugging Magento.
1 comment:
This worked for me
great !!
Post a Comment