Code Duplication    Length = 116-116 lines in 2 locations

Gallery.php 1 location

@@ 19-134 (lines=116) @@
16
 *  This class enables getting all information about additional fields gallery for specific material.
17
 *  @author [email protected]
18
 */
19
class Gallery
20
{
21
    /** @var integer materialFieldId Table materialField identifier */
22
    protected $materialFieldId = null;
23
24
    /** @var QueryInterface Database query interface */
25
    protected $query;
26
27
    /**
28
     * Constructor Gallery.
29
     * This constructor finds identifier additional field gallery from database record its material and field identifiers.
30
     *
31
     * @param QueryInterface $query Database query interface
32
     * @param integer $materialId material identifier
33
     * @param integer $fieldId field identifier
34
     */
35
    public function __construct(QueryInterface $query, $materialId, $fieldId)
36
    {
37
        /** @var object $materialField additional field value database record*/
38
        $materialField = null;
39
40
        //set query interface
41
        $this->query = $query;
42
43
        // Checking params by type
44
        if (is_int($materialId) && is_int($fieldId)) {
45
            //Find additional field value database record by its material and field identifiers.
46
            if (MaterialField::byFieldIDAndMaterialID($query, $materialId, $fieldId, $materialField)) {
47
                //Getting first record
48
                $materialField = array_shift($materialField);
49
                //Set materialFieldId
50
                $this->materialFieldId = $materialField->id;
51
            }
52
        }
53
    }
54
55
    /**
56
     * Check on empty gallery. If materialFieldId = null and quantity images not more 1 then material not has images.
57
     *
58
     * @return boolean
59
     **/
60
    public function hasImages()
61
    {
62
        /**@var $hasImages */
63
        $hasImages = false;
64
65
        if (isset($this->materialFieldId)) {
66
            // Getting quantity images, if quantity more 0 then material has images
67
            if ($this->query
68
            ->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY)
69
            ->cond(Field::F_DELETION, 1)
70
            ->cond(MaterialField::F_PRIMARY, $this->materialFieldId)
71
            ->count() > 0) {
72
                $hasImages = true;
73
            }
74
        }
75
        return $hasImages;
76
    }
77
78
    /**
79
     * Getting quantity images in additional field gallery
80
     *
81
     * @return integer $count
82
     */
83
    public function getCount()
84
    {
85
        /**@var integer $count quantity images in additional field gallery*/
86
        $count = 0;
87
88
        if ($this->hasImages()) {
89
            // Getting quantity images for gallery
90
            $count = $this->query
91
                ->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY)
92
                ->cond(Field::F_DELETION, 1)
93
                ->cond(MaterialField::F_PRIMARY, $this->materialFieldId)
94
                ->count();
95
        }
96
97
        return $count;
98
    }
99
100
    /**
101
     * Get collection of images for material by gallery additional field selector. If none is passed
102
     * all images from gallery table would be returned empty array.
103
     *
104
     * @param integer $currentPage current page with images. Min value = 1
105
     * @param integer $countView quantity view by page
106
     * @return array
107
     */
108
    public function getImages($currentPage = null, $countView = 20)
109
    {
110
        /** @var $images[] Get material images for this gallery */
111
        $images = array();
112
113
        /** @var QueryInterface $query Database query interface*/
114
        $query = null;
115
116
        if ($this->hasImages()) {
117
            // Select all images in DB by materialFieldId
118
            $query = $this->query
119
                ->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY)
120
                ->cond(Field::F_DELETION, 1)
121
                ->cond(MaterialField::F_PRIMARY, $this->materialFieldId);
122
123
            if (isset($currentPage) && $currentPage > 0) {
124
                //Set limit for query
125
                $query->limit(--$currentPage * $countView, $countView);
126
            }
127
128
            // Execute query
129
            $images = $query->exec();
130
        }
131
132
        return $images;
133
    }
134
}

src/Gallery.php 1 location

@@ 19-134 (lines=116) @@
16
 *  This class enables getting all information about additional fields gallery for specific material.
17
 *  @author [email protected]
18
 */
19
class Gallery
20
{
21
    /** @var integer materialFieldId Table materialField identifier */
22
    protected $materialFieldId = null;
23
24
    /** @var QueryInterface Database query interface */
25
    protected $query;
26
27
    /**
28
     * Constructor Gallery.
29
     * This constructor finds identifier additional field gallery from database record its material and field identifiers.
30
     *
31
     * @param QueryInterface $query Database query interface
32
     * @param integer $materialId material identifier
33
     * @param integer $fieldId field identifier
34
     */
35
    public function __construct(QueryInterface $query, $materialId, $fieldId)
36
    {
37
        /** @var object $materialField additional field value database record*/
38
        $materialField = null;
39
40
        //set query interface
41
        $this->query = $query;
42
43
        // Checking params by type
44
        if (is_int($materialId) && is_int($fieldId)) {
45
            //Find additional field value database record by its material and field identifiers.
46
            if (MaterialField::byFieldIDAndMaterialID($query, $materialId, $fieldId, $materialField)) {
47
                //Getting first record
48
                $materialField = array_shift($materialField);
49
                //Set materialFieldId
50
                $this->materialFieldId = $materialField->id;
51
            }
52
        }
53
    }
54
55
    /**
56
     * Check on empty gallery. If materialFieldId = null and quantity images not more 1 then material not has images.
57
     *
58
     * @return boolean
59
     **/
60
    public function hasImages()
61
    {
62
        /**@var $hasImages */
63
        $hasImages = false;
64
65
        if (isset($this->materialFieldId)) {
66
            // Getting quantity images, if quantity more 0 then material has images
67
            if ($this->query
68
            ->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY)
69
            ->cond(Field::F_DELETION, 1)
70
            ->cond(MaterialField::F_PRIMARY, $this->materialFieldId)
71
            ->count() > 0) {
72
                $hasImages = true;
73
            }
74
        }
75
        return $hasImages;
76
    }
77
78
    /**
79
     * Getting quantity images in additional field gallery
80
     *
81
     * @return integer $count
82
     */
83
    public function getCount()
84
    {
85
        /**@var integer $count quantity images in additional field gallery*/
86
        $count = 0;
87
88
        if ($this->hasImages()) {
89
            // Getting quantity images for gallery
90
            $count = $this->query
91
                ->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY)
92
                ->cond(Field::F_DELETION, 1)
93
                ->cond(MaterialField::F_PRIMARY, $this->materialFieldId)
94
                ->count();
95
        }
96
97
        return $count;
98
    }
99
100
    /**
101
     * Get collection of images for material by gallery additional field selector. If none is passed
102
     * all images from gallery table would be returned empty array.
103
     *
104
     * @param integer $currentPage current page with images. Min value = 1
105
     * @param integer $countView quantity view by page
106
     * @return array
107
     */
108
    public function getImages($currentPage = null, $countView = 20)
109
    {
110
        /** @var $images[] Get material images for this gallery */
111
        $images = array();
112
113
        /** @var QueryInterface $query Database query interface*/
114
        $query = null;
115
116
        if ($this->hasImages()) {
117
            // Select all images in DB by materialFieldId
118
            $query = $this->query
119
                ->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY)
120
                ->cond(Field::F_DELETION, 1)
121
                ->cond(MaterialField::F_PRIMARY, $this->materialFieldId);
122
123
            if (isset($currentPage) && $currentPage > 0) {
124
                //Set limit for query
125
                $query->limit(--$currentPage * $countView, $countView);
126
            }
127
128
            // Execute query
129
            $images = $query->exec();
130
        }
131
132
        return $images;
133
    }
134
}