Проблема в отображение товара "в наличии" или "под заказ" при просмотра тэга

Автор werru, 09 марта 2015, 23:42:54

« назад - далее »

Adik


werru

добавил внизу /themes/default-bootstrap/product-list.tpl (в блоке if конечно)
{addJsDef availableLaterValue=$product->available_later|escape:'quotes':'UTF-8'}
и кажися работает. что делает эта функция?

Adik

Добавляет js переменные
<?php
// MediaCore::addJsDef()
public static function addJsDef($js_def)
{
if (is_array($js_def))
foreach ($js_def as $key => $js)
               
Media::$js_def[$key] = $js;
elseif ($js_def)
Media::$js_def[] = $js_def;
}


"Защищает" специальные символы в переменной.
{$var|escape:"quotes"} {* защита кавычек *}

werru

правильно я понимаю. Оно не должно решать проблему отсутствия сведений о значении product.available_later, но делает это.
в любом случае запрос к БД идёт. и я успокаиваюсь. Но это баг

Adik

Не совсем правильно, но то что это баг точно. При фильтрации по тегу происходит переопределение переменных шаблона с помощью js. В этой переменной используются не экранированные спец символы. Возникает ошибка. В js при такой ошибки просто не определяется это переменная, поэтому при проверки она выдает null. При добалении функции проверки и защиты спец символов, значение этой переменой передается без проблем.

petros

На prestashop.com писали про такой баг и уже исправили. В поиске нужно было добавить выборку переводов. В файле Search.php в функции searchTag заменить
$sql = 'SELECT DISTINCT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description_short`, pl.`link_rewrite`, pl.`name`,
MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` manufacturer_name, 1 position,

на
$sql = 'SELECT DISTINCT p.*, product_shop.*, stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, pl.`description_short`, pl.`link_rewrite`, pl.`name`, pl.`available_now`, pl.`available_later`,
MAX(image_shop.`id_image`) id_image, il.`legend`, m.`name` manufacturer_name, 1 position,

werru

спасибо тебе, добрый человек!
а prestashop не хорошо поступают. бага старая - я находил посты с 2012 года... моему поделью нету месяца, т.е. установка свежая, а баг всё там же.