magento在同一页面中显示2个不同名称空间的不同模块

时间:2013-12-01 16:22:01

标签: php magento namespaces router

我创建了两个不同的模块Test和First关联到不同的命名空间:Pfay(Test),Train(First)。

由于某种原因,此链接http://localhost/magento/index.php/first/index/将调用Test / controllers / indexController.php的函数IndexAction

以下是代码: 用于测试

<?php
 class Pfay_Test_IndexController extends Mage_Core_Controller_Front_Action
{
 public function indexAction()
 {
      $this->loadLayout();
      $this->renderLayout();
 }
}
?>

for First:

    <?php
    class Train_First_IndexController extends Mage_Core_Controller_Front_Action
    {
         public function indexAction()
         {
              $this->loadLayout();
              $this->renderLayout();
              // echo "First Index";
         }
    }

    ?>

config.xml(test)

<?xml version="1.0"?>
  <config>
     <modules>
        <Pfay_Test>
          <version>1.0.0</version>
        </Pfay_Test>
     </modules>
     <frontend>
       <routers>
          <routeurfrontend>
              <use>standard</use>
              <args>
                 <module>Pfay_Test</module>
                 <frontName>test</frontName>
              </args>
           </routeurfrontend>
       </routers>
       <layout>
               <updates>
                    <test>
                         <file>test.xml</file>
                     </test>
                </updates>
        </layout>
    </frontend>
    <global>
     <blocks>
         <test>
              <class>Pfay_Test_Block</class>
         </test>
      </blocks>
    </global>
</config>

config.xml(第一个)

<?xml version="1.0"?>
  <config>
     <modules>
        <Train_First>
          <version>1.0.0</version>
        </Train_First>
     </modules>
     <frontend>
       <routers>
          <routeurfrontend>
              <use>standard</use>
              <args>
                 <module>Train_First</module>
                 <frontName>first</frontName>
              </args>
           </routeurfrontend>
       </routers>
       <layout>
           <updates>
                <first>
                     <file>first.xml</file>
                 </first>
            </updates>
        </layout>
    </frontend>
    <global>
     <blocks>
         <first>
              <class>Train_First_Block</class>
         </first>
      </blocks>
    </global>
</config>

的test.xml

<layout version="0.1.0">
     <default>
          <reference name="content">
          </reference>
      </default>
      <routeurfrontend_index_index>
           <reference name="content">
                <block type="test/monblock"  name="afficher_monbloc"
                          template="test/afficher.phtml" />
           </reference>
      </routeurfrontend_index_index>
      <routeurfrontend_index_mamethode>
           <reference name="content">
                <block type="test/monblock"  name="afficher_monbloc"
                          template="test/afficher2.phtml" />
           </reference>
      </routeurfrontend_index_mamethode>
</layout>

first.xml

<layout version="0.1.0">
     <default>
          <reference name="content">
          </reference>
      </default>
      <routeurfrontend_index_index>
           <reference name="content">
                <block type="first/firstblock"  name="firstblocindex"
                          template="first/first_afficher.phtml" />
           </reference>
      </routeurfrontend_index_index>
      <routeurfrontend_index_mamethode>
           <reference name="content">
                <block type="first/firstblock"  name="firstblocmamethode"
                          template="first/first_afficher.phtml" />
           </reference>
      </routeurfrontend_index_mamethode>
</layout>

由于某种原因,http://localhost/magento/index.php/test/index/不再起作用(404未找到)。可能存在一些冲突,但我无法找到。

你可以在这里看到问题。

enter image description here

1 个答案:

答案 0 :(得分:1)

在您的配置文件中,您已创建路由器别名

<routeurfrontend>

这两个插件都很常见,您需要重命名其中一个插件,并相应地在相应的布局xml中进行更改。这应该有用。