Внезапно товар перестал выпускаться… Досадно, но клиенты звонят и его хотят, а производитель с ними (с клиентами) ни разу не солидарен… Беда-беда огорчение, особенно если товар был достаточно популярен.
Это хорошо, что он еще есть, но товары, как и все прекрасное, имеет свойство заканчиваться, а сайт показывает «Есть в наличии»…
Может быть, мой способ и топорный, но он сработал.Итак, для Virtuemart 1.0. Нам нужны будет файл administrator\components\com_virtuemart\classes\ps_product.php
В нем поменяем строчки:
строка: 1964
код в оригинале:
$html = $no_price_html;
код измененный:
$html = "";//$no_price_html;
строка: 2260
код в оригинале:
$html .= "<span style=\"font-weight:bold;\">".$VM_LANG->_PHPSHOP_DELIVERY_TIME." </span><br /><br />";
код измененный:
//$html .= "<span style=\"font-weight:bold;\">".$VM_LANG->_PHPSHOP_DELIVERY_TIME." </span><br /><br />";
и
строка: 2236
код в оригинале:
$heading = "<div style=\"text-decoration:underline;font-weight:bold;\">".$VM_LANG->_PHPSHOP_AVAILABILITY."</div><br />";
код измененный:
//$heading = "<div style=\"text-decoration:underline;font-weight:bold;\">".$VM_LANG->_PHPSHOP_AVAILABILITY."</div><br />";
Номера строк могут отличаться если были какие-то изменения (а у меня они были).
Далее идем в папку components\com_virtuemart\shop_image\availability\
и загружаем туда свои изображения («Нет на складе», «В пути», «Снят с производства», «Есть на складе» — это кому как угодно). Стоит отметить, что изначально поддерживаются изображения JPG, GIF, PNG, но никто не мешает разрешить поддержку любых других, поддерживаемых браузером.
строка: 2258
код в оригинале:
if (stristr($pav, "gif") || stristr($pav, "jpg") || stristr($pav, "png")) {
код измененный:
if (stristr($pav, "gif") || stristr($pav, "jpg") || stristr($pav, "png") || stristr($pav, "bmp")) {
Надо сказать, что ограничения весьма условные и созданы лишь для того, чтобы отображать только картинки, а не выводить в список выбора в админке, например, файл index.htm, который там лежит (и не надо его удалять).
Теперь если цена не задана (просто пустое поле) — больше не будет надписи «Позвоните, чтобы уточнить цену», а также будут адекватные надписи (в виде картинок).
Еще нужно упомянуть, что для того, чтобы это все отобразилось в карточке товара, необходимо в файле \administrator\components\com_virtuemart\html\templates\product_details\flypage.php
поставить заглушку {product_availability} в то место, куда вы хотите поставить картинку со статусом товара.
К какой версии VM это относится, а то у себя в указанных строках, да и не только в них не могут найти подобного.
И если можно то поконкретней какая строчка на что влияет. Я бы например вместо картинок предпочел текст, а сейчас и с картинками проблема..
Это для Virtuemart 1.0, пардон, не указал сразу. Поправил…
Просто по заглушке видно, что 1.0, не подумал, что будет непонятно 🙁
А в 1.1.х статусы товара можно менять во вкладке «Статусы товара», поле «Доступность». Если там укаать текст — выведется текст. Если указать имя файла с картинкой — выведется картинка (надо, чтобы она лежала в паке /components/com_virtuemart/themes/default/images/availability/)
Спасибо за ответ. У меня как раз 1.1.х, но что-то с ним не то, почему-то если что угодно вписать в это поле показывает картинку not-available.gif
если картинку выбрать то все ок
буду думать дальше
Для 1.1.х
В файле components/com_virtuemart/themes/default/templates/common/availability.tpl.php
начиная со строки 43 (у меня) идет проверка на картинку:
if( is_file( VM_THEMEPATH."images/availability/".$product_availability)) {
echo vmCommonHTML::imageTag( VM_THEMEURL."images/availability/".$product_availability, $product_availability );
}
Добавляем ниже после «}»:
else { ?>
< ?php echo $product_availability; ?>
< ?php }
И вроде все. Если надо - могу скинуть мой файл на мыло.
У меня вот такой код:
if( is_file( VM_THEMEPATH.»images/availability/».$product_availability)) {
echo vmCommonHTML::imageTag( VM_THEMEURL.»images/availability/».$product_availability, $product_availability );
}
else {
echo $product_availability;
}
Можно попробовать посмотреть ваш файл. Пробовал поправить, но страница оказалась не работоспособной.
Мне это вообще все не нравится, но не вижу чтобы кто-то этот вопрос обсуждал и что-то дорабатывал, а сам я не программист и php для меня пока тяжело.
Кстати если удалить все картинки и попробовать что-нибудь написать то выдает вместо картинки текст: not-available.gif
Кроме того свои картинки с собственными именами не добавляются, работают только те что есть в наборе, можно залить другие вместо них, но как-то это тоже не очень правильно.
Отправил файл на мыло. Отпишитесь, пожалуйста, заработало ли?