Ответить Новая тема Новый опрос 
 Помогите убрать цифры в blocklayered (фильтре)
gsv1982


Новичок
Сообщений: 33
Откуда: Чернигов
Регистрация: 16-03-2011


18-11-2012 05:09
Создавал характеристики с цифрами впереди, чтобы потом отсортировать характеристики так как мне надо. Пример 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)

И при выводе характеристик, они выводятся с цифрами, как избавиться незнаю, уже неделю мучась и всё безтолку.

Помогите.



Изображения:
features.jpg - Размер файла16.73KB, Скачиваний: 328 (Нажмите для увеличения)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
true_agent


Cпециалист
Сообщений: 206
Откуда: Украина
Регистрация: 26-09-2011


19-11-2012 08:39
Модуль в версии 1,4 нормально можно самому настроить что и как Вы хотите выводить!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
gsv1982


Новичок
Сообщений: 33
Откуда: Чернигов
Регистрация: 16-03-2011


19-11-2012 22:37
Я хочу чтобы обрезались цифры в начале названий характеристик, как показано на рисунке. Я понимаю что это можно реализовать с помощью preg_replace. Но почему-то у меня не выходит.
Мне кажется что это где-то в
2748 строка приблизительно
case 'id_feature':
Так как тут идёт запрос к таблице ps_feature_lang, где хранятся эти значения
Вот пример:
98 6 0002.Модель:
Изменить Удалить 107 6 0003.Код:
Изменить Удалить 300 6 0004.Мощность:
Изменить Удалить 142 6 0005.Тип:
Изменить Удалить 441 6 0006.Источник питания:
Изменить Удалить 27 6 0007.Процессор:
Изменить Удалить 28 6 0008.Чипсет:
Изменить Удалить 40 6 0009.Материнская плата:
Изменить Удалить 39 6 0010.Дисплей:
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
gsv1982


Новичок
Сообщений: 33
Откуда: Чернигов
Регистрация: 16-03-2011


20-11-2012 20:23
Лови


Изображения:
blocklayered.tpl.jpg - Размер файла13.97KB, Скачиваний: 280 (Нажмите для увеличения)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос