创建Magento扩展 - 从哪里开始?

时间:2016-02-26 12:03:04

标签: magento

我想制作一个在产品页面上注入视频的扩展程序。

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

这么多问题,找不到重点。请您分享一个简单的关注槽供我阅读?感谢。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

致谢:马吕斯

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