2016-02-26 84 views
1

我想制作一个扩展程序,在产品页面上插入视频。创建Magento扩展 - 从哪里开始?

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

这么多问题,找不到焦点。你可以分享一个简单的跟踪槽供我阅读吗?谢谢。

+0

你可以用简单的方法做到这一点,比如为产品视频的链接添加属性(文本),然后只需在产品视图页面上获取即可。 – Shrikant

回答

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 1httpd.conf文件(或相应的文件nginx的或别的东西)
  3. 如果分机连接到核心功能添加 依赖性在声明文件<depends><Mage_Catalog /></depend>
  4. 如果模块是供社区使用,使用community作为codepool到 给开发者重写一些类的机会,而不 修改代码直接
  5. 把你的前端设计文件app/design/frontend/base/default ,使它们可用于所有的主题。
  6. 将您的管理设计文件放入 app/design/adminhtml/default/default并且不要更改管理员 主题。我可能想在我的模块中更改它。
  7. 在 公司名称前加上布局文件名称和模板文件夹名称,以便更容易区分它们。 easylife_articles.xmlapp/design/.../easylife_articles
  8. 把你静态资源(JS,CSS,图像)类似的文件夹 模板文件easylife_articles/images/doh.png
  9. 连接着如何卸载扩展一个简单的文本文件: 文件需要什么被删除,需要删除哪些表,需要从core_config_data表中删除哪些 配置设置。
  10. 不要直接在模型,块或助手中编写查询,请使用 资源模型。
  11. 请勿直接使用表名写查询Select * from sales_flat_order where ...。使用Zend_Select并使用->getTable('sales/order')转换 表名。
  12. 使用基本网址将js文件包含在模板中。 错误 <script type="text/javascript" src="../js/some.js"></script>Right<script type="text/javascript" src="<?php echo Mage::getBaseUrl('js').'some.js'?>"></script>
  13. 除非必要,否则不要重写类。使用观察者,如果使用帮助器方法不可能接收作为参数的实例,并且您想要覆盖的类的实例。 错误: 重写Mage_Catalog_Model_Product添加方法 getProductArticles()Right。在你的助手添加 getProductArticles(Mage_Catalog_Model_Product $product)
  14. 如果覆盖类把他们的名单在readme.txt文件
  15. 使用默认的管理路径为您的模块管理部分。 错误的管理员urlarticles/adminhtml_articles/indexRight管理员地址admin/articles/index
  16. 为您的管理员部分添加ACL。我可能想要限制访问某些管理员的 。
  17. 如果不是 必要,请不要添加其他js框架(jquery,mootools,...)。在原型中编写代码。
  18. 让你的模板html W3C有效(这是为像我这样的OCD开发者)。
  19. 请勿将图像放入media文件夹中。使用skinmedia 文件夹通常没有版本,这使得在不同环境中移动网站变得更加困难。
  20. 测试扩展名与平面目录打开和关闭。为了不使开发时间增加一倍,请使用Chaos Monkey
  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. 不要通过您的扩展对您的服务器进行持续调用以进行许可证验证。一次,在安装时绰绰有余(我也不喜欢这种方法,但它总是比打电话更好)。 (受this question启发)
  29. 开发日志激活并不时看看 var/log/system.log文件。即使在开发者模式下,此处列出的错误也不会显示为 。如果至少有一个错误,在运行扩展的几个月后,您会以大日志文件结束 。
  30. 如果您的扩展影响结帐过程中或在 订单某种方式,确保它与多出货,或者如果它 不应与多运输工作,确保它不会影响它。
  31. 请勿替换默认的管理员通知栏(或Feed URL)。如果 我对你有什么提供感兴趣,我将订阅你的 时事通讯。让我看看Magento要说些什么。对我来说更重要的是 。
  32. 如果您有Ioncube公司(或一些其他 )加密你的代码文件......呃......我只是恨你,我希望你的企业破产

这就是迄今。只要我想到别的东西,我会加入更多。

+0

感谢您的联系人。 –

+0

一些好的观点,尽管希望一个开发商的业务失败是斗气,平均和讨厌。问题:如果有人设置了插件业务,并且它将成为他们唯一的收入来源,并且他们必须快速盈利,因为他们有承诺(家庭,抵押贷款和其他员工),那么在您的经验中最有效的方式是保护收入源于人们共享代码造成的损失,或者购买一个域名的许可证并在10上使用它,并将其交给他们的好友等?也许可以出售支持许可证,但大多数人不喜欢支持支付。 – Nick

+0

@尼克你是绝对正确的。 – fresher

1

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

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

只要创建扩展适用于您,您还可以找到很多关于如何修改产品 - 查看,或者您可以在此发布更具体的问题或magento.stackexchange.com

+0

谢谢@simonthesorcerer,我会阅读Alan Storm的材料。 –