1 . create a collection.php to get data
<?php class Bysoft_Mycatalog_Block_Apparel_Collection extends Mage_Core_Block_Template { public function __construct() { parent::__construct(); $collection = Mage::getModel('catalog/product')->getCollection(); $this->setCollection($collection); if ($this->getCurrentOrder()) { if($this->getCurrentOrder() == 'saleability') { $this->getCollection()->getSelect()-> joinLeft('sales_flat_order_item AS sfoi', 'e.entity_id = sfoi.product_id', 'SUM(sfoi.qty_ordered) AS ordered_qty')-> group('e.entity_id')->order('ordered_qty ' . $this->getCurrentDirectionReverse()); } else { $this->getCollection()->setOrder($this->getCurrentOrder(), $this->getCurrentDirection()); } } return $this; } protected function _prepareLayout() { parent::_prepareLayout(); $toolbar = $this->getToolbarBlock(); // called prepare sortable parameters $collection = $this->getCollection(); // use sortable parameters if ($orders = $this->getAvailableOrders()) { $toolbar->setAvailableOrders($orders); } if ($sort = $this->getSortBy()) { $toolbar->setDefaultOrder($sort); } if ($dir = $this->getDefaultDirection()) { $toolbar->setDefaultDirection($dir); } $toolbar->setCollection($collection); $this->setChild('toolbar', $toolbar); $this->getCollection()->load(); return $this; } public function getDefaultDirection(){ return 'asc'; } public function getAvailableOrders(){ return array('created_time'=> 'Created Time','price'=>'Price','salesablity'=>'Saleability'); } public function getSortBy(){ return 'collection_id'; } public function getToolbarBlock() { $block = $this->getLayout()->createBlock('mycatalog/apparel_toolbar', microtime()); return $block; } public function getMode() { return $this->getChild('toolbar')->getCurrentMode(); } public function getToolbarHtml() { return $this->getChildHtml('toolbar'); } }
2. to override toolbar class , set custom limit per page
<?php class Bysoft_Mycatalog_Block_Apparel_Toolbar extends Mage_Catalog_Block_Product_List_Toolbar{ public function getPagerHtml() { $pagerBlock = $this->getLayout()->createBlock('page/html_pager'); if ($pagerBlock instanceof Varien_Object) { /* @var $pagerBlock Mage_Page_Block_Html_Pager */ $pagerBlock->setAvailableLimit($this->getAvailableLimit()); $pagerBlock->setUseContainer(false) ->setShowPerPage(false) ->setShowAmounts(false) ->setLimitVarName($this->getLimitVarName()) ->setPageVarName($this->getPageVarName()) ->setCollection($this->getCollection()); return $pagerBlock->toHtml(); } return ''; } protected function _getAvailableLimit($mode='') { return array(36=>36,72=>72,108=>108,'all'=>'all'); } }
3. for custom list phtml page
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?> <?php $collection = $this->getCollection(); ?> <div class="page-title"> <h1><?php echo $this->__('My Collection') ?></h1> </div> <?php echo $this->getToolbarHtml(); ?> <?php if($collection->getSize()): ?> <?php if(1 || $this->getMode() == 'list'){ ?> <div class="product-list-div"> <ul class="list-4-column-ul column-1 clearfix"> <?php $i = 0;?> <?php foreach ($collection as $_product):?> <?php ++$i;?> <?php $_product = Mage::getModel('catalog/product')->load($_product->getId());?> <?php $prod_img_src = (string)Mage::helper('catalog/image')->init($_product, 'image');?> <?php $lazy_load_img = $this->getSkinUrl('images/lazy-load.gif');?> <li> <div class="prod-img"> <a href="<?php echo $_product->getProductUrl() ;?>" > <img class="lazy" data-original="<?php echo $prod_img_src;?>"/> </a> </div> <div class="prod-info pc-info"> <div class="layer_info"> <p class="product-manufacturer"><?php echo $_product->getAttributeText('manufacturer');?></p> <p class="product-name"><?php echo $_product->getData('name');?></p> </div> </div> </li> <?php if ($i%4 == 0 ):?> </ul> <ul class="list-4-column-ul column-<?php echo ($i/4)+1 ?> clearfix" > <?php endif;?> <?php endforeach;?> </ul> </div> <script type="text/javascript">decorateTable('my-custom-table');</script> <?php }else{ ?> <!-- List Mode HTML Here --> <?php } ?> <?php echo $this->getToolbarHtml(); ?> <?php else: ?> <p><?php echo $this->__('The collection is empty.'); ?></p> <?php endif ?> <script> jQuery(document).ready(function($){ jQuery.extend(jQuery.browser,{Mobile : navigator.userAgent.toLowerCase().match(/mobile/i)}); if($(window).width()<768){ $(".product-list-div").carouFredSel({ items: 1, prev: "#prev", next:"#next", auto: false }); //alert($(".product-list-div ul").width()); $("img.lazy").lazyload({ threshold:0, event:'click' }); var $src = $('.product-list-div ul.column-1 img').attr('data-original'); $('.product-list-div ul.column-1 img').attr('src',$src); $('#prev').click(function(){ var $img = $('.product-list-div ul:first').prev().find('img'); $img.each(function(){//triggerHandler()方法不会触发事件的默认行为,但只会影响第一个匹配的元素 if($(this).attr('src')!= $(this).attr('data-original')){ $(this).triggerHandler( "click" ); } }) }) $('#next').click(function(){ var $img = $('.product-list-div ul:first').next().find('img'); $img.each(function(){ if($(this).attr('src')!= $(this).attr('data-original')){ $(this).triggerHandler( "click" ); } }) }) }else{ $("img.lazy").lazyload({ threshold:-50 }); } }) </script>
相关推荐
在ASP.NET Web Forms开发中,GridView控件是一个非常常用的数据展示组件,它可以轻松地将数据库中的数据绑定到表格中,并提供了内置的分页功能。然而,有时候内置的分页功能可能无法满足某些特定的需求,例如自定义...
CustomView and CustomViews Members Section 11.10. HPageBreak, HPageBreaks, VPageBreak, VPageBreaks Members Section 11.11. PageSetup Members Section 11.12. Graphic Members Section 11.13. ...
在page中无需处理任何分页相关逻辑,无需在data中定义任何分页相关变量,全由z-paging内部处理。 【超灵活,支持各种类型自定义】支持自定义下拉刷新,自定义上拉加载更多,自带自定义下拉刷新效果,及其他数十种...
PagedRect是Unity UI的完整分页解决方案。 PagedRect可以轻松用于: -创建多页教程 -创建多页菜单 -创建图像滑块 -创建向导 -创建选项卡式视图 -创建自定义UI元素
AIX 操作系统中的 Paging Space 是很重要的设备,Paging Space 使用率过高将影响系统整体性能,甚至会造成系统挂起。文中对 Paging Space 使用率过高的常见原因进行了分析,并给出了相应的解决方案。AIX操作系统中...
这可以通过在命令行中运行`uni plugin add z-paging`完成。安装后,z-paging的组件将被引入到你的项目中。 2. **配置main.js**:在`main.js`文件中,你需要导入z-paging并注册为全局组件,这样在任何页面中都可以...
一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例 一个简单的Paging自定义分页范例
在"jquery tree and paging"这个主题中,我们主要关注的是两个关键概念:jQuery的树形菜单和分页功能。 首先,让我们详细讨论jQuery的树形菜单。在网页设计中,树形菜单是一种组织大量信息的有效方式,它通常以层级...
本篇应用注释深入探讨了Intel® 64 和 IA-32 架构中的翻译后备缓冲器(Translation Lookaside Buffers, TLB)与分页结构缓存(Paging-Structure Caches),以及这些组件的失效机制。这些技术对于提高现代计算机系统...
paging.js分页插件 <script src="js/jquery.min.js"></script> <script type="text/javascript" src="js/paging.js"> <!--分页--> <div id="page" class="page_div"></div>
**PagingGrid简介** 在IT领域,数据展示和管理是常见的需求,特别是在Web应用程序中,当数据量庞大时,一次性加载所有数据不仅会影响页面性能,也会对用户体验造成负面影响。为了解决这一问题,"PagingGrid...
段页式管理是一种操作系统内存管理的方法,它结合了分段和分页两种技术,以提供更灵活和安全的内存分配机制。在理解这种管理方式之前,我们先分别介绍分段和分页的概念。 分段是早期操作系统中常用的一种内存管理...
• Authorization and Authentication using Microsoft Identity v2 by making use of Microsoft example code including correct use of redirection after login and registration • Advanced techniques ...
AIX操作系统中PagingSpace的重要性及其使用率分析与解决方法 在AIX操作系统中,PagingSpace(分页空间)是一个非常重要的概念,它是系统用来支持虚拟内存的关键组成部分。当PagingSpace的使用率过高时,会严重影响...
使用上也非常简单,在页面中载入 jquery.ui.tabs.paging.css 和 jquery.ui.tabs.paging.js 文件,在创建 tabs 对象后再执行代码激活一下插件 $tabs.tabs('paging'); 就可以了。 压缩包内带有 demo 。
《jQuery-Paging动态分页数据获取插件》 在网页开发中,数据的展示往往涉及到大量的信息处理,尤其是在用户交互时,如何优雅地处理大量数据的加载和展示,是提升用户体验的关键。jQuery-Paging插件就是一个针对这种...
jQuery-Paging是一款强大的JavaScript插件,专为网页中的动态数据分页设计,它极大地简化了在Web应用中处理大量数据的展示方式。该插件基于流行的JavaScript库jQuery构建,提供了直观且用户友好的分页体验,同时具备...
drag & drop, insert and delete individual items, multi-dim arrays [NEW], tables [NEW], cross-list and even cross-window item dragging, paging, nested list drawing, and much more! ? Insanely ...
**Paging Data in Java** 在Java开发中,数据分页是一种常见的优化技术,尤其是在处理大量数据集合时。分页能够有效地提高应用性能,减少内存占用,并提供更好的用户体验,因为用户无需等待所有数据加载完毕,只需...