Magento-是否可以设置;分页框;从模板/布局?

Magento-是否可以设置;分页框;从模板/布局?,magento,mobile,Magento,Mobile,我想知道是否有任何方法可以从模板phtml文件或xml布局文件中设置“分页框架”?例如,将其从: 1 2 3 4 5> 到 1 2 3> 我正在处理一个移动主题,我想设置分页中列出的页面数。我知道这可以从管理(配置->设计->分页->分页框架)进行设置,但我希望对桌面用户保持原样,但对移动用户设置较少的页面数 使用mobile themes catalog.xml文件,我可以使用以下命令设置每页的产品数量: <action method="addPagerLimit"><mod

我想知道是否有任何方法可以从模板phtml文件或xml布局文件中设置“分页框架”?例如,将其从:

1 2 3 4 5>

1 2 3>

我正在处理一个移动主题,我想设置分页中列出的页面数。我知道这可以从管理(配置->设计->分页->分页框架)进行设置,但我希望对桌面用户保持原样,但对移动用户设置较少的页面数

使用mobile themes catalog.xml文件,我可以使用以下命令设置每页的产品数量:

<action method="addPagerLimit"><mode>grid</mode><limit>10</limit></action>
如果可以通过模板文件实现,是否也可以设置显示的产品数量


注意:我想从模板中设置它的原因是,我可以使用管理模块中的变量集。

要通过观察者更改帧长度,请执行以下操作:

<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>
  • 宣布观察员:

    <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>
    
    您必须将
    $block->setFrameLength(2)放入编码到if()中,在其中检查useragent。此外,您还需要通过
    Mage::getStoreConfig('design/pagination/pagination_frame_for_mobile_devices')更改数字“2”
    其中pagination_frame_for_mobile_devices将是您在模块的system.xml中创建的新配置值


  • HTH

    实际上,您可以直接从移动主题的模板页面/html/pager.phtml中执行此操作,并且可以正常工作

    <?php $this->setFrameLength(2) ?>
    
    
    
    把它放在前面

    <?php foreach ($this->getFramePages() as $_page): ?>
    
    
    

    我认为支持比支持活动更好。事件库开发对于这样做的人来说很好。但是,当项目移交给另一个开发人员甚至开发团队时,这是一个可怕的遗产。

    我不认为您可以从视图文件中这样做,因为帧长度是在块中设置的(
    Mage\u Catalog\u block\u Product\u List\u Toolbar->getPagerHtml()
    ),但您可以在模块中轻松覆盖它,或者甚至创建一个观察者来设置您在配置中创建的新变量的值。如果这能满足您的需要,请让我知道,我会进一步解释。我已经覆盖了导航,所以我想覆盖寻呼机块也没什么坏处,可以在那里获取我的管理变量。我只是想看看有没有更简单的路线!出于兴趣,在这种情况下,你会如何使用观察者?为此干杯,有趣的是,你永远不会想到这样做。可能只是覆盖更容易,但知道这一点绝对有用!
    <?php foreach ($this->getFramePages() as $_page): ?>