Что такое двойные фигурные скобки "{{ценовое значение}}" в файле 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. В то же время, когда я оставляю его пустым, он все еще остается пустым.

Author: Key Shang, 2017-09-06

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 цену и оставьте пустым, где вы хотите оставить пустым.

Это кажется странным, но работает с минимальными усилиями и без основных изменений.

 1
Author: Jaimin Sutariya, 2017-09-06 09:59:55

'{{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 будет сохранен в садитесь за стол и работайте так, как вам хочется.

 2
Author: Spices, 2017-09-07 04:13:27