Решение проблемы с точкой и двоеточием в свойствах товара в Virtuemart 1.1.9
В последней версии VirtueMart 1.1.9 существует проблема со свойствами товаров, а именно мы не можем в название свойства и в особенность поставить точку, запятую, двоеточие и несколько других знаков.
Брожение по форумам показало, что ранее такой проблемы не было.
Посмотрев в БД, можно понять, что все эти свойства записываются через запятую, поэтому её поставить нам не получится, иначе будут проблемы с выводом.
Все достаточно просто — нам необходимо подредактировать файл administrator/components/com_virtuemart/classes/ps_product.php
Находим строки
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // validate attribute names foreach ( $d["attributeX"] as $attributeX ) { // if we only have one attribute it can be left empty if ( ( $attributeX["name"] == "" ) and ( count ( $d["attributeX"] ) > 1 ) ) { $vmLogger->err( $VM_LANG->_('VM_PRODUCT_MISSING_ATTRIBUTE_NAME',false) ); $valid = false; } if ( strpos( $attributeX["name"], ":" ) or strpos( $attributeX["name"], "." ) or strpos( $attributeX["name"], "&" ) or strpos( $attributeX["name"], '"' ) or strpos( $attributeX["name"], "'" ) ) { $vmLogger->err( $VM_LANG->_('VM_PRODUCT_INVALID_ATTRIBUTE_NAME',false) ); $valid = false; } foreach ( $attributeX["value"] as $property ) { if ( strpos( $property, ":" ) or strpos( $property, "." ) or strpos( $property, "&" ) or strpos( $property, '"' ) or strpos( $property, "'" ) ) { $vmLogger->err( $VM_LANG->_('VM_PRODUCT_INVALID_ATTRIBUTE_PROPERTY',false) ); $valid = false; } } } |
Как видите, в случае нахождения знаков [:.&»‘] нам выведется ошибка (у меня лично даже текст ошибки не выводился)
В моем случае мне нужна бюла точка, поэтому я закомментировал строки
1 | //strpos( $attributeX["name"], "." ) or |
и
1 | //strpos( $property, "." ) or |
Что в нашем случае отключает фильтр по точке.
$attributeX[«name»] — это имя свойства
$property — это его особенность
Комментарии к Решение проблемы с точкой и двоеточием в свойствах товара в Virtuemart 1.1.9 (8)
руут
Спасибо, помогло!
руут
А вообще хотело бы узнать модуль для работы с особенностями, типа Attribute Manager, только бесплатный, спасибо(это не реклама!)
руут
Напишите ответ по модулю в комментах или в статье, пожалуйста.
руут
1) Массовое добавление и изменение(Категории атрибутов). Т.е. когда у товара одинаковые атрибуты.
2) Прикрепление картинок к каждому атрибуту
admin Post author
Честно говоря не было надобности.
Что подразумевается под работой с особенностями, помимо их добавления, изменения?
admin Post author
Честно говоря не сталкивался.
1 задачу может решить простенький скрипт, скажем парсящий csv файлик.
А вот со вторым сложнее. Можно в поле свойства добавлять адрес картинки, скажем, а на выдаче отлавливать это и показывать с тегом картинки. Как быстрое решение. Либо создавать дополнительную таблицу.
IL
Здравствуйте. А как Вы закомментировали строки с «.»? У меня Vertuemart 1.1.9. Если редактирую эти строки, сайт перестаёт открываться, открывается только белая страница.
admin Post author
Так сложно судить.
Что выводится, если
до этих строк
// validate attribute names
foreach ( $d[«attributeX»] as $attributeX ) {
добавить
error_reporting(E_ALL);
ini_set(«display_errors», 1);
так включится показ ошибок в браузер. И можно кусочек кода, где закомментирована строка с ‘.’, ну и пару строк снизу и сверху.