Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 79
0.00% covered (danger)
0.00%
0 / 6
CRAP
0.00% covered (danger)
0.00%
0 / 1
AvailableSlides
0.00% covered (danger)
0.00%
0 / 79
0.00% covered (danger)
0.00%
0 / 6
342
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 getAvailableSlides
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 getCorpSlides
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 1
30
 getStoreSlides
0.00% covered (danger)
0.00%
0 / 22
0.00% covered (danger)
0.00%
0 / 1
20
 getHipboneSlides
0.00% covered (danger)
0.00%
0 / 20
0.00% covered (danger)
0.00%
0 / 1
20
 getThumbFileName
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2namespace BuyerKiosk\DigitalSign;
3
4class AvailableSlides {
5    private $store;
6    private $global_db;
7
8
9    public function __construct(\Store $store) {
10        global $db_name;
11        $this->store = $store;
12        $this->global_db = dbConnectByName($db_name);
13    }
14
15    public function getAvailableSlides() {
16        $corpSlides = $this->getCorpSlides();
17        $storeSlides = $this->getStoreSlides();
18        $hbSlides = $this->getHipboneSlides();
19        $slides = array("corpSlides" => $corpSlides, "storeSlides" => $storeSlides, "hbSlides" => $hbSlides);
20        return $slides;
21    }
22
23    private function getCorpSlides() {
24
25        $storeType = $this->store->getStoreType();
26        $selectQuery = $this->global_db->prepare("SELECT * FROM corpSlides WHERE enabled = 1 AND storeType = " . $storeType . " ORDER BY dateAdded DESC");
27        $corpSlidesArray = array();
28        if($selectQuery->execute() === false) {
29            error_log("Error getting corp slides: " . print_r($selectQuery->errorInfo(), true));
30        } else {
31            while ($slides = $selectQuery->fetch(\PDO::FETCH_ASSOC)) {
32                $dateAdded = new \DateTime($slides['dateAdded']);
33                $dateAdded->setTimezone(new \DateTimeZone($this->store->getTimeZone()));
34                $slide = array(
35                    'id' => $slides['id'],  // Raw numeric ID for tag management
36                    'slideID' => "corp_".$slides['id'],
37                    'type' => $slides['type'],
38                    'slideName' => $slides['slideName'],
39                    'fileName' => $slides['fileName'],
40                    'thumbFileName' => $this->getThumbFileName($slides['type'], $slides['fileName']),
41                    'dateAdded' => $dateAdded->format('F j, Y'),
42                    'plays' => $slides['plays']
43                );
44                if($slides['type'] == 0) {
45                    $corpSlidesArray["images"][] = $slide;
46                } else if($slides['type'] == 1) {
47                    $corpSlidesArray["videos"][] = $slide;
48                }
49            }
50        }
51
52        return $corpSlidesArray;
53    }
54
55    private function getStoreSlides() {
56        $db = dbConnectByName($this->store->getDbName());
57        $selectQuery = $db->query("SELECT * FROM dsSlides WHERE enabled = 1 ORDER BY dateAdded DESC");
58        $slidesArray = array();
59        while ($slides = $selectQuery->fetch(\PDO::FETCH_ASSOC)) {
60            $dateAdded = new \DateTime($slides['dateAdded']);
61            $dateAdded->setTimezone(new \DateTimeZone($this->store->getTimeZone()));
62
63            $slide = array(
64                'id' => $slides['id'],  // Raw numeric ID for tag management
65                'slideID' => "store_".$slides['id'],
66                'type' => $slides['type'],
67                'slideName' => $slides['slideName'],
68                'fileName' => $slides['fileName'],
69                'thumbFileName' => $this->getThumbFileName($slides['type'], $slides['fileName']),
70                'dateAdded' => $dateAdded->format('F j, Y'),
71                'plays' => $slides['plays'],
72                'videoDuration' => $slides['videoDuration']
73
74            );
75            if($slides['type'] == 0) {
76                $slidesArray["images"][] = $slide;
77            } else if($slides['type'] == 1) {
78                $slidesArray["videos"][] = $slide;
79            }
80
81        }
82        return $slidesArray;
83    }
84
85    private function getHipboneSlides() {
86        $storeType = $this->store->getStoreType();
87        $selectQuery = $this->global_db->query("SELECT * FROM hbSlides WHERE enabled = 1 AND storeType = " . $storeType . " ORDER BY dateAdded DESC");
88        $hbSlidesArray = array();
89        while ($slides = $selectQuery->fetch(\PDO::FETCH_ASSOC)) {
90            $dateAdded = new \DateTime($slides['dateAdded']);
91            $dateAdded->setTimezone(new \DateTimeZone($this->store->getTimeZone()));
92            $slide = array(
93                'id' => $slides['id'],  // Raw numeric ID for tag management
94                'slideID' => "hb_".$slides['id'],
95                'type' => $slides['type'],
96                'slideName' => $slides['slideName'],
97                'fileName' => $slides['fileName'],
98                'thumbFileName' => $this->getThumbFileName($slides['type'], $slides['fileName']),
99                'dateAdded' => $dateAdded->format('F j, Y'),
100            );
101            if($slides['type'] == 0) {
102                $hbSlidesArray["images"][] = $slide;
103            } else if($slides['type'] == 1) {
104                $hbSlidesArray["videos"][] = $slide;
105            }
106        }
107        return $hbSlidesArray;
108
109    }
110    private function getThumbFileName($type, $fileName) {
111        if($type == 0) {
112            return $fileName;
113        } else if($type == 1) {
114            $fileName = $fileName . ".jpg";
115            return $fileName;
116        }
117        return $fileName;
118    }
119}