Что такое двойные фигурные скобки "{{ценовое значение}}" в файле phtml?
Я вижу '{{pricing_value}}'
в /app/design/adminhtml/default/default/template/catalog/product/edit/super/config.phtml
, я предполагаю, что это выражение механизма шаблонов, но не уверен. Что это?
Как он приобретает ценность? Из квартала Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config
?
Если я хочу обработать его значение, куда мне следует перейти для редактирования?
'{{pricing_value}}'
покажет null, когда значение pricing_value равно 0, но я хочу, чтобы оно просто показывало 0. В то же время, когда я оставляю его пустым, он все еще остается пустым.
2 answers
Вот что вы можете сделать,
откройте product.js файл, перейдите к строке вокруг 671
Заменить приведенный ниже код
if (!isNaN(pricingValue)) {
templateVariables.set('pricing_value', pricingValue);
} else {
templateVariables.unset('pricing_value');
}
С
if (!isNaN(pricingValue)) {
templateVariables.set('pricing_value', pricingValue);
} else {
templateVariables.set('pricing_value', 0);
}
Обновите свой кэш и проверьте.
РЕДАКТИРОВАТЬ
Для достижения того, что вам нужно, есть странное решение.
Отмените изменения, указанные в приведенном выше коде. Теперь, когда вы добавляете цену для атрибута продукта в разделе "Продукт", используйте 0.00
в качестве значения вместо 0
, где вы хотите добавить 0 цену и оставьте пустым, где вы хотите оставить пустым.
Это кажется странным, но работает с минимальными усилиями и без основных изменений.
'{{pricing_value}}'
является шаблонными переменными, Magento имеет анализатор для распознавания кодов и преобразования их в действия. Вы можете назначить переменные Magento, а затем использовать синтаксис двойных фигурных скобок для их повторного использования, он часто появляется в шаблонах электронной почты, шаблонах счетов-фактур и т. Д. Некоторый подробный пример, который вы могли бы увидеть ниже:
Magento - как добавить пользовательские переменные в электронную почту нового заказа?
Расширенная Транзакционная Электронная почта Шаблоны
Обработка '{{pricing_value}}'
находится в /js/mage/adminhtml/product.js
:
var pricingValue = parseFloat(templateVariables.get('pricing_value'));
if (!isNaN(pricingValue)) {
templateVariables.set('pricing_value', pricingValue);
} else {
templateVariables.unset('pricing_value');
}
Когда значение pricing_value равно 0, Magento не сохраняет его в таблице catalog_product_super_attribute_pricing
, поэтому значение Pricingvalue(0) всегда равно нулю, то есть значение pricingvalue(0) всегда равно NaN и похоже на пустое. Так что, если вы хотите
Когда я устанавливаю вход 0, он равен 0. Когда я оставляю его пустым, он все еще остается пустым
Вы не должны устанавливать ввод 0, но установите ввод 0.0
в соответствии с ответом Хаймина, тогда 0.0000
будет сохранен в садитесь за стол и работайте так, как вам хочется.