Questions tagged «module»

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

2
我应该如何许可我的模块?
我有一个为公司编写的模块。它从我们的后台解决方案中获取数据并将其导入到Magento中。它还从Magento接收订单,并将其导入后台软件。我已经阅读了一些可以使用的许可证类型,但不知道要使用哪个许可证。我的基本要求是: 我不希望有人复制/分​​发代码作为自己的工作。 该代码由我自己编写,但是调用了核心的magento函数。 该模块可以免费下载,但要使用该模块,您需要一个由我公司提供的网络服务网址(在收到付款后)。 我希望能够将其分发到Magento的所有版本(GO(我认为)除外)。 考虑到上述两个问题: 哪种许可证最适合我的需求?(我还没有找到一份完整的清单来阅读它们)。 如何执行此许可证?在每个脚本的顶部添加一些术语足以确保许可证到位吗? 如果此信息包含在某处,请随时将我链接到该信息,但是经过搜索后,我找不到任何能特别满足我情况的信息。

7
如何在Magento 2中覆盖.phtml文件
我想自定义产品详细信息页面,因此需要覆盖以下位置的一些.phtml文件。 所以,我想知道,如何重写一个.phtml的文件vendor\magento\module-catalog\view\frontend\templates\product或vendor\magento\module-theme\view

3
Magento 1:改进我的模块开发工作流程(Modman,composer,git)
我已经想了很长时间,但是我找不到正确的方法来做。 所以基本上,我正在与6个不同的网站合作,它们都运行Magento CE 1.9.2+ 在这些网站上,我使用的是我和与我合作的团队开发的一堆扩展程序(在这里我们谈论的是50多个扩展程序),这些扩展程序的代码存储在Bitbucket上。所以我不是唯一管理这些扩展的人,我们是3个人进行开发的人。 目前,当我想为其中一个扩展添加功能/修复错误时,这是​​我的工作流程: 通过Modman在一个网站上安装扩展的最新版本 修复错误/添加功能/测试 手动将更改复制到包含我所有扩展名的本地文件夹中 通过GIT从此扩展文件夹提交并推送到Bitbucket(每个模块1个Bitbucket存储库) 然后可以通过Modman安装新版本的模块 重要说明:我在这里使用带有复制的modman,没有符号链接。 我最大的问题以粗体突出显示:我希望能够跳过此步骤,因为这是引起问题的主要原因(有时会忘记某些文件,错误的复制/粘贴,涉及人为的操作)。 因此,如何改善工作流程以摆脱此手动复制/粘贴步骤?我愿意在这里提出建议。

4
何时在自定义模块中调度事件?
这是关于Magento 1和Magento 2的问题。 我了解,作为一种好的做法,鼓励第三方模块开发人员在其自定义模块中调度事件,以使其更易于与其他模块一起使用。 我想知道: 开发人员应在哪里在自定义模块中调度事件? 有没有建议的地点来安排活动?例如,控制器,模型,块,助手,观察者? 调度事件如何影响性能?

2
如何从模块的config.xml中获取数据
在模块A中,我需要从模块B和C的config.xml文件中获取一些数据。是否有专门用于此的方法或类? 特别是,我需要获取节点的XML结构和值,<default>以便可以恢复模块B和C的系统配置的默认值。以下是Wishlist模块的config.xml中的示例: <config> <default> <wishlist> <general> <active>1</active> </general> <email> <email_identity>general</email_identity> <email_template>wishlist_email_email_template</email_template> </email> </wishlist> </default> </config> 据我所知,Magento加载了所有模块的config.xml文件,所以我想知道此数据是否已经缓存,并且可以通过某种方式从缓存中检索?如果没有,如何以编程方式检索它?

2
添加CMS和类别使用的自定义布局以及自定义模块的问题
我的商店中有一个类别,需要的布局与标准Magento布局完全不同。因此,我创建了一个新的1column.phtml副本并将其重命名,并进行了一个小的更改以进行测试。 现在的问题是自定义布局没有显示。我创建了一个模块(它在“管理”>“配置”>“高级”概述中可以看到)。 我的文件和内容如下: app / etc / modules / Test_Page.xml <?xml version="1.0"?> <config> <modules> <Test_Page> <active>true</active> <codePool>community</codePool> <version>0.1.0</version> <depends> <Mage_Page /> </depends> </Test_Page> </modules> </config> app / code / local / Test / Page / etc / config.xml <?xml version="1.0"?> <config> <modules> <Test_Page> <version>0.1.0</version> </Test_Page> </modules> <global> <page> <layouts> <homepage …

3
如何在Magento 2中覆盖Virtual Type类
如何在Magento 2中覆盖VirtualType块,我想用自己的块覆盖以下虚拟类型块, <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument> </arguments> </virtualType> 所以我试图di.xml像这样从我的自定义模块中覆盖它, <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> 但这行不通。 那么,在Magento 2中重写虚拟类型类的正确方法是什么?

4
如何在“管理员送货地址”框中显示自定义属性?
我在结帐页面上添加了带有自定义值的下拉自定义字段。它也可以正常工作,也可以将属性值保存在数据库中,但不会显示在订单运送地址中。知道如何显示吗? InstallSchema.php $connection->addColumn( $installer->getTable('quote_address'), 'mob_type', [ 'type' => \Magento\Framework\DB\Ddl\Table ::TYPE_TEXT, 'nullable' => true, 'default' => NULL, 'length' => 255, 'comment' => 'Mob Type' ] ); $connection->addColumn( $installer->getTable('sales_order_address'), 'mob_type', [ 'type' => \Magento\Framework\DB\Ddl\Table ::TYPE_TEXT, 'nullable' => true, 'default' => NULL, 'length' => 255, 'comment' => 'Mob Type' ] ); $installer->endSetup(); 插入 …

