你如何找到你在Magento寻找的代码块?

时间:2009-10-23 21:22:20

标签: php magento

我一直在努力应对愚蠢的局面。客户要求我更改其“高级搜索”页面以添加一些选项。此页面的网址类似于http://www.domainname.com/index.php/catalogsearch/advanced/

这是一个Magento商店,我没有这个框架的经验。我试图学习它,但发现学习曲线太陡,无法获得足够的知识来按时完成项目。

所以我首先制作了一个小型PHP工具,在所有源文件中搜索搜索词并报告返回的点击次数。我使用此工具查找高级搜索页面上显示的唯一字符串。但是文本无处可寻!

我的下一次尝试是查看数据库以查找字符串。所以我导出了所有数据库数据并将生成的查询复制到我的代码编辑器中并再次搜索,一无所获!

这很尴尬,让我发疯。我找不到输出高级搜索选项的代码块!

'任何'帮助将非常感激。

谢谢, 马吉德

2 个答案:

答案 0 :(得分:6)

到目前为止,我一直在本地开发盒上使用以下策略 - 显然不要在实体店中尝试这个!:

  1. 启用系统中的模板路径提示+阻止名称 - >配置 - >开发人员。这将使您获得执行最终渲染的phtml文件以及它使用的块对象类型。除非你限制了IP,否则每个访问者都会看到这些!
  2. 然后在phtml文件中进一步挖掘你可以轻松Zend_Debug :: dump($ var)来检查有问题的变量/对象并找到对象类型等。
  3. 在您的编辑器中搜索或通过/ app / code目录搜索以查找哪些文件定义了您刚刚找到的对象类型 - 尽管它基于Zend,大部分时间都可以从对象中找出正确的文件路径类。
  4. 另外

    • 一个方便的技巧是故意在php / phtml文件中插入错误,Magento为您提供了一个格式良好的错误屏幕,其中包含一个有趣的调用堆栈
    • 核心文件中的
    • echo()语句通常运行良好,在Magento设置中它们通常不会触发在错误的时间发送的html标题
    • 使用像Netbeans / Eclipse / Zend工作室等IDE,并将所有Magento代码放入您的项目中,生成的phpdoc信息,“公开声明”和代码帮助将为您节省数小时的搜索时间
    • 花时间让您的测试服务器上的Xdebug使用IDE,让您可以使用它。我发现从头开始(在Mac上)设置的最简单的是使用Netbeans作为IDE的本地Mamp安装 - Netbeans网站将引导您完成此操作,一旦您运行良好,您可以忘记大部分其他技巧!

    这些只是我到目前为止所尝试的内容 - 请提出更多建议! 我还没有找到一种技术来调试Magento使用的大量XML文件中的XML问题的配置问题,这里的问题往往会无声地失败,因此很难跟踪,因为xml文档很糟糕。

答案 1 :(得分:1)

Magento中的URL告诉您某个模块的模板文件的位置。

例如,当您查找catalogsearch/advanced/时,所有模板文件都位于应用/design/frontend/default/your-theme/中。

查看该文件夹,它应该是显而易见的。你将有一个名为catalogsearch的文件夹,里面有一个名为advanced的文件夹;里面有两个文件:

  • form.phtml
  • result.phtml