Questions tagged «magento-1»

有关Magento 1的一般问题(非次要版本)。您可以使用它来区分Magento 2,但是如果特定安装存在问题,请改用适当的magento-1.x标记。

5
Magento编码标准
我最近开始Magento与Code sniffer广泛合作,我想知道应该遵循哪些标准。 我尝试了Zend编码标准,但是我不想使用80行限制,并且内核中也没有使用它。 在那之后,我尝试了CS2标准,但是由于_in函数和类名中包含各种功能_而没有名称空间,因此这也不起作用。 那么,核心代码是否还有100%符合的标准?如果没有,magento是否应该有自己的编码标准?它有自己的stackexchange网站,扩展开发人员将欢迎使用一些定义明确的编码标准。

9
安全修补程序SUPEE-10415-可能的问题?
Magento 1的新补丁已发布,即SUPEE-10415。 此修补程序提供了针对多种类型的与安全相关的问题的保护 信息页面:https : //magento.com/security/patches/supee-10415 下载页面:https : //magento.com/tech-resources/download 需要注意哪些可能的问题? 另外,请分享安装补丁后发现的所有错误和问题。 在香草1.9.1.1上应用SUPEE-10415的问题,由于Image.php出现错误消息而导致显示无法应用。 编辑:自2017年12月7日起,SUPEE-10497中提供了修复程序 必须安装8788版本2,否则将看到“不支持的数据类型”错误。更多信息。 升级到SUPEE-10415后,错误/目录中出现“ 404:未找到页面”错误。仅在运行某些第三方扩展的Magento安装中会发生此问题。 解决方法:确认任何扩展或自定义项均未生成PHP警告。

