php - 布局 xml 中的 Magento 条件 block

标签 php magento magento-1.7

如果isset get param x that x.phtml else y.phtml,这是不可能的还是在布局xml文件写入条件下?我看到在 Action Controller 中解决了这个问题。但我覆盖了其他模块中的操作。而且我认为 xml 更好。

实际上,我有一张注册表单可以从已完成的模块中加入程序。我想覆盖此操作并显示 2 种形式中的 1 种。根据获取param值中的内容。

最佳答案

有一种方法可以用几乎纯的 xml 来做到这一点:

背景:
您可以从 xml 调用函数,这将返回值而不是静态值。

因此,在您的情况下,您可以对 xml 执行类似的操作来归档所需的行为:

    <reference name="your-block-name">
        <action method="setTemplate">
            <template helper="your_module/getTemplate">
                <param>a_default_template_if_wanted</param>
            </template>
        </action>
    </reference>

并且在您模块的Data.php帮助器中,函数getTemplate可能如下所示:

public function getTemplate($defaultTemplate){
    //check for your get params

    if(Mage::app()->getRequest()->getParam('x')){
        return 'x.phtml';
    }
    return $defaultTemplate;
}

关于php - 布局 xml 中的 Magento 条件 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18571169/

相关文章:

magento - 使用soap api 访问magento 中的图像。无法访问缩略图。需要调整图像大小

ip - Magento CE 1.7 获取联系表单中包含的用户 IP

php - 确保在使用 PHP 时考虑所有异常

php - Laravel迁移数组类型(数据库列存储数组)

php - 分类列表打印查询结果

Magento getProductUrl() 没有返回正确的 url(随机?)

magento - 如何为自定义属性类型选择创建自定义源模型?

magento - 我如何在后端更改magento的标志

php - 来自外部页面的 Magento session (同一域)

php - 检查数据库中的现有用户名