希望有人可以帮我解决这个问题,因为我有点困惑。
我正在尝试对产品选择器小部件进行逆向工程,以便我可以从前端的按钮触发它。我正在取得进展,虽然很慢。
令我困惑的一件事是container.phtml文件中的一行代码:
getTreeHtml()?>我似乎无法看到这个'getTreeHtml'方法的位置。我查看了模板的关联块,继承的块,以及对象层次结构的所有方式。我也在整个Magento目录上进行了文本搜索,但这种方法没有出现在任何地方......我在这里错过了什么?
感谢任何帮助, 伊恩
答案 0 :(得分:1)
它是一个非声明的字段访问器('魔术'方法)。每当你在Varien_Object
上调用setField(value)或getField()而没有真正声明这些方法(它们在类中不存在)时,Varien_Object会检查其$ this->数据数组以查找带有a的条目'字段'键。如果存在这样的条目,则返回/设置$ this-> data ['field']值。
该方法用于您的Widget。查看文件:
./Mage/Adminhtml/controllers/Catalog/Product/WidgetController.php:
在其中的某个地方你可以找到这个电话:
setTreeHtml($categoriesTree->toHtml())
如您所见,该值在控制器中设置,稍后可以在模板中读取。