我想知道是否有办法在模板phtml文件或xml布局文件中设置“分页框架”?例如,要改变它:
1 2 3 4 5>
到
1 2 3>
我正在研究移动主题,我想设置分页中列出的页数。我知道这可以从管理员设置(配置 - >设计 - >分页 - >分页框架),但我希望保持原样,对于桌面用户,但为移动用户设置较少的页面
使用mobile themes catalog.xml文件,我可以使用以下命令设置每页的产品数量:
<action method="addPagerLimit"><mode>grid</mode><limit>10</limit></action>
是否有类似的版本用于设置分页中的页数?或者是否有一些方法可以在抓取寻呼机之前从移动主题toolbar.phtml模板设置它?类似的东西:
$this->setFrameLength(3);
echo $this->getPagerHtml()
如果可以从模板文件中以某种方式实现,是否也可以设置显示的产品数量?
注意:我想从模板中设置它的原因是我可以使用管理模块中的变量集。
答案 0 :(得分:1)
通过观察者改变帧长度:
宣告观察员:
<frontend>
...
<events>
<core_block_abstract_to_html_before>
<observers>
<frame_length_according_to_useragent>
<type>singleton</type>
<class>yourmodulemodelalias/observer</class>
<method>setDifferentFrameLengthForMobileDevices</method>
</frame_length_according_to_useragent>
</observers>
</core_block_abstract_to_html_before>
</events>
...
</frontend>
方法:
public function setDifferentFrameLengthForMobileDevices($observer)
{
$event = $observer->getEvent();
$block = $event->getBlock();
if (get_class($block) == 'Mage_Page_Block_Html_Pager') {
//here some check of the user agent
$block->setFrameLength(2);
}
}
你必须将$block->setFrameLength(2);
放入if(),检查useragent。此外,您需要将数字“2”更改为Mage::getStoreConfig('design/pagination/pagination_frame_for_mobile_devices')
,其中 pagination_frame_for_mobile_devices 将是您在模块的system.xml中创建的新配置值。
HTH
答案 1 :(得分:0)
实际上你可以直接从你的手机主题的模板页面/ html / pager.phtml中做到这一点。它可以正常工作。
<?php $this->setFrameLength(2) ?>
把它放在
之前<?php foreach ($this->getFramePages() as $_page): ?>
我认为支持比事件更好。事件基础开发对于那样做的人来说很好。但是当项目传递给另一个开发人员甚至开发团队时,这是一个可怕的遗产。