gpt4 book ai didi

magento - 如何从 Magento 中的 phtml 中获取 xml 中的 block 标签?

转载 作者:行者123 更新时间:2023-12-02 08:28:12 25 4
gpt4 key购买 nike

我的布局文件中有这样一个自定义 block :

<block type="xxx/xxx" name="xxx" template = "bar.phtml">
<label>Foo</label>
</block>

如何从 bar.phtml 获取标签的值?

请注意,我不想使用 setData 函数来设置我的变量并传递它。我想从 phtml(或其他任何地方)中提取标签内的值。我希望它清楚。

最佳答案

我不认为有一种真正经典的 Magento 方法可以做到这一点,因为就我们所说的前端而言,不会显示 block 用途的标签。

label: This element is introduced since Magento 1.4. It defines the label of the handle which is shown as a descriptive reference in some areas of the admin panel.

Source

我真诚地建议您远离下面的代码。但如果这真的是你想要实现的,这是一种方式:

首先,我们得到布局 = 该页面的布局的大型 xml 串联,其中包含定义 block 的 xml,因此我们的标签

$layout = $this->getLayout();

然后我们得到当前布局中的 block 名

$currentBlockNameInLayout = $this->getNameInLayout();

我们可以,然后获取表示模板中当前 block 的 XML 节点。
getXpath() 确实返回一个数组,所以这就是为什么我使用 list() 从这个数组中获取第一个项目

list($currentBlockInLayout) = $layout->getXpath("//block[@name='".$currentBlockNameInLayout."']");

我们有我们想要的并且可以回显它的标签元素

echo $currentBlockInLayout->label;

不过请注意,这是一个类型为 Mage_Core_Model_Layout_Element 的对象,所以如果您想做任何除了显示它以外的事情,您必须使用 __toString() 方法

var_dump( $currentBlockInLayout->label->__toString() );

完整代码:

$layout = $this->getLayout();
$currentBlockNameInLayout = $this->getNameInLayout();
list($currentBlockInLayout) = $layout->getXpath("//block[@name='".$currentBlockNameInLayout."']");
echo $currentBlockInLayout->label;
var_dump( $currentBlockInLayout->label->__toString() );

关于magento - 如何从 Magento 中的 phtml 中获取 xml 中的 block 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com