Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1158 Просмотров
*

hels

  • Захожу иногда
  • 205
  • 0 / 0
В общем на Joomla 3 поставил VirtueMart 3 и вроде все хорошо, но у картинок товаров title и alt "Нет заданного изображения" как побороть?
*

hels

  • Захожу иногда
  • 205
  • 0 / 0
*

hels

  • Захожу иногда
  • 205
  • 0 / 0
даже не знаю, что бы делал без помощи форума.. короче как сделать из названия товара не знаю, но ручками в настройках товара можно к каждой картинке альт прописать. вопрос закрыт  yes!
*

Slava77

  • Захожу иногда
  • 85
  • 7 / 0
Здравствуйте!

Чтобы в ручную не заполнять поле alt в свойствах товара VirtueMart, а автоматически подставить в данное поле наименование товара необходимо:
1) Переопределите шаблон товара (чтобы сохранились изменения после обновления), для этого скопируйте всю папку components/com_virtuemart/views/productdetails
в   templates/ваш шаблон/html/com_virtuemart/productdetails/

2) Внутри папки templates/ваш шаблон/html/com_virtuemart/productdetails/ в файле default_images.php
после строки $image = $this->product->images[0];
добавьте строку $image->file_meta = $this->product->product_name;

Должно получится:

if (!empty($this->product->images)) {
   $image = $this->product->images[0];
   $image->file_meta = $this->product->product_name;
   ?>


UPD  Если в названии товара встречаются кавычки (пример: Товар "Марка товара"), то лучше использовать код ниже (этот код очистит наименование товара от кавычек  перед вставкой в  alt / title / наименование товара под изображением когда оно увеличено и все будут заполнены корректно):
Код
if (!empty($this->product->images)) {
$image = $this->product->images[0];
$productName = $this->product->product_name;
$productName = str_replace('"', '', $productName);
$image->file_meta = $productName;
?>


Если кавычки внутри Alt / Title и т.д. очень нужны то, можно заменить на код ниже, (код поменяет Товар "Марка товара" на Товар «Марка товара» и потом добавит наименование в  alt / title / итд ) 
Код ниже чувствительный к кодировке (символы кавычек), убедитесь что файл сохранен в UTF-8
Код
if (!empty($this->product->images)) {
$image = $this->product->images[0];
$productName = $this->product->product_name;
function replaceQuotes($text) { $inQuotes = false; $result = ""; for ($i = 0; $i < strlen($text); $i++) { if ($text[$i] === '"') { if ($inQuotes) { $result .= '»'; } else { $result .= '«'; } $inQuotes = !$inQuotes; } else { $result .= $text[$i]; } } return $result; }
$productName = replaceQuotes($productName);
$image->file_meta = $productName;
?>


Данный код не только автоматически заполнит атрибут alt у изображения, но и добавит наименование товара в атрибут title у родительской ссылки внутри которой находится заглавное изображение товара, а также добавит строку с наименование товара под изображением когда оно увеличено.

Также, если требуется ниже можно добавить еще одну строку:    $image->file_description= $this->product->product_name; это позволит автоматически подставлять наименование товара в поле "Название / описание изображения"

Должно получится:

if (!empty($this->product->images)) {
   $image = $this->product->images[0];
   $image->file_meta = $this->product->product_name;
   $image->file_description= $this->product->product_name;
   ?>


3) Если необходимо решить аналогичную задачу у дополнительных изображений товара, то:
внутри папки templates/ваш шаблон/html/com_virtuemart/productdetails/ в файле default_images_additional.php
после строки $image = $this->product->images[$i];
добавьте аналогичную строку $image->file_meta = $this->product->product_name;

Возможно кому-то пригодится ^-^

Способ проверен на Joomla! 3.10.12 / VirtueMart 4.0.12 /
« Последнее редактирование: 27.03.2024, 04:29:38 от Slava77 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart 3 Отображать только товары в наличии!

Автор GaziroFFka

Ответов: 4
Просмотров: 2129
Последний ответ 06.06.2023, 13:55:13
от Akeksandr
SP VirtueMart Category Search

Автор ve1006

Ответов: 10
Просмотров: 6062
Последний ответ 18.01.2023, 10:39:10
от AzMandius
Как вывести модуль в страницу VirtueMart?

Автор harddrop

Ответов: 11
Просмотров: 2916
Последний ответ 13.11.2022, 13:11:37
от Evgen Kulibin
Как правильно настроить покупку в VirtueMart?

Автор varella

Ответов: 1
Просмотров: 1276
Последний ответ 12.10.2022, 16:14:04
от varella
Не могу сохранить порядок категорий в VirtueMart 3.9.8 и 4

Автор Egoritch

Ответов: 0
Просмотров: 1309
Последний ответ 26.05.2022, 12:30:59
от Egoritch