6
调试布局XML加载
TL; DR:有什么方法可以调试布局的加载?我相信一个模块的布局会与另一个模块冲突。 与我之前提出的问题有关:如何使模块布局显示在所有主题上 我已经成功地将模块加载到了本地测试环境(也就是我的开发PC)上,测试了在3个不同主题之间的切换,这是可以的。然后,我在测试或“生产前”环境中更新了模块,那里有许多不同的模块,有些是我们自己制作的。在这种环境下,该模块不会在产品首页上显示所需的内容。经过一些测试,我最终得出结论,问题应该出在布局加载过程上。 那么,有什么方法可以调试布局的加载,不同的模块如何替换或添加自己的块?我的观点是,我相信至少有一个模块应该与我的模块冲突。而且由于模块太多,我正在寻找一种与逐个禁用模块不同的方法,看看哪一种是有问题的。 我的config.xml文件是: <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Dts_Banners> <version>0.1.0</version> </Dts_Banners> </modules> <global> <blocks> <banners> <class>Dts_Banners_Block</class> </banners> </blocks> .... <events> <controller_action_layout_load_before> <observers> <attributesethandle> <class>Dts_Banners_Model_Observer</class> <method>addAttributeSetHandle</method> </attributesethandle> </observers> </controller_action_layout_load_before> </events> </global> .... </config> 我的观察者文件: <?php class Dts_Banners_Model_Observer { /** * Checks if the search text on the list …

11
安全补丁SUPEE-10266-可能的问题?
Magento 1的新安全补丁已发布,解决了13个APPSEC问题 https://magento.com/security/patches/supee-10266 应用此修补程序时,您需要注意哪些常见问题? SUPEE-10266,Magento Commerce 1.14.3.6和开源1.9.3.6包含多项安全增强功能,可帮助关闭跨站点请求伪造(CSRF),未经授权的数据泄漏以及经过身份验证的Admin用户远程执行代码漏洞。这些版本还包括针对图像重新加载和使用单步付款的付款问题的修复程序。



7
将所有包含的Javascript移到</ body>之前
有谁知道如何使Magento的所有JS脚本标签(例如&lt;script type="text/javascript" src="http://sitename.com/js/prototype/prototype.js"&gt;&lt;/script&gt;在结束前渲染)&lt;/body&gt;? 我曾经尝试过这种方法,但是我得到了一个错误,我认为这是沿着addJS方法使用的,在我使用它的地方(可能在参考页脚中)不可用。

5
如何在Mage_Catalog_Model_Resource_Product_Collection上设置商店ID?
这项任务是微不足道的。我需要获取启用了平面目录的特定商店视图的产品列表。最明显的解决方案如下: $collection = Mage::getResourceModel('catalog/product_collection') -&gt;setStore($storeId); 实际上,setStore()方法在这里没有什么区别,因为方法是在_initSelect()方法Mage_Catalog_Model_Resource_Product_Collection基于商店ID获得平面表的名称之后调用的。由于尚未设置商店ID,因此它将采用当前商店ID。 因此,显而易见的解决方法是在获取模型之前设置当前商店ID。 Mage::app()-&gt;setCurrentStore($storeId); $collection = Mage::getResourceModel('catalog/product_collection'); 会的。但仅当您需要一次收集一次时。如果您需要循环获取一个集合,或者只需要两个背对背集合,则将无法为其设置特定的商店。 原因是Mage_Catalog_Model_Resource_Product_Flat该类具有其自己的_storeId属性,并且在构造函数中将其设置为当前商店ID。这就是为什么它将被第一次设置。然后由于某种原因(天堂知道我希望有一个)在Mage_Eav_Model_Entity_Collection_Abstract::_init每个资源模块中被作为单例获取。因此,没有第二个调用的构造函数。 这一切看起来都非常错误,以至于我很确定我错了,这不是另一个(或两个)Magento错误。希望有人能对此有所启发。


3
如何禁用特定部分或块的缓存
我已经为商店前部开发了顶部栏购物车功能,该功能可以显示添加到购物车的最新三个产品,这在禁用缓存时非常有用,但是当我启用缓存时,它会显示顶部购物车中的奇怪小计和购物车中的奇怪产品。 这让我很难过:'( 我知道这是由于缓存而发生的。有什么我可以禁用此部分的缓存的吗?我尝试禁用块html缓存,现在检查它是否工作得很好,但是当禁用块HTML时,我发现类别平面存在未指定的问题。

5
学习Magento插件开发
我从事PHP开发已有13年以上,只要有其他一些流行的项目(如WordPress),就对PHP本身有广泛的了解。我没有Magento的经验。 我现在有一个全职工作,在一家使用Magento的公司工作,我的所有开发工作现在几乎都将在Magento上进行。 第一次看了Magento之后,我的最初想法是,哇,我现在对自己有什么看法?但是后来我中经验丰富的开发人员出现并记住,那只是PHP。 因此,我有一些基本的Magento问题,非常感谢经验丰富的Magento开发人员提供的一些答案... 在该网站旁,最理想的学习magento开发的地方是什么? 到目前为止,扩展程序/插件对我还是很困惑。诸如WordPress之类的其他平台允许您将插件放置在其自己的文件夹中,所有文件都位于该文件夹下。从目前为止我所看到的,一个插件可能分散在Magento的多个文件夹中,这是正确的吗? 我已经了解了如何覆盖核心功能。因此,如果核心文件位于此处,/app/code/core/Mage/SitemapModel/Resource/Catalog则可以通过在此位置创建文件来覆盖它,/app/code/local/Mage/SitemapModel/Resource/Catalog那么它如何与扩展/插件一起使用?如果我创建了一个需要超越核心功能的插件,那么我必须在各处放置文件才能使该扩展正常工作吗? 您是否希望从magento开始了解其他信息? 感谢您的见解,我知道这是一个多部分的问题,但是我认为任何答案都对自己和其他起步有帮助,如果需要的话,我将制作此公共Wiki。

5
子文件夹中的不同storeview或网站
客户希望像这样建立他的多店商店: http://www.domain1.org/de/- &gt;网站1,商店视图1 http://www.domain1.org/en/- &gt;网站1,商店视图2 http://www.domain1.ch/de/- &gt;网站2,商店视图3 http://www.domain1.ch/fr/- &gt;网站2,商店视图4 http://www.domain1.ch/it/- &gt;网站2,商店视图5 ... 这是一个示例,但是可能会有更多不同的子文件夹。处理不同商店视图/网站的不同子文件夹的最佳方法是什么? 我知道一种解决方案是创建名为等的子文件夹de,en然后将index.php和.htaccess复制到相应的子文件夹中。 可能也有一些解决方法(用于index.php的符号链接,用于配置vHost而不是使用.htaccess的文件)​​以最大程度地减少文件重复,但是我想找到一种解决方案,无需在文件系统中进行任何更改,而只是通过配置处理一切。 更新 我们在企业支持下验证了最好的方法是创建子文件夹。 我们最终这样做是这样的: 创建一个“ languagefolders”目录 在目录内创建index.php的副本,以及调整后的.htaccess和指向Magento文件夹的符号链接(应用/,错误/,...) 在Magento根目录内创建指向“ languagefolders”目录的符号链接“ de”,“ en”等 这样,我们可以通过创建新的符号链接(例如“ fr”)来添加新的语言。

20
安全修补程序SUPEE-11155-可能的问题?
Magento发布了针对M1的新安全补丁,以及针对M1和M2的更新。 应用此补丁/升级时,您需要注意哪些常见问题? Magento 1 https://magento.com/security/patches/supee-11155 Magento 2 这应该是2.1系列中的最后一个版本,该版本将于本月底达到其终止销售状态。 https://magento.com/security/patches/magento-2.3.2-2.2.9-and-2.1.18-security-update-13 https://github.com/magento/magento2/releases/tag/2.1.18 https://github.com/magento/magento2/releases/tag/2.2.9 https://github.com/magento/magento2/releases/tag/2.3.2

2
在集合查询上左联接表
我正在执行以下操作以从系统中获取一些订单以进行导出: $orders = Mage::getModel('sales/order')-&gt;getCollection() -&gt;addFieldToFilter('status', $statusToExport) -&gt;addFieldToFilter('store_id', $this-&gt;processingStoreId) -&gt;addFieldToFilter('updated_at', array('gteq' =&gt; date('Y-m-d H:i:s', $lastSyncTime))); 如果订单在我拥有的自定义表中,我需要在不导出的地方添加一些内容entity_id。如果使用的是SQL,则可以执行以下操作: left join myTable as mt on main_table.entity_id = mt.entity_id where mt.entity_id is null 但是我不确定如何修改集合查询来做类似的事情。 注意:我确实尝试过 $orders = $orders-&gt;getSelect() -&gt;joinLeft( array("t1" =&gt; $myTable), "main_table.entity_id = t1.entity_id", array("admin_field_id" =&gt; "t1.id") ) -&gt;where("t1.id is null") 但这会更改它,因此这是一个查询,我希望返回销售/订单集合。 我觉得我缺少一些简单的东西... 编辑 …

4
有效地从ID获取产品网址
仅给出ID,获得产品网址的最有效方法是什么?在代码的某些地方,我们有一些东西,例如Mage::getModel('catalog/product')-&gt;load($id)-&gt;getProductUrl()获取产品的URL,鉴于与产品相关的事件数量等等,这似乎很浪费,有没有更简单的方法?还可以指定类别ID的功能很好。 另外,是否有一种有效的方法对商品(例如名称)的单个属性执行相同的操作?

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.