创建块或调用块时我很困惑。在phtml文件中假设在footer.phtml文件中如果我想调用静态块然后我写
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('static_block_name')->toHtml(); ?>
和简报(位于我的主题文件夹中的模板文件夹中)
<?php echo $this->getLayout()->createBlock('newsletter/subscribe')->setTemplate('newsletter/subscribe.phtml')->toHtml(); ?>
那么我应该在footer.phtml中写什么来调用内置块(在基础文件夹中),如日历,验证码等? 请告诉我如何在phtml文件和xml文件中调用它们。
请告诉我
1. <?php echo $this->getLayout()->createBlock('**?**')->setTemplate('**?**')->toHtml(); ?>
2. xml block code and where to put the code
3. rules to write block type and name.
-Thanks。
答案 0 :(得分:1)
您提到的两个块之间的唯一区别是类型。 cms / block类型是一种内置的方式,您可以创建任意文本块,其中包含对其他内容的可选引用(Magento通过小部件(如链接或对其他块的调用)本机的附加信息)。
您列出的第二个块是表示特定块的块的块,该块用于输出具有特定模板的特定模型。如果你深入了解Magento的结构,你会发现Magento的核心代码存在于app / code / core / Mage文件夹中。在其中,您将找到诸如目录/类别,目录/产品,新闻稿/订阅等项目。此外,根据MVC,您将需要一种方式通过Magento的条款通过视图或模板向用户呈现该模型。 app / design / frontend / {package} / {theme} / template /文件夹中将存在对模型的视图。您应该在两组文件夹之间找到一些连续性,并将到达一组可用于输出块的视图。在这种产品的情况下,您将找到app / code / core / Mage / catalog / product /和app / design / frontend / base / default / template / catalog / product / view.phtml。
希望这会让你更好地了解Magento的野兽。正如Alan Storm所描述的,Magento是not your father's PHP。