Questions tagged «module»

有关开发自定义模块的问题

1
Magento2:不同类型的composer.json文件
在Magento2中,我看到不同的供应商遵循以下给定的不同composer.json格式来命名其模块。 第一: "autoload": { "files": [ "registration.php" ], "psr-4": { "Amit\\SamplePage\\": "" } } 第二名: "extra": { "map": [ [ "*", "Amit/SamplePage" ] ] } 1.它们之间有什么区别,我应该遵循哪一个? 2. registration.php用于注册一个模块然后为什么composer.json所有模块都需要?

3
Magento 2:选择哪种扩展机制?
我们可以通过两种方式扩展控制器:使用首选项和使用插件。但是我不明白,哪一个是好的,以及偏好vs插件的优缺点。 <preference for="Magento\Checkout\Controller\Index\Index" type="mymodule\Helloworld\Controller\Index\Index" /> <type name="Magento\Catalog\Model\Product"> <plugin name="getname-test-module" type="mymodule\Helloworld\Model\Plugin\Product" sortOrder="10"/> </type>

2
创建自定义pdf的最佳做法?
是否有创建新自定义(例如发票PDF)的最佳实践? 我需要具有自己的布局和表格的单独的自定义PDF。 这是我的问题:我以前从未在Magento中创建PDF,所以有很多问题在哪里以及如何开始。 我唯一拥有的是一个带有模型和集合的新模块。 我的模板需要phtml文件还是Zend_Pdf属于模型?

