Newer
Older

Dominik Chrzanowski
committed
<?php
/**

Dominik Chrzanowski
committed
* This file contains QUI\Bricks\Controls\Slider\CustomerReviewsSlider
* @author Dominik Chrzanowski

Dominik Chrzanowski
committed
*/

Dominik Chrzanowski
committed
namespace QUI\Bricks\Controls\Slider;

Dominik Chrzanowski
committed
use QUI;

Dominik Chrzanowski
committed
/**
* Class CustomerReviews
*

Dominik Chrzanowski
committed
* @package quiqqer/bricks/Controls

Dominik Chrzanowski
committed
*/
class CustomerReviewsSlider extends QUI\Control

Dominik Chrzanowski
committed
{
public function __construct($attributes = [])
{
// default options
$this->setAttributes([

Dominik Chrzanowski
committed
'data-qui' => 'package/quiqqer/bricks/bin/Controls/Slider/CustomerReviewsSlider',
'template' => 'default',
'delay' => 5000,
'perView' => 2,
'gap' => 40

Dominik Chrzanowski
committed
]);
parent::__construct($attributes);
}

Dominik Chrzanowski
committed
{

Dominik Chrzanowski
committed
$Engine = QUI::getTemplateManager()->getEngine();
$entries = json_decode($this->getAttribute('entries'), true);
$template = $this->getAttribute('template');
$path = dirname(__FILE__) . '/CustomerReviewsSlider.' . $template . '.html';

Dominik Chrzanowski
committed
$enabledEntries = [];
$gap = $this->getAttribute('gap') ? intval($this->getAttribute('gap')) : 40;

Dominik Chrzanowski
committed
if (!$entries) {
QUI\System\Log::addNotice(
'QUI\Bricks\Controls\Slider\CustomerReviewsSlider - No customer reviews founded.
packages/quiqqer/bricks/src/QUI/Bricks/Controls/Slider/CustomerReviewsSlider.php:45'
);
return '';
}

Dominik Chrzanowski
committed
switch ($gap) {
case $gap < 0:
$gap = 0;
break;

Michael Danielczok
committed

Dominik Chrzanowski
committed
case $gap > 200:
$gap = 200;
break;
}

Dominik Chrzanowski
committed

Dominik Chrzanowski
committed
$this->setJavaScriptControlOption('delay', $this->getAttribute('delay'));

Dominik Chrzanowski
committed
$this->setJavaScriptControlOption('autoplay', $this->getAttribute('autoplay'));
$this->setJavaScriptControlOption('height', $this->getAttribute('sliderHeight'));

Dominik Chrzanowski
committed
$this->setJavaScriptControlOption('gap', $gap);

Dominik Chrzanowski
committed

Dominik Chrzanowski
committed
switch ($template) {

Michael Danielczok
committed
case 'default':

Dominik Chrzanowski
committed
case 'templateOne':

Michael Danielczok
committed
$this->setJavaScriptControlOption('perview', intval($this->getAttribute('perView')));

Dominik Chrzanowski
committed
break;
}

Dominik Chrzanowski
committed

Dominik Chrzanowski
committed
foreach ($entries as $entry) {
if ($entry['isDisabled'] === 1) {
continue;
}

Dominik Chrzanowski
committed
}

Dominik Chrzanowski
committed
$options = [

Dominik Chrzanowski
committed
'entries' => $enabledEntries,

Michael Danielczok
committed
'perView' => $this->getAttribute('perView')

Dominik Chrzanowski
committed
];

Dominik Chrzanowski
committed
$this->addCSSFiles(
[
dirname(__FILE__) . '/CustomerReviewsSlider.css',
dirname(__FILE__) . '/CustomerReviewsSlider.' . $template . '.css'

Dominik Chrzanowski
committed
]

Dominik Chrzanowski
committed
);
$Engine->assign($options);
return $Engine->fetch($path);

Dominik Chrzanowski
committed
}