我正在尝试创建一个magento购物车模块,但事情并没有成功。这是我的步骤
我首先在app等中创建一个xml ...
<?xml version="1.0"?>
<config>
<modules>
<mywebwow_AdvancedCatalog>
<active>true</active>
<codePool>local</codePool>
</mywebwow_AdvancedCatalog>
</modules>
</config>
然后我在本地池中创建我的文件夹
/local/mywebwow/AdvancedCatalog/
在该文件夹中我放了以下文件
/Block/AdvanceCatalog.php
/controllers/indexController.php
/etc/config.xml
我在块
中添加了以下内容<?php
class mywebwow_AdvancedCatalog_Block_Advancedcatalog extends Mage_Core_Block_Template
{
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getHelloworld()
{
return 'Hello world';
}
}
<?php
class mywebwow_AdvancedCatalog_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->loadLayout();
$this->renderLayout();
}
}
<?xml version="1.0"?>
<config>
<modules>
<mywebwow_AdvancedCatalog>
<version>0.1.0</version>
</myweboww_AdvancedCatalog>
</modules>
<frontend>
<routers>
<AdvancedCatalog>
<use>standard</use>
<args>
<module>mywebwow_AdvancedCatalog</module>
<frontName>advancedcatalog</frontName>
</args>
</AdvancedCatalog>
</routers>
<layout>
<updates>
<AdvancedCatalog>
<file>advancedcatalog.xml</file>
</AdvancedCatalog>
</updates>
</layout>
</frontend>
<global>
<blocks>
<AdvancedCatalog>
<class>mywebwow_AdvancedCatalog_Block</class>
</AdvancedCatalog>
</blocks>
<helpers>
<AdvancedCatalog>
<class>mywebwow_AdvancedCatalog_Helper</class>
</AdvancedCatalog>
</helpers>
</global>
</config>
当我输入website.com/index.php/advancedcatalog/
时我得到了404.没有找到任何页面。
[编辑]
我将块类从MyWebwow_AdvancedCatalog_Block_AdvancedCatalog更改为MyWebwow_AdvancedCatalog_Block_Advancedcatalog
我添加了advancedcatalog.xml,它看起来如下......
<?xml version="1.0"?>
<layout version="0.1.0">
<advancedcatalog_index_index>
<reference name="content">
<block type="advancedcatalog/advancedcatalog" name="advancedcatalog" template="advancedcatalog/helloworld.phtml" />
</reference>
</advancedcatalog_index_index>
</layout>
然后有我已经拥有的以下内容
/template/advancedcatalog/helloworld.phtml
<h2><?php echo $this->getHelloworld(); ?></h2>
答案 0 :(得分:1)
要解决一些问题,希望有人能让你感动:
将您的控制器从indexController.php
移至IndexController.php
。在区分大小写的系统上,这很可能导致无法找到控制器。
您是否定义了布局文件? (例如advancedcatalog.xml)。您的文件定义advancecatalog.xml
,这似乎可能是一个错字,但如果您定义该文件它可以工作。
您是否定义了任何观点? loadLayout
将尝试加载页面的布局句柄并相应地渲染块。这是您必须指定advancedcatalog/advancedcatalog
块的地方。如果您有布局和模板,请发布。
不要使用camelcase作为块名,它会混淆Magento。该块需要定义为advancedcatalog/advancedcatalog
,但这将解析为mywebwow_AdvancedCatalog_Block_Advancedcatalog
(请注意没有第二个上限)。这将是一个问题。
修复它们并查看它是否开始工作,如果您仍然遇到问题,请告诉我。
谢谢, 乔
除非您正在调用模型,否则不一定需要模型。至于#4,你是否想在那个上使用混合大小写由你决定。在配置文件中,您将AdvancedCatalog
块的前缀指定为mywebwow_AdvancedCatalog_Block
,因此混合大小写应该不是问题。但是,相反,您可能希望块内的标记是小写的,这样当您调用模型时,您可以使用现有的Magento小写惯例。这样做:
<global>
<blocks>
<advancedcatalog>
<class>mywebwow_AdvancedCatalog_Block</class>
</advancedcatalog>
</blocks>
....
答案 1 :(得分:0)
@ numerical25:同样清理缓存以获得所需的输出(即),转到system-&gt;缓存管理,然后刷新magento缓存..