@@ 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 | } |
@@ 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 | } |