4
助手与模型?我应该使用哪个?
我正在使用magento中的Instagram API。如果他们在Instagram上关注我们的商店,我会为instagram的关注者提供优惠券。 我正在使用curl使用PHP对instagram进行API调用。目前,我将API调用包装在自定义模块中的辅助函数中。我是否应该将这些调用包装在模型中的函数中? 例如。我正在对Instagram进行API调用,以确定当前用户是否关注我的帐户。因此,在控制器中,我正在调用助手函数,该函数将关注状态返回给控制器。然后在我的控制器中,如有必要,我将更新我的模型。 将这些API调用放入辅助函数中,对吗?什么时候使用助手而不是模型? <?php class Company_SocialCoupons_InstagramController extends Mage_Core_Controller_Front_Action { public function followAction() { $status = Mage::helper('socialcoupons/instagram')->getFollow(); if ($status == 'follows') { // 1. ADD DATA TO MY DATABASE using my custom model // - Ex. Mage::getModel('socialcoupons/instagram')->setInstagramId(*IGID*), etc. // 2. CREATE COUPON // 3. EMAIL COUPON TO CUSTOMER } …

4
使用模块layout.xml用于块将CSS和JS添加到<head>
概要 我想在我的分组产品视图和简单产品视图中添加一个块。该块将提供一些关于悬停状态的很好的工具提示,我使用的是一个带有一个jquery插件和一个css样式表的小型库。 我希望仅在这些页面上将这两个资源包括在magento中。 笔记 我正在运行一个自定义主题; 缓存被禁用 ; 和 我的文件在/js目录内; 迄今… 尽管如此,我知道一种方法是layout.xml在模块中使用,起初这没有用,所以我认为也许我需要在内部进行额外的配置config.xml以告知Magento我的布局要求-这也没有用。 通过没有工作,我的意思是,不装我的资产。 请在下面找到附件。 app / code / local / Vendor / Rating / etc / layout.xml &lt;?xml version="1.0"?&gt; &lt;layout&gt; &lt;default&gt; &lt;reference name="head"&gt; &lt;action method="addJs"&gt; &lt;script&gt;vendor/qtip/jquery.qtip.min.js&lt;/script&gt; &lt;/action&gt; &lt;action method="addCss"&gt; &lt;stylesheet&gt;vendor/qtip/jquery.qtip.min.css&lt;/stylesheet&gt; &lt;/action&gt; &lt;/reference&gt; &lt;/default&gt; &lt;/layout&gt; 应用程序/代码/本地/供应商/评级/etc/config.xml &lt;?xml version="1.0"?&gt; &lt;config&gt; ... &lt;frontend&gt; &lt;layout&gt; …

4
我应该为Magento开发哪些有趣的模块进行学习?
现在有一段时间我一直在研究Magento。我做了很多模块,但是我仍然认为我需要更多的培训,但是我想不出一个有趣的模块来严格地处理尽可能多的事情。 这是我制作的一些模块:博客,管理员电子邮件通知,相关产品,产品视图弹出窗口。 因此,有人可以建议一个模块来要求我学习我尚未接触的东西或有趣的思维方式吗? 该问题可能没有此站点所需的100%Q / A答案表格,但我希望我能得到一些建议 谢谢。 PS:一切都严格出于教育目的,我想学习Magento的所有内容。

2
条款和条件的验证(自定义模块)
我制作了一个自定义模块,使我可以将T&C复选框移动到摘要div中的付款方式和下订单按钮下方,如下所示: 现在,每当我选择一种付款方式时,请选中“条款和条件”中的复选框并按“下订单”,将弹出以下内容: 我已经尝试了以下方法,但不幸的是没有运气: Magento 2-在结帐中移动条款和条件的位置 提交订单后的Ajax有效负载: 在不使用模块的情况下使用结帐时,有效负载的内容(付款信息)具有: extension_attributes: {agreement_ids: ["1"]} agreement_ids: ["1"] 当使用我的自定义模块时,它如下: extension_attributes: {agreement_ids: [""]} agreement_ids: [""] 因此它是空的...这可能是问题所在。我该如何解决? 码 module.xml &lt;?xml version="1.0" ?&gt; &lt;config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"&gt; &lt;module name="Vendor_Checkout" setup_version="1.0.0"&gt; &lt;sequence&gt; &lt;module name="Magento_Checkout"/&gt; &lt;/sequence&gt; &lt;/module&gt; &lt;/config&gt; checkout_index_index.xml &lt;page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"&gt; &lt;head&gt; &lt;css src="Vendor_Checkout::css/checkout.css"/&gt; &lt;/head&gt; &lt;body&gt; &lt;!-- Disabling the T&amp;C checkbox …

1
如何在我的模块中添加自定义帮助器?
如何在Magento 2模块中创建新的Helper或重写/重写Core Helper? 我尝试将依赖项添加到module.xml“自定义模块”中,但它根本不会加载Helper类。 下面是我的module.xml; &lt;?xml version="1.0"?&gt; &lt;config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"&gt; &lt;module name="Company1_Module1" schema_version="1.0.0" setup_version="1.0.0"&gt; &lt;sequence&gt;Magento_Directory&lt;/sequence&gt; &lt;/module&gt; &lt;/config&gt;

1
旧的magento / magento2样本模块的叉子
Magento的GitHub帐户曾经有一个项目位于 https://github.com/magento/magento/magento2-samples 该存储库包含约20个如何构建 Magento 2模块的示例。但是,此项目已被删除,原因是-原因? 尽管这些模块中的某些实践已被放弃,并且并非所有模块都已运行,但对于开发人员学习和使用Magento 2而言,这仍然是重要的资源,无论是历史还是实践。 有人知道存储库是否有可用的公共分支吗?

5
将模块的外部.js文件代码移至模板[phtml]文件
我们有一个带有以下代码的自定义模块 app/design/frontend/rwd/Theme1/layout/aitcg.xml &lt;action method="addJs"&gt;&lt;script&gt;aitoc/aitcg/Aitcg/View/Abstract.js&lt;/script&gt;&lt;/action&gt; 由于我们无法在此.JS文件中使用php代码,因此有什么方法可以将当前Abstract.js文件中的代码移动到某个.phtml文件中? 编辑 我按照拉斐尔的答案并更改了代码,如下所示: &lt;block type="aitcg/template" name="aitcg_js_styles1" template="aitcg/js_styles1.phtml" /&gt; 但仍然Abstract.Js文件的结果未显示在js_styles1.phtml中 布局文件:http://pastebin.com/BZGRaiDH js_styles1.phtml:http://pastebin.com/m85q9eMh 我正在尝试onclick button =,onclick="setproductlogin('&lt;?php echo $_product-&gt;getEntityId()?&gt;');setrequestlogin();"但这在.JS文件中不起作用,所以只有我正在尝试将.js代码复制到.php代码。 &lt;script&gt; _getControlPanelHtml: function() { if (this.config.editorEnabled) { return '&lt;div id="aitcg-control-panel"&gt;' + '&lt;button id="submit-editorApply-{{rand}}" onclick="setproductlogin('&lt;?php echo $_product-&gt;getEntityId()?&gt;');setrequestlogin();"&gt;SAVE DESIGN&lt;/button&gt;' + '&lt;button id="submit-editorReset-{{rand}}" &gt;{{reset_text}}&lt;/button&gt;' + '&lt;/div&gt;'; } return ''; }, &lt;/script&gt; 当我检查模板路径提示时,它正在加载phtml文件,但是JS代码结果未显示在前端。但是其他的html,php,js代码结果仍在显示..... 安慰 …


6
尝试访问Magento 2中的“自定义”模块时出现“ 404页面未找到”错误
我在供应商文件夹中创建了2个自定义模块。这是我的布局结构: -app -code -Company -Blog -HelloWorld -Controller -Hello -World.php -registration.php -etc -module.xml -frontend -routes.xml 两者都启用。 这是我routes.xml的HelloWorld模块代码: &lt;?xml version="1.0"?&gt; &lt;config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"&gt; &lt;router id="standard"&gt; &lt;route id="helloworld" frontName="helloworld"&gt; &lt;module name="Company_HelloWorld"/&gt; &lt;/route&gt; &lt;/router&gt; &lt;/config&gt; 这是我的代码module.xml: &lt;?xml version="1.0"?&gt; &lt;config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"&gt; &lt;module name="Company_HelloWorld" setup_version="1.0.0"&gt; &lt;/module&gt; &lt;/config&gt; 这是我的registration.php文件: &lt;?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Company_HelloWorld', __DIR__ ); 这是我的控制器代码: …


7
Magento学习资源
我是magento的新手,没有MVC的概念,但是我得到了一份工作来进行开发,这意味着要了解它并执行规范,现在我真的太想了解magento“ Beast”了,所以我感到压力太大了,我一直在关注Tuts + Magento基础知识,因此收获很多。因为“ Hello World”不是进入现实世界的一杯茶,所以一切都比较模糊。我真的想要更多深入的教程,其中我更多地了解细分,例如 我想知道模型,控制器和视图如何一起工作以将数据,功能馈送到给定的html元素,它如何知道如何将数据映射到字段。 如何制作额外的菜单并链接到它。 除了“ Hello函数”之外,还有什么更实际的使用模型,控制器,资源等的方式。 当我们说getABC()等等时,我们如何知道应采用哪种方法或要问什么。 还有很多要点使商店具有出色的功能。我知道将其全部销毁并不是太快,但是我非常渴望在学习和让自己感到骄傲之前失去睡眠。我很新对Magento而言,但对创建块,帮助器,控制器等有很深的了解。即使对于Magento设置的示例,我仍然很模糊,无法制作一个模块,该模块只说了“ Magento基础知识”中所述的“你好,世界”,生活中学习Magento的方法,例如显示用户信息(如个人资料),更新信息,获取用户订购和历史记录的产品等。在创建表单时如何将我的值映射到正确的字段?例如,名字:名字姓氏:姓氏地址:地址等 他们将以块或控制器的形式进入哪里?如何制作布局以形成表格?我知道诸如此类的东西loadLayout并renderLayout会产生布局,但是如何使用该表单或布局中的字段映射到我需要的字段,甚至显示可以执行其他操作的自定义菜单,例如 帐户摘要帐户历史记录订单历史记录 就像我说的那样,我一直关注MagentoU的“ Magento基础知识”,似乎无法回答这些问题。 编辑:可以是我不了解MVC,我遵循Treehouse和Lynda进行测试,但是那边没有MVC PHP进行测试。只有ASP.net tuts。我为MVC 找到了此链接,但仅在它值得的情况下? 更新:探索了许多链接之后,我仍然对为什么使用模型和控制器感到困惑。我们如何将有关客户或仪表板的信息映射到已登录的用户,提供的示例中有诸如getProduct(1)之类的示例,magento如何知道要查找和使用哪个ID并对其进行处理。因此,我的意思是说,什么样的数据存储在1.模型,2。控制器,3。我知道引用用于获取xml中已定义的块,但实际的实际示例将是很好的。

1
Magento2:如何在自定义模块中通过composer.json包含第三个pary模块
我创建了一个自定义模块,该模块依赖于第三方模块(tecnickcom / tcpdf),我在自定义模块composer.json文件中添加了此库 { "name": "packagename/mymodule", "description": "N/A", "require": { "php": "~5.5.0|~5.6.0", "magento/magento-composer-installer": "*", "tecnickcom/tcpdf":"*" }, "type": "magento2-module", "version": "2.0.0", "license": [ "GPL-3.0" ], "autoload": { "files": [ "registration.php" ], "psr-4": { "Packagename\\Mymodule\\": "" } } } 当我运行此composer.json文件时,在我的自定义模块中创建了create vendor文件夹,并下载了“ tecnickcom / tcpdf”库,但该文件应该位于供应商的根文件夹中。我怎么能做到这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.