Решение проблемы с точкой и двоеточием в свойствах товара в Virtuemart 1.1.9

В последней версии VirtueMart 1.1.9 существует проблема со свойствами товаров, а именно мы не можем в название свойства и в особенность поставить точку, запятую, двоеточие и несколько других знаков.

Брожение по форумам показало, что ранее такой проблемы не было.

Посмотрев в БД, можно понять, что все эти свойства записываются через запятую, поэтому её поставить нам не получится, иначе будут проблемы с выводом.

Все достаточно просто — нам необходимо подредактировать файл administrator/components/com_virtuemart/classes/ps_product.php

Находим строки

Как видите, в случае нахождения знаков [:.&»‘] нам выведется ошибка (у меня лично даже текст ошибки не выводился)

В моем случае мне нужна бюла точка, поэтому я закомментировал строки

и

Что в нашем случае отключает фильтр по точке.

$attributeX[«name»] — это имя свойства

$property — это его особенность


  • руут

    Спасибо, помогло!

  • руут

    А вообще хотело бы узнать модуль для работы с особенностями, типа Attribute Manager, только бесплатный, спасибо(это не реклама!)

  • руут

    Напишите ответ по модулю в комментах или в статье, пожалуйста.

    • руут

      1) Массовое добавление и изменение(Категории атрибутов). Т.е. когда у товара одинаковые атрибуты.
      2) Прикрепление картинок к каждому атрибуту

  • admin

    Честно говоря не было надобности.
    Что подразумевается под работой с особенностями, помимо их добавления, изменения?

  • admin

    Честно говоря не сталкивался.
    1 задачу может решить простенький скрипт, скажем парсящий csv файлик.
    А вот со вторым сложнее. Можно в поле свойства добавлять адрес картинки, скажем, а на выдаче отлавливать это и показывать с тегом картинки. Как быстрое решение. Либо создавать дополнительную таблицу.

  • IL

    Здравствуйте. А как Вы закомментировали строки с «.»? У меня Vertuemart 1.1.9. Если редактирую эти строки, сайт перестаёт открываться, открывается только белая страница.

    • admin

      Так сложно судить.
      Что выводится, если

      до этих строк

      // validate attribute names
      foreach ( $d[«attributeX»] as $attributeX ) {

      добавить

      error_reporting(E_ALL);
      ini_set(«display_errors», 1);

      так включится показ ошибок в браузер. И можно кусочек кода, где закомментирована строка с ‘.’, ну и пару строк снизу и сверху.