Оказалось, что alt для изображения нельзя задать с помощью параметров функции displayMediaThumb.
Параметр alt функция displayMediaThumb() берет из свойств объекта изображения - $product->images[0]
Поэтому нам нужно изменить свойство данного объекта file_meta таким образом:
if (!empty($product->images[0])) { if ( empty( $product->images[0]->file_meta ) ) { $product->images[0]->file_meta = htmlspecialchars($product->product_name); } }
htmlspecialchars нужен для случая когда в имени товара есть кавычки.
Для Virtuemart 3 alt меняем в файле:
components/com_virtuemart/sublayouts/products.php
Стоит также проверить, действительно ли используется этот файл.. возможно в шаблоне есть переопределение подшаблонов, тогда нужно править файл
шаблон/html/sublayouts/products.php
Либо, код вообще может быть в файле
шаблон/html/com_virtuemart/category/default.php
Находим цикл по продуктам:
foreach ( $products as $product ) {
И в начале цикла добавляем приведенный выше код.
Для категорий в файл
components/com_virtuemart/sublayouts/categories.php
Добавляем примерно такой же код как и для товаров:
if (!empty($category->images[0])) { if ( empty( $category->images[0]->file_meta ) ) { $category->images[0]->file_meta = htmlspecialchars($category->category_name); } }
Комментарии
Для VM3 подходит решение. В функцию тоже хорошо, но обновление виртуемарта может затереть исправления..
Здравствуйте! Недавно вставлял код, работает. Но может быть особенность шаблона, например, не используется подшаблон sublayouts/prod ucts.php или в шаблоне есть переопределение подшаблонов в папке html шаблона - шаблон/html/sublayouts/prod ucts.php. В моем случае цикл по товарам находился в файле шаблон\html\com_virtuemart\category\default.php
Попробуйте поискать эти файлы, возможно, тот файл, где вы меняли не используется..
foreach ( $products as $product ) {
if (!empty($produc t->images[0])) {
if ( empty( $product->image s[0]->file_meta ) ) {
$product->image s[0]->file_meta = htmlspecialchar s($product->pro duct_name);
}
}....
RSS лента комментариев этой записи