2016-09-08 3 views
0

Я переопределил файл контроллера (CartController) ... и я получил состояние продукта (новое). И я буду «нуво» на французском сайте. Я использую следующий код, но он не работает. Как я могу это исправить?Как перевести текст в файл контроллера Prestashop

в /override/controllers/front/CartController.php:

[...] 
$list_product = $cart_current->getProducts(); 
foreach ($list_product as $index => $product){ 
    $product_current = new ProductCore($product['id_product'],true); 
    $result['label'] = $this->l($product_current->condition); /* Translation? */ 
} 
[...] 

ответ

1

Сначала я предлагаю, чтобы исправить свой код, как это:

[...] 
$list_product = $cart_current->getProducts(); 
foreach ($list_product as $index => $product){ 
    $product_current = new Product($product['id_product'],true); // Product not ProductCore 
    $result['label'] = $product_current->condition; // Translation not here in the 'controller' but we make in the 'view' 
} 
[...] 

Тогда в 'представлении' (корзина .tpl/product.tpl):

[...] 
/* 
You have to comment this translations to avoid displaying. This is a workaround used also for the months. 
{l s='New'} // {l s='New' mod='mymodule'} if you are in your module tpl 
{l s='Used'} // Like above 
*/ 
{l s='%s' sprintf=[$result['label']]} 
[...] 
+0

Есть ли способы сделать это в файле контроллера? –

+0

Вы должны использовать класс «Перевести», но я не советую так поступать ... Это более правильно, чтобы отделить «логику» от «представления» ... Поскольку у вас есть строка «переменная» для перевода, поэтому вам нужно перевести сначала все возможные значения. – sarcom

+0

Большое вам спасибо! –

0

подмигнули лучше практика переопределения классов/Cart.php, функция getProducts и добавить в запросе

, p.`condition` 
0

Вы можете попробовать использовать следующий после добавления переведенного текста для «New» в любом из модулей переводов

Перевести :: getModuleTranslation()

вместо

$ this-> l()