Magento

Magento电子商务平台用户的问答


4
使用查询字符串重定向到URL
在我的模块中,执行脚本后,我需要重定向到URL中带有查询字符串的页面。 这是我所拥有的: $redirectUrl = 'http://magento.local/en_en/shop/index'; $redirectArgs = array('test' => '1'); $this->_redirect($redirectUrl, $redirectArgs); 我也尝试过: Mage::app()->getFrontController()->getResponse()->setRedirect($redirectUrl, $redirectArgs)->sendResponse(); 两种方法均会引发错误:处理您的请求时出错 我期望被重定向到 http://magento.local/en_en/shop/index?test=1 有人知道我能做到吗? 编辑: 按照建议,我尝试过: $redirectUrl = 'http://magento.local/en_en/shop/index?test=1'; Mage::app()->getResponse()->setRedirect($redirectUrl); 没有错误,但没有任何反应。我不在控制器中。 编辑2: 我最终使用: $redirectUrl = 'http://magento.local/en_en/shop/index?test=1'; Mage::app()->getResponse()->setRedirect($redirectUrl)->sendResponse(); 这按预期工作!谢谢。

1
Magento工厂方法中的全类名
在Magento 1中,如果我在工厂方法中使用完整的Magento类名,则可以实例化一个对象 //trying full class name instead of catalog/product $object = Mage::getModel('Mage_Catalog_Model_Product'); 但是,对于助手来说,这是行不通的。如果你试试 Mage::helper('Mage_Core_Helper_Url'); 你得到 Warning: include(Mage/Mage/Core/Helper/Url/Helper/Data.php): failed to open stream: No such file or directory in /path/to/magentolib/Varien/Autoload.php on line 93 #0 /path/to/magentolib/Varien/Autoload.php(93): mageCoreErrorHandler(2, 'include(Mage/Ma...', '/path/to/magent...', 93, Array) #1 /path/to/magentolib/Varien/Autoload.php(93): Varien_Autoload::autoload() #2 [internal function]: Varien_Autoload->autoload('Mage_Mage_Core_...') #3 /path/to/magentoapp/Mage.php(547): spl_autoload_call('Mage_Mage_Core_...') #4 /path/to/magentoapp/code/local/Sebastianjuffar/Commercebug/controllers/IndexController.php(11): …
11 model  helper  factory 

4
Magento 2 Helper实例
当我认为我从Magento 2缠绕DI系统时,出现了一些问题,并将其解包。 我在核心代码中看到了访问助手的不同方式。 例如,Magento\Catalog\Controller\Category::_initCategory其中有: if (!$this->_objectManager->get('Magento\Catalog\Helper\Category')->canShow($category)) { return false; } 但是在Magento\Catalog\Block\Category\View帮助器中注入了构造函数 public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\Layer\Category $catalogLayer, \Magento\Framework\Registry $registry, \Magento\Catalog\Helper\Category $categoryHelper, array $data = array() ) { $this->_categoryHelper = $categoryHelper; $this->_catalogLayer = $catalogLayer; $this->_coreRegistry = $registry; parent::__construct($context, $data); } 这使我认为应该在控制器和块(和模型)中以不同的方式访问帮助程序,但是随后我找到了一个在构造函数中注入了帮助程序的控制器Magento\Catalog\Controller\Adminhtml\Product\Action\Attribute。 请为我清除雾气。 什么时候应该使用DI objectManager?什么时候应该使用DI ?为什么? 我已经读过这个问题:在Magento 2中实例化助手。这只是一个后续问题。

1
覆盖/删除XML Config节点/值?
我想删除一些XML值而不接触核心XML文件,这可能吗? 情况如下。 在中,/app/code/core/Mage/Tax/etc/config.xml我们为合计(<sales><quote><totals>)提供了一些配置值。我要注释掉tax一个,以便税项不显示在前端。 注释核心XML文件中的节点可以正常工作,但这不是最佳方法。 如果我将新的empy值放在单独的模块中,则会产生不同的效果(这与删除声明不同) 我特别想做这样的事情: <!--<renderer>tax/checkout_tax</renderer>-->

