创建Magento扩展 - 从哪里开始



我想做一个扩展,在产品页面上注入视频。

我已经在Magento网站上阅读了很多文档,但真诚地说,我不知道从哪里开始。Magento扩展和小部件有什么区别?我可以只使用 JavaScript 开发我的扩展吗?我真的需要使用 PHP 来开发一个吗?

这么多问题,找不到重点。你能分享一个简单的跟随槽让我继续阅读吗?谢谢。

学分:马吕斯

https://magento.stackexchange.com/questions/8344/how-to-write-a-custom-extension/8345#8345

这是我通常做的事情:

  1. 始终与error_reporting一起发展。
  2. 始终在isDeveloperMode设置为true的情况下进行开发。只需将SetEnv MAGE_IS_DEVELOPER_MODE 1添加到您的httpd.conf文件(或nginx或其他内容的相应文件)中即可
  3. 如果扩展链接到核心功能,请添加声明文件<depends><Mage_Catalog /></depend>中的依赖关系
  4. 如果该模块供社区使用,请使用community作为代码池让开发人员有机会在没有直接修改代码
  5. 将前端设计文件放在app/design/frontend/base/default以使它们可用于所有主题。
  6. 将管理员设计文件放入 app/design/adminhtml/default/default且不更改管理员主题。我可能想在我的一个模块中更改它。
  7. 在布局文件名和模板文件夹名称前面加上公司名称,以便更容易隔离它们。 easylife_articles.xmlapp/design/.../easylife_articles
  8. 将静态资源(js,css,images)放在与模板文件easylife_articles/images/doh.png
  9. 附加一个简单的文本文件,其中包含如何卸载扩展:什么文件需要删除,哪些表需要删除,哪些需要从表中删除core_config_data配置设置。
  10. 不要直接在模型、块或帮助程序中编写查询,请使用 为此提供资源模型。
  11. 不要直接使用表名编写查询Select * from sales_flat_order where ...。使用Zend_Select并转换 使用 ->getTable('sales/order') 的表名。
  12. 使用基 URL 在模板中包含js文件。 <script type="text/javascript" src="../js/some.js"></script> . <script type="text/javascript" src="<?php echo Mage::getBaseUrl('js').'some.js'?>"></script>
  13. 除非必要,否则不要重写类。使用观察器,如果 无法使用作为参数接收的帮助程序方法和 要重写的类的实例。错误: 重写Mage_Catalog_Model_Product以添加方法 getProductArticles() .。在帮助程序中添加 getProductArticles(Mage_Catalog_Model_Product $product)
  14. 如果覆盖类,请将类的列表放在readme.txt文件中
  15. 使用模块管理部分的默认管理路径。 错误的管理网址 articles/adminhtml_articles/index .正确的管理员网址 admin/articles/index
  16. 为您的管理部分添加 ACL。我可能想限制访问 一些管理员。
  17. 不要添加其他js框架(jquery,mootools,...),如果它不是 必要。在原型中编写代码。
  18. 让你的模板html W3C有效(这是针对像我这样的强迫症开发人员)。
  19. 不要将图像放在media文件夹中。使用skin .The media 文件夹通常没有版本控制,这使得移动 不同环境下的网站。
  20. 使用打开和关闭平面目录来测试扩展。为了不使开发时间加倍使用混沌猴
  21. 使用缓存on和缓存off测试扩展。
  22. 避免在模块和类名中使用大写字母。如果不是 经过正确测试,这可能会导致不同操作系统出现问题。这更像是一个建议,而不是"必须"。
  23. 在代码中调度事件,使开发人员更容易 更改功能。
  24. 遵循Magento使用的相同编码标准并注释您的代码。
  25. [编辑] 不要使用 php 短标签 ( <? $this->doSomething() ?> )。使用完整标记 ( <?php $this->doSomething()?> )。也不要使用短回声标签。(<?="D'oh";?>)。用途 ( <?php echo "D'oh";?>
  26. 使用$this->__翻译您的文本,并至少为en_US语言添加区域设置翻译文件与您的文本(app/local/en_US/Easylife_Articles.csv)。并非全部 网站以英文构建,文本识别 翻译非常耗时。
  27. 如果您销售扩展,则至少提供基本支持。或者至少 回复您收到的支持电子邮件。
  28. 不要通过扩展不断调用服务器以进行许可证验证。一次,在安装时绰绰有余(我也不喜欢这种方法,但它比一直打电话要好)。 (灵感来自这个问题)
  29. 在激活日志的情况下进行开发,并不时查看 var/log/system.log文件。此处列出的错误未显示 即使打开了开发人员模式。如果至少有一个错误,则结束 运行扩展几个月后,使用大型日志文件。
  30. 如果扩展影响结帐流程或 以某种方式,确保它适用于多运输,或者如果它 不应该使用多运输,请确保它不会影响它。
  31. 请勿替换默认的管理员通知栏(或源 URL)。如果 我对你提供的东西感兴趣,我会订阅你的 通讯。让我看看Magento要说什么。它更重要 对我来说。
  32. 如果您使用 Ioncube(或其他东西)加密代码文件 否则)...井。。。我只是恨你,我希望你的企业破产

这就是到目前为止的情况。一旦我想到其他事情,我会添加更多。

你肯定需要XML和PHP,因为这主要是Magento构建的基础。

除了官方文档之外,还有很多有用且非常多样化的教程来解释Magento的机制。网络搜索会有所帮助,我可以推荐 Alan Storm 的所有内容,例如这个 litte 模块:http://alanstorm.com/magento_list_module

一旦创建扩展适合您,您还会找到许多有关如何更改产品视图的教程,或者您可以在此处或 magento.stackexchange.com 上发布更具体的问题。

最新更新