|
1
|
|
|
<?php |
|
2
|
|
|
/** |
|
3
|
|
|
* Created by PhpStorm. |
|
4
|
|
|
* User: myslyvyi |
|
5
|
|
|
* Date: 05.01.2016 |
|
6
|
|
|
* Time: 15:25 |
|
7
|
|
|
*/ |
|
8
|
|
|
namespace samsoncms\api; |
|
9
|
|
|
|
|
10
|
|
|
use samson\cms\CMSGallery; |
|
11
|
|
|
use samsoncms\api\MaterialField; |
|
12
|
|
|
|
|
13
|
|
|
/*** |
|
14
|
|
|
* Gallery additional field for material. |
|
15
|
|
|
* This class enables getting all information about additional fields gallery for specific material. |
|
16
|
|
|
*/ |
|
17
|
|
|
class Gallery |
|
18
|
|
|
{ |
|
19
|
|
|
/** @var integer materialFieldId Table materialField identifier */ |
|
20
|
|
|
protected $materialFieldId = null; |
|
21
|
|
|
|
|
22
|
|
|
/** @var QueryInterface Database query interface */ |
|
23
|
|
|
protected $query; |
|
24
|
|
|
|
|
25
|
|
|
/** |
|
26
|
|
|
* Constructor Gallery. |
|
27
|
|
|
* This constructor finds identifier additional field gallery from database record its material and field identifiers. |
|
28
|
|
|
* |
|
29
|
|
|
* @param QueryInterface $query Database query interface |
|
30
|
|
|
* @param integer $materialId material identifier |
|
31
|
|
|
* @param integer $fieldId field identifier |
|
32
|
|
|
*/ |
|
33
|
|
|
public function __construct(QueryInterface $query, $materialId, $fieldId) |
|
34
|
|
|
{ |
|
35
|
|
|
/** @var object $materialField additional field value database record*/ |
|
36
|
|
|
$materialField = null; |
|
37
|
|
|
|
|
38
|
|
|
//set query interface |
|
39
|
|
|
$this->query = $query; |
|
40
|
|
|
|
|
41
|
|
|
// Checking params by type |
|
42
|
|
|
if (is_int($materialId) && is_int($fieldId)) { |
|
43
|
|
|
//Find additional field value database record by its material and field identifiers. |
|
44
|
|
|
if (MaterialField::byFieldIDAndMaterialID($query, $materialId, $fieldId, $materialField)) { |
|
45
|
|
|
//Getting first record |
|
46
|
|
|
$materialField = array_shift($materialField); |
|
47
|
|
|
//Set materialFieldId |
|
48
|
|
|
$this->materialFieldId = $materialField->id; |
|
49
|
|
|
} |
|
50
|
|
|
} |
|
51
|
|
|
} |
|
52
|
|
|
|
|
53
|
|
|
/** |
|
54
|
|
|
* Check on empty gallery. |
|
55
|
|
|
* |
|
56
|
|
|
* @return boolean |
|
57
|
|
|
**/ |
|
58
|
|
|
public function hasImages() |
|
59
|
|
|
{ |
|
60
|
|
|
return (isset($this->materialFieldId)); |
|
61
|
|
|
} |
|
62
|
|
|
|
|
63
|
|
|
/** |
|
64
|
|
|
* Get collection of images for material by gallery additional field selector. If none is passed |
|
65
|
|
|
* all images from gallery table would be returned empty array. |
|
66
|
|
|
* |
|
67
|
|
|
* @return array |
|
68
|
|
|
*/ |
|
69
|
|
|
public function getImages() |
|
70
|
|
|
{ |
|
71
|
|
|
/** @var $images[] Get material images for this gallery */ |
|
72
|
|
|
$images = array(); |
|
73
|
|
|
|
|
74
|
|
|
if ($this->hasImages()) { |
|
75
|
|
|
//Get All images for materialFieldId |
|
76
|
|
|
$images = $this->query |
|
77
|
|
|
->entity(CMS::MATERIAL_IMAGES_RELATION_ENTITY) |
|
78
|
|
|
->cond(Field::F_DELETION, 1) |
|
79
|
|
|
->where(MaterialField::F_PRIMARY, $this->materialFieldId) |
|
80
|
|
|
->exec(); |
|
81
|
|
|
} |
|
82
|
|
|
|
|
83
|
|
|
return $images; |
|
84
|
|
|
} |
|
85
|
|
|
} |