3
来自管理员的电子邮件模板
Magento交易电子邮件有一个奇怪的问题。我在本地,开发和生产服务器上具有相同的文件。 从管理>系统>交易电子邮件>添加新模板 我从下拉列表中选择一个模板,将本地保留为English US。这些字段未填充在开发和生产服务器上,但在本地服务器上正常工作。我以为是权限错误,但是经过检查,我发现从模板文件加载代码的ajax调用正常工作: 有什么事吗 /index.php/admin/system_email_template/defaultTemplate/key/7ac9c5866202e5cb29be84299bf2ebad/?isAjax=true Response: { "template_type": 2, "template_subject": "{{var store.getFrontendName()}}: Shipment # {{var shipment.increment_id}} update", "orig_template_variables": "{\"store url=\\\"\\\"\":\"Store Url\",\"var logo_url\":\"Email Logo Image Url\",\"var logo_alt\":\"Email Logo Image Alt\",\"htmlescape var=$billing.getName()\":\"Guest Customer Name\",\"var order.increment_id\":\"Order Id\",\"var order.getStatusLabel()\":\"Order Status\",\"var comment\":\"Order Comment\",\"var store.getFrontendName()\":\"Store Name\"}", "template_styles": "body,td { color:#2f2f2f; font:11px\/1.35em Verdana, Arial, Helvetica, sans-serif; …

1
getChildHtml和getBlockHtml有什么区别
概要 getChildHtml和之间有什么区别getBlockHtml? 如何在模板中获取cms / block标题? 实际上,我已经用自己的页脚替换了页脚,并设置了自己的页脚。<?= $this->getChildHtml('...') ?>直到我使用了,该方法才起作用<?= $this->getBlockHtml('...') ?>。 布局XML: <layout> <default> <block type="core/template" name="custom_footer" as="footer" template="page/html/footer.phtml"> <block type="cms/block" name="child_1"> <action method="setBlockId"><block_id>footer_child_1</block_id></action> </block> </block> </layout> </default> 模板(无效): <footer> <div class="row"> <div class="col-sp4"><?= $this->getChildHtml('child_1') ?></div> </div> </footer> 范本(作品): <footer> <div class="row"> <div class="col-sp4"><?= $this->getBlockHtml('child_1') ?></div> </div> </footer> 解: 首先,我必须通过以下方法覆盖页脚中的页脚local.xml: <default> …

6
一次安装,多个数据库
是否可以进行一次安装,并通过该安装来使多个商店使用不同的数据库? 像我将在domain.1上进行安装的一个数据库,然后从admin创建一个新的网站,并在domain.2的一些新数据库上建立一个商店。 我知道一个数据库可以实现多个存储。但是不同的数据库是否可以相同。

2
简单产品的自定义选项的默认状态
我有一系列带有自定义选项类型复选框的产品。但是,我无法从产品设置中设置该特定选项的默认状态。 当用户进入产品页面/从类别页面添加到购物车时,默认情况下,我需要至少选中一个复选框(选项)。 Magento主管部门是否可以做到这一点,还是需要一些额外的开发(如果可以的话,该怎么做)?

2
如何将https URL设置为http
我想知道magento如何确定哪个页面应该是安全的以及哪个页面应该是不安全的。 据我了解,magento默认仅使结帐和登录页面安全,并且我可以frontend/secure_url/....通过模块的config.xml 在配置路径下指定其他页面来确保其他页面的安全 管理员端的配置似乎很好。前端和后端均启用了SSL。后端完全通过https。在前端,大多数页面(包括主页)在http下都可以正常工作,并且结帐和登录页面可以按预期重定向到https。 但是还有其他一些URL重定向到了我希望保留在http上的https,包括自定义模块的控制器/操作。 我需要一些有关如何调试的提示?我还有其他配置可用来阻止它们被重定向吗?
11 https  secure 

4
观看添加到购物车事件-报价项目ID为空
我正在尝试捕获将商品添加到购物车后触发的事件。我目前正在观看以下事件:checkout_cart_product_add_after 根据magento消息来源,在对Quote进行所有操作后,将触发此事件。但是当我访问购物车ID和报价ID时,这些值为空: $quoteItem = $observer->getQuoteItem(); $quote_item_id = $quoteItem->getItemId(); $cart = Mage::getSingleton('checkout/session'); $quote_id= $cart->getQuoteId(); 如果购物车中没有商品,则上面的两个ID均返回空白,如果购物车中已有商品,则该商品ID具有值,但quote_item_id没有。 注意,此问题以前曾被问过,但问题从未得到解决,因此讨论最终偏离了这个问题。我需要quote_item_id。


4
强制订单进入完成状态
我们使用的自定义模块要求状态为:“完整”(我无法更改该模块,因为它使用ioncube) 我们还使用了不提供状态选项的付款系统:“完成” 所以我的问题是:我如何强制订单转为完成状态? PS:这不起作用: $order = Mage::getSingleton('sales/order'); $order->loadByIncrementId('12345'); $order->setState(Mage_Sales_Model_Order::STATE_COMPLETE, true); $order->save();

1
Magento是否会在我的app / etc /中包含任何* .xml文件?
log_%当我意识到将配置放入其自己的xml文件会很方便时,我正在禁用这些表。因此,我开始寻找如何在app / etc /中包含xml文件。当我找不到对local.xml以外的任何其他内容的直接引用,并且我知道包括了enterprise.xml时,我尝试了一个实验:我添加了一个格式正确的配置文件“ nolog.xml”(如下),然后重新启动了Apache。 <?xml version="1.0"?> <config> <frontend> <events> <controller_action_predispatch> <observers> <log> <type>disabled</type> </log> </observers> </controller_action_predispatch> <controller_action_postdispatch> <observers> <log> <type>disabled</type> </log> </observers> </controller_action_postdispatch> <customer_login> <observers> <log> <type>disabled</type> </log> </observers> </customer_login> <customer_logout> <observers> <log> <type>disabled</type> </log> </observers> </customer_logout> <sales_quote_save_after> <observers> <log> <type>disabled</type> </log> </observers> </sales_quote_save_after> <checkout_quote_destroy> <observers> <log> <type>disabled</type> </log> …

4
如何在composer安装的Magento模块上忽略Git符号链接
我使用安装模块composer.phar。 这就造成了符号链接文件publichtml/app/code/community,目标是(例如)vendor/themodule...。 在我.gitignore本人中,我排除了供应商目录-但是链接当然仍然会在git中结束。 有没有一种自动排除这些链接的简便方法?(除了将所有内容手动添加到.gitignore之外) 我不得不说,我有一些require-dev模块不应最终存储在最终服务器上-因此拥有这些链接至少不会那么好。
11 composer  git 

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.