我很抱歉,如果这个问题是微不足道的,但我一直在努力找到我在这里做错了什么.我试图在商店视图级别更改属性的值,但默认值也会更改,但不应该更改.当然,此属性设置为"store-view-scoped".为了简单起见,我尝试了产品名称.没有成功.
以下是我试过的不成功的测试......
你看到我在做错了吗?
非常感谢.
我的尝试:
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setStore(STORE_CODE)->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);
$product->setStoreId(STORE_CODE)->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->setStoreId(STORE_ID)->load(PRODUCT_ID);
$product->setName('new_name')->save();
$product = Mage::getModel('catalog/product')->setStoreId(STORE_ID)->load(PRODUCT_ID);
$product->setStoreId(STORE_ID)->setName('new_name')->save();
Run Code Online (Sandbox Code Playgroud)
我甚至尝试在产品型号加载之前添加以下行...
Mage::app()->setCurrentStore(STORE_ID);
Run Code Online (Sandbox Code Playgroud) 我创建了一个模块,它有一个"export like"方法,定期运行,如我在模块的config.xml文件的cron区域中定义的那样.但是我想让用户能够通过在系统配置中添加"立即运行"按钮来按需运行此导出方法,从而使用system.xml文件.
看起来"前端类型"按钮可能正如我所尝试的那样工作,它在配置部分添加了一个微小的可点击按钮.但是我无法在按钮本身上附加方法或标签.
我想在模块的"Grid.php"文件中添加一个按钮,但这不是我想做的,因为它适合我的acl.
下面是我的带有"按钮"前端类型的system.xml文件.
有没有人知道如何:
非常感谢您的帮助 !
<?xml version="1.0" encoding="UTF-8"?>
<config>
...
<fields>
...
<run translate="label">
<label>Run now</label>
<frontend_type>button</frontend_type>
<backend_model>SOME BACKEND MODEL</backend_model>
<sort_order>20</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</run>
</fields>
...
</config>
Run Code Online (Sandbox Code Playgroud) 我试图在我的主题布局XMLs中更新现有Block的"type"参数.在示例中,我想使用块"catalog/rewrite_navigation"而不是"catalog/navigation"作为引用名称"catalog.topnav".
我已经通过读取核心PHP文件的布局,块,更新等来测试了几种方法,但没有成功.我只是想避免使用unsetChild然后重新创建一个块.
"常规"方式是:
<reference name="top.menu">
<action method="unsetChild"><name>catalog.topnav</name></action>
<block type="catalog/rewrite_navigation" name="catalog.topnav" template="catalog/navigation/top.phtml"/>
</reference>
Run Code Online (Sandbox Code Playgroud)
但你们有一个线索做这样的事情:
<reference name="catalog.topnav">
<action method="setType"><name>catalog/rewrite_navigation</name></action>
</reference>
Run Code Online (Sandbox Code Playgroud)
通过这样的更新,catalog.topnav的块类型将从"catalog/navigation"更新为"catalog/rewrite_navigation".
非常感谢你的想法!
我正在尝试编写一个新的复选框,以便在"禁用"旁边附加到图库中的列.它的行为与数据库中的条目"禁用/排除"=是/否相同.
我们的想法是为图库中的每个图像添加"用作页面"复选框.目标是制作一个JS轮播,所有图片都选中"用作页面".
我做了一些事情,但我做不到:
- >所以我的问题是:如何更新数据库中的数据并在复选框中检索它(0或1取决于字段值)?
非常感谢您的宝贵帮助.
这就是我所做的(1.4.1.0):
1-更新表catalog_product_entity_media_gallery_value
添加了一个新字段(名称为"page"):
2-对Mage_Catalog_Model_Product_Attribute_Backend_Media类进行了以下更改
第49行:
从
$localAttributes = array('label', 'position', 'disabled');
Run Code Online (Sandbox Code Playgroud)
至
$localAttributes = array('label', 'position', 'disabled', 'page');
Run Code Online (Sandbox Code Playgroud)
第223行:
从
$data['disabled'] = (int) $image['disabled'];
Run Code Online (Sandbox Code Playgroud)
至
$data['disabled'] = (int) $image['disabled'];
$data['page'] = (int) $image['page'];
Run Code Online (Sandbox Code Playgroud)
301行
从
$mediaGalleryData['images'][] = array(
'file' => $fileName,
'position' => $position,
'label' => '',
'disabled' => (int) $exclude
);
Run Code Online (Sandbox Code Playgroud)
至
$mediaGalleryData['images'][] = array(
'file' => $fileName,
'position' => $position,
'label' => '',
'disabled' => (int) $exclude,
'page' …Run Code Online (Sandbox Code Playgroud) 正如在主题中所述,我试图在系统>配置区域中为自定义模块添加日期字段及其日期选择器(因此使用etc/system.xml).
我试图从下面的主题中获得灵感: Magento - 在system.xml上添加一个按钮,附加方法
但没有成功.
我确定这是一个创建正确的块或方法来创建自定义html字段的问题,但我无法读取通过Magento矩阵:)
我陷入了需要编写类(Datefield.php)的步骤:
<?php
class Namespace_Module_Block_Datefield extends Mage_Adminhtml_Block_System_Config_Form_Field {
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
// ----> Am I wrong in calling ..._Abstract? Should I call Varien_Data_Form_Element_Date? I've tried but no success either...
$this->setElement($element);
$html = // ------------------> what to put here? Call a block or some other method?
->setFormat('d-m-Y')
->setLabel($this->__('Choose date'))
->toHtml();
return $html;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
你有诀窍怎么做?
非常感谢.埃尔韦
一个非常小的事情让我疯狂:)
我无法检索/catalog/product/view/type/options/configurable.phtml模板文件中当前属性的属性代码.
当我改变时,在第36行(或在第36行)
echo $_attribute->getLabel()
Run Code Online (Sandbox Code Playgroud)
至
echo $_attribute->getAttributeId()
Run Code Online (Sandbox Code Playgroud)
我得到eav_attribute了数据库表中存在的正确属性Id .但是,当我尝试
echo $_attribute->getAttributeCode()
Run Code Online (Sandbox Code Playgroud)
我得到一个空字符串,而表中有一个attribute_code字段eav_attribute.
你能帮我找一下属性的属性代码吗?或者,更一般地说:如何获取我们现在为id的属性的属性代码?
非常感谢!
我目前正在开发一个在后端使用产品编辑的模块.其目的是检索产品所属的类别,并使用所选类别列表填充属性(Brand属性).
管理员必须至少选择一个类别.
我的模块按预期工作,但如果管理员在编辑产品时没有选择任何类别,我不知道如何停止保存过程.
这是工作流程
- >如果有选定的类别
- >其他
通用问题可能是:如何将"停止保存"参数传递给观察者?
以下是我的config.xml文件示例以及处理我上面解释的工作流程的方法.
非常感谢您的帮助,并享受Magentoing的乐趣!
config.xml中
<catalog_product_prepare_save>
<observers>
<brands_product_save_observer>
<type>singleton</type>
<class>brands/observer</class>
<method>saveProductBrand</method>
</brands_product_save_observer>
</observers>
</catalog_product_prepare_save>
Run Code Online (Sandbox Code Playgroud)
Observer.php
public function saveProductBrand($observer) {
$product = $observer->getProduct();
$categoryIds = $product->getCategoryIds();
if (isset($categoryIds)) {
foreach ($categoryIds as $categoryId) {
$isBrandCategory = Mage::getModel('brands/navigation')->isBrandCategory($categoryId);
if ($isBrandCategory)
$brandCategories[] = $categoryId;
}
if (isset($brandCategories)) {
$brandId = Mage::getModel('brands/navigation')->getBrand($brandCategories[0]);
if ($brandId) {
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 140);
foreach ($attribute->getSource()->getAllOptions(true, true) as $option) {
$attributeArray[$option['label']] = $option['value'];
}
$categoryName = …Run Code Online (Sandbox Code Playgroud) 继续购物按钮在购物车页面上无法正常工作.
单击按钮后,转到主页.
我想去上一个类别页面.