Commit 7f52c0c950926f945c8ecfcdff258163605c6c5e

Authored by Administrator
1 parent c1196c22

slider

models/SliderImage.php
... ... @@ -18,6 +18,7 @@
18 18 * @property string $url
19 19 * @property integer $status
20 20 * @property integer $sort
  21 + * @property integer $end_at
21 22 * @property Slider $slider
22 23 * * From language behavior *
23 24 * @property SliderImageLang $lang
... ... @@ -68,11 +69,13 @@
68 69 'slider_id',
69 70 'status',
70 71 'sort',
  72 +
71 73 ],
72 74 'integer',
73 75 ],
74 76 [
75 77 [
  78 + 'end_at',
76 79 'url',
77 80 ],
78 81 'string',
... ... @@ -105,6 +108,38 @@
105 108 ],
106 109 ];
107 110 }
  111 +
  112 +
  113 +
  114 + public function beforeSave($insert)
  115 + {
  116 + if (parent::beforeSave($insert)) {
  117 +
  118 + $this->end_at = !empty($this->end_at) ? strtotime($this->end_at) : '';
  119 + return true;
  120 + } else {
  121 + return false;
  122 + }
  123 + }
  124 +
  125 + public function afterFind(){
  126 + $this->end_at = !empty($this->end_at) ? date("Y-m-d", $this->end_at) : '';
  127 + }
  128 +
  129 +
  130 + /**
  131 + * @return bool
  132 + */
  133 + public function isActive(){
  134 + if($this->status){
  135 +
  136 + if(!empty($this->end_at) && (strtotime($this->end_at) <= strtotime(date("Y-m-d")))){
  137 + return false;
  138 + }
  139 + return true;
  140 + }
  141 + return false;
  142 + }
108 143  
109 144 /**
110 145 * @inheritdoc
... ... @@ -118,6 +153,7 @@
118 153 'url' => Yii::t('app', 'url'),
119 154 'status' => Yii::t('app', 'status'),
120 155 'sort' => Yii::t('app', 'sort'),
  156 + 'end_at' => Yii::t('app', 'ะขะฐะนะผะตั€ ะดะพ'),
121 157 ];
122 158 }
123 159  
... ...
views/slider-image/_form.php
... ... @@ -9,7 +9,7 @@
9 9 use yii\helpers\Html;
10 10 use yii\web\View;
11 11 use yii\widgets\ActiveForm;
12   -
  12 +use kartik\date\DatePicker;
13 13 /**
14 14 * @var View $this
15 15 * @var SliderImage $model
... ... @@ -44,7 +44,13 @@
44 44 'showUpload' => false,
45 45 ],
46 46 ]); ?>
47   -
  47 + <?= $form->field($model, 'end_at')
  48 + ->widget(DatePicker::className(), [
  49 + 'pluginOptions' => [
  50 + 'todayHighlight' => true,
  51 + 'format' => 'yyyy-mm-dd',
  52 + ]]) ?>
  53 +
48 54 <?= $form->field($model, 'url')
49 55 ->textInput([ 'maxlength' => true ]) ?>
50 56  
... ...
views/slider/_form.php
... ... @@ -22,15 +22,7 @@
22 22  
23 23 <?= $form->field($model, 'title')
24 24 ->textInput([ 'maxlength' => true ]) ?>
25   -
26   -
27   - <?= $form->field($model, 'width')
28   - ->textInput([ 'maxlength' => true ]) ?>
29   -
30   - <?= $form->field($model, 'height')
31   - ->textInput([ 'maxlength' => true ]) ?>
32   -
33   -
  25 +
34 26 <?= $form->field($model, 'status')
35 27 ->widget(
36 28 Select2::className(),
... ...
widgets/Slider.php deleted
1   -<?php
2   -namespace frontend\widgets;
3   -
4   -use yii\base\Widget;
5   -
6   -class Slider extends Widget
7   -{
8   - public $title;
9   -
10   - public function init(){
11   -
12   - parent::init();
13   -
14   - }
15   -
16   - public function run()
17   - {
18   -
19   -
20   - $slider = \artweb\artbox\design\models\Slider::find()->where([\artweb\artbox\design\models\Slider::tableName().'.title'=>$this->title])->joinWith("sliderImage")->one();
21   - if($slider instanceof \artweb\artbox\design\models\Slider){
22   - return $this->render('slider',[
23   - 'slider'=>$slider,
24   - 'title'=>$this->title
25   - ]);
26   -
27   - }
28   -
29   -
30   - }
31   -
32   -}
widgets/views/slider.php deleted
1   -<?php
2   - /* @var $slider Slider */
3   - use artweb\artbox\components\artboximage\ArtboxImageHelper;
4   - use artweb\artbox\design\models\Slider;
5   - use yii\helpers\Html;
6   - use yii\web\View;
7   -
8   -?>
9   -
10   -
11   -<div id="<?= $title ?>" class="owl-carousel owl-theme">
12   - <?php if ($slider instanceof Slider) {
13   - foreach ($slider->sliderImage as $image):
14   -
15   - ?>
16   - <div class="item">
17   - <?php
18   - if (!empty( $image->end_at ) && strtotime($image->end_at) > strtotime(date("Y-m-d"))) {
19   - ?>
20   - <div class="clock_centered">
21   - <div class="clock_style clock_<?= $image->primaryKey ?>"></div>
22   - </div>
23   - <?php $js = "var clock;
24   - clock = new FlipClock($('.clock_" . $image->primaryKey . "'), {
25   - clockFace: 'DailyCounter',
26   - language: 'ru',
27   - classes: {
28   - active: 'flip-clock-active',
29   - before: 'flip-clock-before',
30   - divider: 'flip-clock-divider',
31   - dot: 'flip-clock-dot',
32   - label: 'flip-clock-label',
33   - flip: 'flip',
34   - play: 'play',
35   - wrapper: 'flip-clock-wrapper'
36   - },
37   - });
38   -
39   - clock.setTime(" . ( strtotime($image->end_at) - strtotime(date('Y-m-d H:i:s')) ) . ");
40   - clock.setCountdown(true);
41   - clock.start();";
42   - $this->registerJs($js, View::POS_LOAD) ?>
43   -
44   -
45   - <?php
46   - } ?>
47   - <?= Html::a(Html::img(ArtboxImageHelper::getImageSrc($image->imageUrl, 'slider')), $image->url) ?>
48   - </div>
49   -
50   -
51   - <?php endforeach;
52   - }
53   - ?>
54   -</div>
55   -<?php
56   - $dur = $slider->duration ? $slider->duration : 5000;
57   - $speed = $slider->speed ? $slider->speed : 500;
58   - $js = " $(\"#$title\").owlCarousel({
59   - navigation : true, // Show next and prev buttons
60   - slideSpeed : 500,
61   - autoplayTimeout:$dur,
62   - paginationSpeed : $speed,
63   - singleItem:true,
64   - autoPlay:true
65   -
66   - });
67   - var owl = $(\"#$title\");
68   - $('#next_slide').click(function() {
69   - owl.trigger('owl.next');
70   - })
71   - $('#prev_slide').click(function() {
72   - owl.trigger('owl.prev');
73   - })
74   - ";
75   -
76   - $this->registerJs($js, View::POS_READY);
77   -
78   -?>