<?php
/*
Plugin Name: Слайдер товаров
Description: Выводит в любое место страницы слайдер товаров. В разметкe страницы товара необходимо вставить шорт код: [slider-products] с аргументами. Пример использования: [slider-products countProduct="6" countPrint="3" categoryId="0" product="1,29,33,47"], где countProduct - количество товаров, countPrint - количество одновременно показываемых товаров, categoryId - id категории из которой выводятся товары. Или [slider-products] с аргументами. Пример использования: [slider-products countPrint="3" product="1,29,33,47"], где product - перечисление id конкретных товаров для вывода. Все аргументы не обязательны.
Author: Avdeev Mark
Version: 1.1.5
*/
/*
Пример использования.
В разметке страница товара необходимо вставить шорт код:
[slider-products countProduct="6" countPrint="3" categoryId="0"]
*/
function sliderProducts($args) {
$countProduct = !empty($args['countproduct']) ? $args['countproduct'] : 6; //количество товаров в ленте
$countPrint = !empty($args['countprint']) ? $args['countprint'] : 3; //количество выводимых товаров
$categoryId = !empty($args['categoryid']) ? $args['categoryid'] : 0; //id категории из которой нужно выводить товары
$product = !empty($args['product']) ? $args['product'] : ''; //id категории из которой нужно выводить товары
$filter = $categoryId ? 'c.id = '.$categoryId : '1=1';
$filter .= ' and p.activity = 1';
if ($product != '') {
$filter = '';
$products = explode(',', $product);
foreach ($products as $id) {
$filter .= ' p.id = '.DB::quote($id).' OR';
}
$filter = substr($filter, 0, strlen($str)-2);
$countProduct = count($products);
}
$catalog = new Models_Catalog();
$products = $catalog->getListByUserFilter(1000, $filter);
$html = '
<div class="m-p-products recommend">
<div class="m-p-products-slider">
<div class="index-slider owl-carousel owl-theme">
';
$currency = MG::getSetting('currency');
foreach ($products['catalogItems'] as $k=>$item) {
$product_am = new Models_Product;
$liteFormData = $product_am->createPropertyForm($param = array(
'id' => $item['id'],
'maxCount' => $item['count'],
'productUserFields' => $item['thisUserFields'],
'action' => "/catalog",
'method' => "POST",
'ajax' => true,
'blockedProp' => $blockedProp,
'noneAmount' => false,
'titleBtn' => "В корзину",
'blockVariants' => $blocksVariants[$item['id']],
'buyButton' => $buyButton
));
$products['catalogItems'][$k]['buyButton'] = $liteFormData['html'];
$imagesUrl = explode("|", $item['image_url']);
$item["image_url"] = "";
if (!empty($imagesUrl[0])) {
$item["image_url"] = $imagesUrl[0];
}
if(function_exists('mgImageProductPath')){
$imgSrc = mgImageProductPath($item['image_url'], $item['id']);
}else{
$imgSrc = SITE.'/uploads/thumbs/70_'.$item['image_url'];
}
if ($item['count'] == 'много' || $item['count'] == -1){$availability = 'В наличии';}
else {$availability ='Нет в наличии';}
$html.='
<div class="product-wrapper">
<a class="product-image" href="'.SITE.'/'.$item['category_url'].'/'.$item['product_url'].'" title="'.$item['title'].'">
<img src="'.$imgSrc.'" alt="'.$item['title'].'" title="'.$item['title'].'" class="mg-product-image">
</a>
<div class="product-details">
<a class="product-name" href="'.SITE.'/'.$item['category_url'].'/'.$item['product_url'].'"><span>'.$item['title'].'</span></a>
<div class="value">Температура: '.$item['thisUserFields'][53]['value'].'</div>
<div class="value">Мощность: '.$item['thisUserFields'][67]['value'].'</div>
<div class="value">Напряжение: '.$item['thisUserFields'][68]['value'].'</div>
<span class="count-on-storage">
<span> <span itemprop="availability">
'.$availability.'
</span> </span>
</span>
<div class="product-footer">
<div class="product-price">'.MG::priceCourse($item['price_course']).' '.$currency.'</div>
<div class="product-buttons">'.$products['catalogItems'][$k]['buyButton'].'</div>
</div>
</div>
</div>';
}
$html .= '
</div>
</div>
</div>
<script>
$(document).ready(function(){
$(".mg-plugin-slider").owlCarousel({
loop: true,
nav: true,
responsive: {
0: {
items: 2,
margin: 10
},
768: {
items: 3
},
990: {
items : 4,margin: 16
}
}
});
});
</script>
';
return $html;
}
mgAddMeta('<link href="'.SITE.'/mg-plugins/slider-products/css/style.css" rel="stylesheet" type="text/css">');
mgAddMeta('<script type="text/javascript" src="'.SITE.'/mg-plugins/slider-products/js/jquery.carouFredSel-6.2.0-packed.js" charset="utf-8"></script>');
mgAddShortcode('slider-products', 'sliderProducts');