在Magento中,最好不要创建一个全新的模块,如何将现有模块的布局加载到我自己的模板中?
例如:我想加载“用户帐户信息中心”布局,但我想加载它以便我可以控制它与默认设置分开的方式。
结构如下:
我创建了一个带有网址“portal”的CMS页面。因此,导航为“http://website.com/portal”
CMS页面使用“include()”加载“/root/portal/portal.php”。这是我定义扩展Mage_Page_Block_Html的类的地方。
然后我添加了一个函数“renderDashboard()”,从现有的仪表板布局加载到仪表板中。
我已将“/app/base/default/customer/account/dashboard.phtml”复制到“/root/portal/content/dashboard.phtml”以用作模板。在我的“dashboard.phtml”中,我希望“$ this”对象的功能与之前的“dashboard.phtml”完全相同
“/根/门户/ portal.php”
class Portal_Block extends Mage_Page_Block_Html
{
public function renderDashboard()
{
$layout = Mage::getSingleton('core/layout');
//Load existing "customer/account_dashboard" block into my own "dashboard.phtml"
$block = $layout->createBlock('customer/account_dashboard')->setTemplate('/root/portal/content/dashboard.phtml');
//Need to now add it
//$block->renderLayout();
}
}
如果无法做到这一点,我将不得不在我的门户网站中重写整个帐户信息显示板模块......所以,我真的希望它是可能的!
答案 0 :(得分:0)
创建重写规则,将portal/
指向customer/account/
custom
portal
portal
customer/account/
No
转到yoursite.com/portal
直接测试。它应自动加载customer/account/
页面。
现在将旧版customer/account/
链接重定向回/portal
custom
redirect_to_portal
customer/account/
portal
Permanent (301)
转到yoursite.com/customer/account/
进行测试。它应自动重定向到/portal
帐户页面由多个模板文件组成。这些文件位置可能略有不同,具体取决于您是否使用自定义模板以及该模板是否覆盖Magento基本模板文件。
在app/design/frontend/default/base/template/customer/account/
下查看。
在这里,您可以找到与帐户页面相关的.phtml
个文件。如果您有一个覆盖这些文件的自定义模板,则需要修改模板目录中的文件。示例:app/design/frontend/[TEMPLATE_NAME]/[TEMPLATE_NAME]/template/customer/account/
dashboard.phtml
文件是仪表板页面的主模板文件。
您还可以查看app/design/frontend/default/base/layout/customer.xml
并查找<customer_account_index>
标记。在这里,您可以看到哪些.phtml
文件以及正在加载到帐户模板中的块。