我是magento的新手,我正在尝试根据此网址查找文件/代码:
somedomainfortesting.com/index.php/catalogsearch/result/?q=test
出于安全考虑,我只是将测试域名放在上面,但一般情况下,我只是想找到上述网址的文件(views / controller)。我是magento的新手。
答案 0 :(得分:5)
这很复杂,但一般来说,Magento URL有三个部分(Zend Framework 1样式)
http://somedomainfortesting.com/index.php/front-name/controller-name/action-name
“正面名称”通常标识您可以在其中找到控制器的模块文件夹。
例如,可以在
中找到以catalogsearch
作为前缀的URL的控制器
#File: app/code/core/Mage/CatalogSearch/controllers/
你知道这一点,因为在Mage_CatalogSearch
配置文件中,有一个配置的前面名称(<frontName>catalogsearch</frontName>
)
#File: app/code/core/Mage/CatalogSearch/etc/config.xml
<routers>
<catalogsearch>
<use>standard</use>
<args>
<module>Mage_CatalogSearch</module>
<frontName>catalogsearch</frontName>
</args>
</catalogsearch>
</routers>
URL的下一部分定义了控制器名称。控制器名称确定controllers文件夹中的特定控制器文件。同样,在您的示例中,控制器名称为result
,因此您可以在以下文件中找到控制器(ResultController.php
)
app/code/core/Mage/CatalogSearch/controllers/ResultController.php
最后,操作名称确定Magento控制器中的哪个方法将调用。在您的示例中,没有操作名称,因此Magento默认使用名称index
,这意味着名为indexAction
的名称为
#File: app/code/core/Mage/CatalogSearch/controllers/ResultController.php
public function indexAction()
{
//...
}
上面你会注意到我使用的术语通常标识 - 这是因为有很多额外的情况,多个模块可以声明一个前线名称,或者用户可以重写URL去其他地方。如果你有兴趣学习更多并深入挖掘 - 我的原始Magento for PHP MVC Developers blog series仍然是一个很好的起点(内容已过时,但仍然准确)。如果你之后没有受伤和殴打,你可以阅读In Depth Magento Dispatch,其中包括Magento如何处理URL路由,从上到下。
最后,还有一点自助,你可以结账Commerce Bug - 这是我的商业Magento调试扩展,并包含有关加载页面的特定控制器的信息。
如果您认为值得/有用,您可以使用免费演示轻松查看Magento默认值,并使用buy a copy自己的系统。
希望有所帮助!
答案 1 :(得分:1)
此外,您可以通过启用此处的路径匹配来找到模板,即渲染内容:系统&gt;配置&gt;开发人员,将配置范围更改为默认存储视图,然后查找路径提示设置并启用它。