Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Модули DIAFAN.CMS Магазин Вывод дефолтного изображения для товаров без картинок


Кирилл (kirilldmt) 312 февраля, вторник

Как бы выводить дефолтное изображение для товаров без картинок?

Сергей (universe) 7312 февраля, вторник

Создать условие в необходимых view-файлах вывода товаров. В каждом есть конструкция вывода фотографий с проверкой. Достаточно дописать условие когда нет ни одного фото и подставить изображение или надпись.

Кирилл (kirilldmt) 312 февраля, вторник

Помогите плиз с написанием условия)

Сергей (universe) 7312 февраля, вторник

Да легко))

Берем к примеру карточку товара. За вывод данных товара отвечает файл shop.view.id
В нем есть стандартный вывод изображений:

if(! empty($result["img"]))
{
echo '<div class="js_shop_all_img shop_all_img shop-item-big-images">';
$k = 0;
foreach($result["img"] as $img)
{
switch ($img["type"])
{
case 'animation':
echo '<a class="js_shop_img shop-item-image'.(empty($k) ? ' active' : '').'" href="'.BASE_PATH.$img["link"].'" data-fancybox="gallery'.$result["id"].'shop" image_id="'.$img["id"].'">';
break;
case 'large_image':
echo '<a class="js_shop_img shop-item-image'.(empty($k) ? ' active' : '').'" href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'" image_id="'.$img["id"].'">';
break;
default:
echo '<a class="js_shop_img shop-item-image'.(empty($k) ? ' active' : '').'" href="'.BASE_PATH.$img["link"].'" image_id="'.$img["id"].'">';
break;
}
echo '<img src="'.BASE_PATH.$img["link"].'" alt="'.$img["alt"].'" title="'.$img["title"].'" image_id="'.$img["id"].'" class="shop_id_img">';
echo '</a>';
$k++;
}
echo '<span class="shop-photo-labels">';
if (!empty($result['hit']))
{
echo '<img src="'.BASE_PATH.Custom::path('img/label_hot_big.png').'">';
}
if (!empty($result['action']))
{
echo '<img src="'.BASE_PATH.Custom::path('img/label_special_big.png').'">';
}
if (!empty($result['new']))
{
echo '<img src="'.BASE_PATH.Custom::path('img/label_new_big.png').'">';
}
echo '</span>';

echo '<span class="icon-zoom">&nbsp;</span>
<span class="js_shop_wishlist shop_wishlist shop-like'.(! empty($result["wish"]) ? ' active' : '').'"><i class="fa fa-heart'.(! empty($result["wish"]) ? '' : '-o').'">&nbsp;</i></span>';

echo '</div>';
if($result["preview_images"])
{
echo '<a class="control-prev shop-previews-control" href="#"><i class="fa fa-toggle-left"></i></a>
<a class="control-next shop-previews-control" href="#"><i class="fa fa-toggle-right"></i></a>';
echo '<div class="shop_preview_img shop-item-previews items-scroller" data-item-per-screen="3" data-controls="shop-previews-control">';
foreach($result["img"] as $img)
{
echo ' <a class="js_shop_preview_img item" href="#" style="background-image:url('.$img["preview"].')" image_id="'.$img["id"].'">&nbsp;</a>';
}
echo '</div>';
}
}

else {
echo '<img src="'.BASE_PATH.Custom::path('img/label_new_big.png').'">';
}



Все, что нам нужно - добавить после стандарта условие else (добавленное выделено жирным).

Таким образом, условие имеет вид: Если у товара есть фото - выводи фото, а ежели фото нема - выводи <img src="'.BASE_PATH.Custom::path('img/label_new_big.png').'">

Ну вместо <img src="'.BASE_PATH.Custom::path('img/label_new_big.png').'"> любое ваше изображение или текст или html