1
Magento 2卸载模块
显然,现在Magento 2支持卸载脚本,该脚本允许在卸载模块时修改数据库架构(敬请期待!)。 如此处所述,这仅适用于通过composer安装的模块。 (我希望将来所有模块都可以使用,但这是一个不同的问题)。 假设我有一个名为的模块Testing_Demo。 该模块执行3件事,我希望在卸载时将其删除。 添加一个名为的表testing_demo。所以我需要删除它。 添加名为的产品属性demo。所以这需要删除 的某些设置system->configuration可能会或可能不会存储在表中core_config_data。所有这些设置都有路径testing_demo/...。因此,这些也需要删除。 我的模块卸载脚本应如何显示?

3
Magento新的自定义块模块
我正在使用Magento 1.8.1.0版本。 我正在尝试创建一个新的自定义块模块,该模块将用于创建新的主页。 命名空间:十字军 模块:CLHomePage 街区类型:十字军东征 类:Qwerty(仅在测试时才适用) 设计包:十字军 主题:默认 这是我到目前为止所拥有的: \ app \ etc \ modules \ Crusader_All.xml <?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <active>true</active> <codePool>local</codePool> </Crusader_CLHomePage> </modules> </config> \ app \ code \ local \ Crusader \ CLHomePage \ etc \ config.xml <?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <version>0.0.1</version> </Crusader_CLHomePage> </modules> …

3
如何在Magento 1中覆盖/重写块类?
注意:这是一个规范问题,旨在全面说明块重写的工作方式,并且可以用作更具体的“如何覆盖块X”或“为什么我的重写不起作用”问题的重复目标。 另请参阅:寻找有关Magento 1替代的规范问题 假设我必须在自定义模块中更改核心块类(更改方法或添加方法)。我该如何逐步进行?

3
Magento2 REST API错误“类不存在”
我已基于Alan的博客创建了一个测试Magento 2.0.2 REST Web服务:http : //alankent.me/2015/07/24/creating-a-new-rest-web-service-in-magento-2/ 我正在使用Postman调用自定义Web服务并收到以下错误: "message": "Class does not exist", "code": -1, "trace": "#0 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\Webapi\\ServiceInputProcessor.php(128): ReflectionClass->__construct('')\n#1 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\Webapi\\ServiceInputProcessor.php(262): Magento\\Framework\\Webapi\\ServiceInputProcessor->_createFromArray(NULL, '30')\n#2 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\Webapi\\ServiceInputProcessor.php(99): Magento\\Framework\\Webapi\\ServiceInputProcessor->convertValue('30', NULL)\n#3 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\module-webapi\\Controller\\Rest.php(262): Magento\\Framework\\Webapi\\ServiceInputProcessor->process('Test\\\\Calculator...', 'add', Array)\n#4 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\module-webapi\\Controller\\Rest.php(160): Magento\\Webapi\\Controller\\Rest->processApiRequest()\n#5 P:\\wwwroot\\Magento202_com_loc\\Web\\var\\generation\\Magento\\Webapi\\Controller\\Rest\\Interceptor.php(24): Magento\\Webapi\\Controller\\Rest->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\n#6 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\App\\Http.php(115): Magento\\Webapi\\Controller\\Rest\\Interceptor->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\n#7 P:\\wwwroot\\Magento202_com_loc\\Web\\vendor\\magento\\framework\\App\\Bootstrap.php(258): Magento\\Framework\\App\\Http->launch()\n#8 P:\\wwwroot\\Magento202_com_loc\\Web\\index.php(39): Magento\\Framework\\App\\Bootstrap->run(Object(Magento\\Framework\\App\\Http))\n#9 {main}" 我可以成功地调用Magento的现成的REST Web服务。 应用程序/代码/测试/计算器/registration.php <?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Test_Calculator', __DIR__ ); app / …

1
自定义模块:访问被拒绝(ACL问题)
我创建了一个模块,它运行完美。但是,我撞墙了。当我以管理员身份登录时,一切都很好。我在acl中添加了它: <?xml version="1.0"?> <config> <menu> <erp translate="title" module="firtal_deadstock"> <title>ERP</title> <sort_order>99</sort_order> <children> <stock_management module="firtal_deadstock"> <title>Stock Management</title> <children> <firtal_deadstock> <title><![CDATA[Firtal Stock Analysis]]></title> <sort_order>99</sort_order> <action>adminhtml/deadstock</action> </firtal_deadstock> </children> </stock_management> </children> </erp> </menu> <acl> <resources> <all> <title>Allow Everything</title> </all> <admin> <children> <system> <children> <config> <children> <firtal_deadstock translate="title"> <title>Firtal Stock Analysis settings</title> <sort_order>100</sort_order> </firtal_deadstock> </children> </config> …
12 module  acl 

2
如何在Magento 2中设置配置值?
以前(即在Magento 1中),我们创建了一个名为Setup的模块,其中包含站点的设置。升级脚本如下所示: $installer = $this; $installer->startSetup(); $installer->setConfigData("fastsimpleimport/general/partial_indexing", 1); $installer->setConfigData("fastsimpleimport/product/disable_preprocess_images", 1); $installer->setConfigData('general/country/default', 'GB'); $installer->setConfigData('general/locale/firstday', 1); $installer->setConfigData('general/locale/timezone', 'Europe/London'); $installer->setConfigData('general/store_information/merchant_country', 'GB'); $installer->setConfigData('design/header/welcome', 'Enter your value'); $installer->setConfigData('design/head/title_suffix', 'Enter your value'); $installer->setConfigData('currency/options/base', 'GBP'); $installer->setConfigData('currency/options/default', 'GBP'); // ... 我不知道如何在M2中执行上述操作。 换句话说:我该如何在M2中设置配置数据?


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.