Создавал характеристики с цифрами впереди, чтобы потом отсортировать характеристики так как мне надо. Пример 1015.Страна производитель 1013.Гарантия.
При выводе на страницу товара цифры убирались добавлением вот этого куска кода в
/classes/product.php
Это
Код:
{
if (!array_key_exists($id_product.'-'.$id_lang, self::$_frontFeaturesCache))
{
self::$_frontFeaturesCache[$id_product.'-'.$id_lang] = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT name, value, pf.id_feature
FROM '._DB_PREFIX_.'feature_product pf
LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = pf.id_feature AND fl.id_lang = '.(int)$id_lang.')
LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = pf.id_feature_value AND fvl.id_lang = '.(int)$id_lang.')
WHERE pf.id_product = '.(int)$id_product);
}
return self::$_frontFeaturesCache[$id_product.'-'.$id_lang];
}
Менял на это
Код:
public static function getFrontFeaturesStatic($id_lang, $id_product)
{
if (!array_key_exists($id_product.'-'.$id_lang, self::$_frontFeaturesCache))
{
self::$_frontFeaturesCache[$id_product.'-'.$id_lang] = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT name, value, pf.id_feature
FROM '._DB_PREFIX_.'feature_product pf
LEFT JOIN '._DB_PREFIX_.'feature_lang fl ON (fl.id_feature = pf.id_feature AND fl.id_lang = '.(int)$id_lang.')
LEFT JOIN '._DB_PREFIX_.'feature_value_lang fvl ON (fvl.id_feature_value = pf.id_feature_value AND fvl.id_lang = '.(int)$id_lang.')
WHERE pf.id_product = '.intval($id_product).' ORDER BY `name` ASC');
}
$resultsArray = array();
foreach (self::$_frontFeaturesCache[$id_product.'-'.$id_lang] AS $row)
{
$row['name'] = preg_replace('/^[0-9]+\./', '', $row['name']);
$resultsArray[] = $row;
}
return $resultsArray;
}
И при выводе характеристик цифр уже нет.
А теперь вопрос, включил фильтр (модуль blocklayered)
И при выводе характеристик, они выводятся с цифрами, как избавиться незнаю, уже неделю мучась и всё безтолку.
Помогите.