Questions tagged «magento-1»

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

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


3
无法再在“所见即所得”编辑器中编辑窗口小部件
最近,在“所见即所得”编辑器中编辑小部件不再起作用。 当我单击小部件时,浏览器控制台显示以下错误: Uncaught DOMException: Failed to execute 'setBaseAndExtent' on 'Selection': There is no child at offset 1. at Editor.<anonymous> (http://example.com/js/tiny_mce/tiny_mce.js:1:15327) at Dispatcher.dispatch (http://example.com/js/tiny_mce/tiny_mce.js:1:6000) at DOMUtils.c (http://example.com/js/tiny_mce/tiny_mce.js:1:184650) at j (http://example.com/js/tiny_mce/tiny_mce.js:1:58627) at HTMLDocument.y (http://example.com/js/tiny_mce/tiny_mce.js:1:58785) (anonymous) @ tiny_mce.js:1 dispatch @ tiny_mce.js:1 c @ tiny_mce.js:1 j @ tiny_mce.js:1 y @ tiny_mce.js:1 tiny_mce.js:1 Uncaught DOMException: …


3
ReferenceError:在magento 1.9.3中未定义上载器
更新到新版本1.9.3之后。上传器不再工作。下面给出error.i更新我的代码,但仍然相同。 var uploader = new Uploader({“ uploaderConfig”:{“ chunkSize”:1073741824,“ withCrede ... 下面是我的代码 class Spacename_Modulename_Block_Adminhtml_Modulename_Edit_Tab_Images extends Mage_Adminhtml_Block_Widget { protected $_uploaderType = 'uploader/multiple'; protected function _prepareForm() { $data = $this->getRequest()->getPost(); $form = new Varien_Data_Form(); $form->setValues($data); $this->setForm($form); return parent::_prepareForm(); } protected function _prepareLayout() { $this->setChild('uploader', $this->getLayout()->createBlock($this->_uploaderType) ); $this->getUploader()->getUploaderConfig() ->setFileParameterName('image') ->setTarget(Mage::getModel('adminhtml/url')->addSessionParam()->getUrl('*/*/image')); $browseConfig = $this->getUploader()->getButtonConfig(); $browseConfig …

3
Magento 1:为什么有些观察者方法调用getEvent()而有些却不呢?
我最近发现了一些东西,对此感到很好奇。 例1:使用 getEvent() 在Mage_Core_Model_Locale在setLocale()方法中,分派事件: Mage::dispatchEvent('core_locale_set_locale', array('locale'=>$this)); 此事件的观察者bindLocale()来自Mage_Adminhtml_Model_Observer public function bindLocale($observer) { if ($locale=$observer->getEvent()->getLocale()) { if ($choosedLocale = Mage::getSingleton('adminhtml/session')->getLocale()) { $locale->setLocaleCode($choosedLocale); } } return $this; } 如您所见,要检索语言环境,我们首先调用getEvent()观察者。 示例2:不 getEvent() 在Mage_Wishlist_Block_Customer_Wishlist_Item_Options在__construct()方法中,分派事件: Mage::dispatchEvent('product_option_renderer_init', array('block' => $this)); 因此,我们同意示例1和2使用相同的语法。 但是,第二个示例的观察者initOptionRenderer()来自Mage_Bundle_Model_Observer public function initOptionRenderer(Varien_Event_Observer $observer) { $block = $observer->getBlock(); $block->addOptionsRenderCfg('bundle', 'bundle/catalog_product_configuration'); return $this; } 如您所见,要检索块,我们不会调用getEvent()观察者 题 …

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中已定义的块,但实际的实际示例将是很好的。

2
Magento Connect与Magento市场
因此,Magento官方市场已退出市场。 我想知道这对开发人员意味着什么? 开发人员是否必须将所有扩展都移至Magento市场(何时关闭Magento Connect?) 在Magento Connect关闭之前,开发人员是否应该在两个平台上都保留其扩展程序? 客户是否仍可以通过Magento Connect Manager从市场上安装扩展?

1
Magento 1:库存项目中的数量与库存状态表之间的关系
在Magento 1中,库存信息存储在库存项目对象中。每个库存项目对象都与一个产品对象相关联。Magento将“库存物料”对象保留到cataloginventory_stock_item表中。 但是,每个库存项目对象都有一个相关的库存状态对象。库存状态似乎是一个(索引|非正规化)表,该表以整数常量存储产品的库存状态,并允许您将多个库存项目和不同的产品关联起来website_id。Magento将库存状态对象保留到cataloginventory_stock_status。下面是类常量和表模式。 class Mage_CatalogInventory_Model_Stock_Status extends Mage_Core_Model_Abstract { const STATUS_OUT_OF_STOCK = 0; const STATUS_IN_STOCK = 1; } mysql> describe cataloginventory_stock_status; +--------------+----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+----------------------+------+-----+---------+-------+ | product_id | int(10) unsigned | NO | PRI | NULL | | | website_id …

1
扩展支持多个版本
当创建用于商业用途的扩展时,如果它可以在多个Magento版本上工作,可能还不错,也许还有CE和EE。 但是有时这不能按计划进行,因为核心会随着版本的变化而变化。 我的问题是,我应该如何处理影响我的扩展的微小核心变更。我并不是在谈论需要重构的巨大变化。 这是一个使它更清楚的示例。 从CE 1.8.1(和EE 1.13.1)开始,该方法Varien_Io_File::write改变了它的工作方式(签名相同),并且该方法的filePutContent作用类似于write以前的操作。 现在,我做些骇人听闻的事情,并检查Magento的版本,以了解使用哪种方法来达到相同的结果 /** @var Varien_Io_File $io */ if (version_compare(Mage::getVersion(), '1.8.1', '<')) { $io->write($destinationFile, $contents, 0777); } else { $io->filePutContent($destinationFile, $contents); } 现在,我希望它也可以在EE上工作。由于1.8.1专门针对CE,因此变得更加难看。所以上面的代码变成 /** @var Varien_Io_File $io */ if (version_compare(Mage::getVersion(), $this->getCurrentVersion(), '<')) { $io->write($destinationFile, $contents, 0777); } else { $io->filePutContent($destinationFile, $contents); } 方法getCurrentVersion看起来像这样 public function …



1
如何更改catalog_product_flat列类型
我管理的网站要求价格必须有5位小数。我继续修改了至少十二个文件/表,以实现此目的。但是(因为总是有一个but)似乎有问题catalog_product_flat_X。 让我解释一下:对于最前面的价格,大多数时候都归结为调用Mage_Catalog_Model_Product->getPrice(),据我所知,它将在平面表中查找价格(如果启用了平面表)。问题在于数据的重新索引编制。 如果我的平面桌具有以下格式的价格,则DECIMAL(12,5)点击“ Reindex平面数据”行上的“ Reindex”链接会将ALTER平面表放回DECIMAL(12,4)。 在搜索了相当长的时间后,我遇到了一个 app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php 名为的函数prepareFlatTable($storeId)。然后,此函数调用convertOldColumnDefinition($column)平面表的每一列(在这种情况下)。 最后,看该功能时 app/code/core/Mage/Catalog/Model/Resource/Helper/Abstract.php 它似乎是每一个转换decimal,并numeric像这样: case 'decimal': case 'numeric': $length = $proposedLength; $type = Varien_Db_Ddl_Table::TYPE_DECIMAL; break; 其中$proposedLength是这样的结果: $definition = trim($column['type']); if (!preg_match('/([^(]*)(\\((.*)\\))?/', $definition, $matches)) { throw Mage::exception( 'Mage_Core', Mage::helper('core')->__("Wrong old style column type definition: {$definition}.") ); } $proposedLength = (isset($matches[3]) && strlen($matches[3])) ? $matches[3] …

3
Magento Google网站地图生成
我已经通过Magento adminpanel生成了Google网站地图。 我在配置中设置了产品URL后缀(html)和类别URL后缀(html)。 该后缀未显示在sitemap.xml中。 它只显示在URL下方, www.site.com/men/t-shirt/crew-neck-T-shirts 但是它的404带有url后缀 而且我也禁用了一些父类别,例如 -root category - Men - T-shirt // i have disable this category - Crew Neck - V Neck 因此,站点地图会针对此类生成 www.site.com/men/t-shirt/crew-neck 但是我需要这样表现 www.site.com/men/crew-neck 如何做到这一点。我已经检查了以下收藏 Mage::getResourceModel('sitemap/catalog_category')->getCollection($storeId) Mage::getResourceModel('sitemap/catalog_product')->getCollection($storeId) 但没有运气。 任何建议将不胜感激。

1
配置“取决于”前端和后端模型
我在配置中的“依赖”功能上遇到困难。 通常,添加<depends>到某些配置选项后,除非给定选项的值匹配,否则它是隐藏的。 例如: <option_one> <label>Option 1</label> ... </option_one> <option_two> <label>Option 2</label> ... <depends><option_one>1</option_one></depends> </option_two 显然,我缺少一些领域,但是您明白了。仅当选项1的值为“ 1”时,选项2才会出现。 现在我的问题是,当我尝试将其应用于带有后端和前端模型的选项时,这种依赖不起作用: <option_three> ... <frontend_model>module/adminhtml_form_field_test</frontend_model> <backend_model>adminhtml/system_config_backend_serialized_array</backend_model> ... <depends><option_one>1</option_one></depends> </option_three> 此选项不会考虑选项1,它始终可见。 我是在做错什么,还是一个错误,还是“按设计工作”?

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.