Magento:插件中出现错误404

时间:2015-10-15 05:18:25

标签: php magento

我的php版本是5.5.11 一切都是最新的。

我的插件正在管理面板中显示但是当我访问该网址时,它给出了错误404。 网址:<sitename>/index.php/module/index

在管理面板中启用了Testplugin_Module。

这是配置文件: 区域设置/ Testplugin /模块的/ etc / config.xml中

    <?xml version="1.0"?>
    <config>
        <modules>
            <Testplugin_Module>
                <version>0.1.0</version>    <!-- Version number of your module -->
            </Testplugin_Module>
        </modules>
        <frontend>
            <routers>
                <module>
                    <use>standard</use>
                    <args>
                        <module>Testplugin_Module</module>
                        <frontName>module</frontName>
                    </args>
                </module>
            </routers>
<layout>
            <updates>
                <module>
                    <file>module.xml</file> <!-- Our layout file name-->
                </module>
            </updates>
        </layout>
    </frontend>
    <global>
        <blocks>
            <module>
                <class>Testplugin_Module_Block</class>
            </module>
        </blocks>
    </global>
    </config>

这是插件: 应用程序的/ etc /模块/ Testplugin_Module.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Testplugin_Module>
        <active>true</active>
        <codePool>local</codePool>
        </Testplugin_Module>
    </modules>
</config>

这是indexcontroller: 区域设置/ Testplugin /模块/控制器/ IndexController.php

<?php
class Testplugin_Module_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo "Hello tuts+ World";
    }
}
?>

我已经从管理面板中禁用了缓存,我尝试重新启动我的灯,我也尝试登录并注销,但仍然没有成功。 不知道出了什么问题,任何帮助都会受到赞赏。

编辑:

制作布局: 我在app / design / frontend / base / default / layout / module.xml

进行了布局
<?xml version="1.0"?>
    <layout version="0.1.0">
        <module_index_index>
            <reference name="content">
                <block type="module/module" name="module" template="module/module.phtml" />
            </reference>
        </module_index_index>
    </layout>

模板: 应用程序/设计/前端/碱/默认/模板/模块/ module.phtml

<?php
    echo $this->myfunction();
?>

阻止:local / Testplugin / Module / Block / Module.php

<?php

    class Testplugin_Module_Block_Module extends 

Mage_Core_Block_Template
        {
            public function myfunction()
            {
                return "Hello tuts+ world";
            }
    }

?>

2 个答案:

答案 0 :(得分:2)

首先在你的Testplugin_Module.xml中添加版本,以便磁力可以识别它是哪个版本以及你是否想要更新,以便你可以。

Testplugin_Module.xml app\etc\modules

<?xml version="1.0"?>
<config>
  <modules>
    <Testplugin_Module>
      <active>true</active>
      <codePool>local</codePool>
      <version>0.1.0</version>
    </Testplugin_Module>
  </modules>
</config>

Index.php app\code\local\Testplugin\Module\Block

<?php   
class Testplugin_Module_Block_Index extends Mage_Core_Block_Template{   





}

IndexController.php code\local\Testplugin\Module\controllers

<?php
class Testplugin_Module_IndexController extends Mage_Core_Controller_Front_Action{
    public function IndexAction() {

      $this->loadLayout();   
      $this->getLayout()->getBlock("head")->setTitle($this->__("module"));
            $breadcrumbs = $this->getLayout()->getBlock("breadcrumbs");
      $breadcrumbs->addCrumb("home", array(
                "label" => $this->__("Home Page"),
                "title" => $this->__("Home Page"),
                "link"  => Mage::getBaseUrl()
           ));

      $breadcrumbs->addCrumb("module", array(
                "label" => $this->__("module"),
                "title" => $this->__("module")
           ));

      $this->renderLayout(); 

    }
}

config.xml app\design\frontend\base\default\layout

<?xml version="1.0"?>
<config>
  <modules>
    <Testplugin_Module>
      <version>0.1.0</version>
    </Testplugin_Module>
  </modules>
  <frontend>
    <routers>
      <module>
        <use>standard</use>
          <args>
            <module>Testplugin_Module</module>
            <frontName>module</frontName>
          </args>
      </module>
    </routers>
        <layout>
          <updates>
            <module>
              <file>module.xml</file>
            </module>
          </updates>
        </layout>
  </frontend>
  <global>
    <blocks>
      <module>
        <class>Testplugin_Module_Block</class>
      </module>
    </blocks>
  </global>
</config> 

module.xml app\design\frontend\base\default\layout

<?xml version="1.0"?>   
<layout version="0.1.0">   
  <module_index_index>   
    <reference name="root">   
      <action method="setTemplate"><template>page/1column.phtml</template></action>   
    </reference>   
    <reference name="content">   
      <block type="module/index" name="module_index" template="module/index.phtml"/>   
    </reference>   
  </module_index_index>   
</layout>   

index.phtml app\design\frontend\base\default\template\module

Hi, I am there!!

我认为它现在开始工作了。

答案 1 :(得分:0)

您缺少定义模块的布局文件以及在config.xml中定义布局标记

我尝试了下面的代码而没有渲染布局它工作正常

Testplugin_Module.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Testplugin_Module>
        	<active>true</active>
        	<codePool>local</codePool>
        </Testplugin_Module>
    </modules>
</config>


config.xml 

<?xml version="1.0"?>
    <config>
        <modules>
            <Testplugin_Module>
                <version>0.1.0</version>    <!-- Version number of your module -->
            </Testplugin_Module>
        </modules>
        <frontend>
            <routers>
                <module>
                    <use>standard</use>
                    <args>
                        <module>Testplugin_Module</module>
                        <frontName>module</frontName>
                    </args>
                </module>
            </routers>
    	</frontend>
 </config>

IndexController.php

<?php
class Testplugin_Module_IndexController extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        echo "Hello tuts+ World";
	exit;
    }
}
?>