4
4
5
5
use Pimcore \Model \Element ;
6
6
use Pimcore \Model \DataObject ;
7
+ use Pimcore \Model \DataObject \ClassDefinition \Data \Extension ;
8
+ use Pimcore \Model \DataObject \ClassDefinition \Data \Relations \AbstractRelations ;
9
+ use MembersBundle \Pimcore \DataObject \ClassDefinition \Data \QueryResourcePersistenceAwareInterface ;
7
10
8
- class GroupMultiselect extends DataObject \ ClassDefinition \ Data \ Relations \ AbstractRelations
11
+ class GroupMultiselect extends AbstractRelations implements QueryResourcePersistenceAwareInterface
9
12
{
13
+ use Extension \QueryColumnType;
14
+
10
15
/**
11
16
* Static type of this element.
12
17
*
13
18
* @var string
14
19
*/
15
20
public $ fieldtype = 'membersGroupMultiselect ' ;
16
21
22
+ /**
23
+ * Type for the column to query
24
+ *
25
+ * @var string
26
+ */
27
+ public $ queryColumnType = 'text ' ;
28
+
29
+ /**
30
+ * Type for the generated phpdoc
31
+ *
32
+ * @var string
33
+ */
34
+ public $ phpdocType = 'array ' ;
35
+
17
36
/**
18
37
* @var bool
19
38
*/
20
39
public $ relationType = true ;
21
40
41
+ /**
42
+ * {@inheritdoc}
43
+ */
44
+ public function getQueryColumnType ()
45
+ {
46
+ return 'text ' ;
47
+ }
48
+
22
49
/**
23
50
* @param string $data
24
51
* @param null $object
@@ -49,6 +76,7 @@ public function getDataForEditmode($data, $object = null, $params = [])
49
76
* @param array $data
50
77
* @param null|DataObject\AbstractObject $object
51
78
* @param mixed $params
79
+ *
52
80
* @return array
53
81
*/
54
82
public function getDataFromEditmode ($ data , $ object = null , $ params = [])
@@ -75,40 +103,7 @@ public function getDataFromEditmode($data, $object = null, $params = [])
75
103
* @param $data
76
104
* @param null $object
77
105
* @param array $params
78
- * @return array|null
79
- */
80
- public function getDataForResource ($ data , $ object = null , $ params = [])
81
- {
82
- $ return = [];
83
-
84
- if (is_array ($ data ) && count ($ data ) > 0 ) {
85
- $ counter = 1 ;
86
- foreach ($ data as $ group ) {
87
- $ return [] = [
88
- 'src_id ' => $ object ->getId (),
89
- 'dest_id ' => $ group ->getId (),
90
- 'type ' => 'object ' ,
91
- 'fieldname ' => $ this ->getName (),
92
- 'index ' => $ counter
93
- ];
94
-
95
- $ counter ++;
96
- }
97
-
98
- return $ return ;
99
- } elseif (is_array ($ data ) and count ($ data ) === 0 ) {
100
- //give empty array if data was not null
101
- return [];
102
- } else {
103
- //return null if data was null - this indicates data was not loaded
104
- return null ;
105
- }
106
- }
107
-
108
- /**
109
- * @param $data
110
- * @param null $object
111
- * @param array $params
106
+ *
112
107
* @return null|string
113
108
* @throws \Exception
114
109
*/
@@ -140,6 +135,7 @@ public function getDataForQueryResource($data, $object = null, $params = [])
140
135
/**
141
136
* @param $object
142
137
* @param array $params
138
+ *
143
139
* @return array|mixed|null
144
140
*/
145
141
public function preGetData ($ object , $ params = [])
@@ -158,6 +154,7 @@ public function preGetData($object, $params = [])
158
154
* @param array $data
159
155
* @param null $object
160
156
* @param array $params
157
+ *
161
158
* @return array
162
159
*/
163
160
public function getDataFromResource ($ data = [], $ object = null , $ params = [])
@@ -182,6 +179,7 @@ public function getDataFromResource($data = [], $object = null, $params = [])
182
179
* @param array $data
183
180
* @param null $object
184
181
* @param array $params
182
+ *
185
183
* @return array
186
184
*/
187
185
public function loadData ($ data , $ object = null , $ params = [])
@@ -193,11 +191,11 @@ public function loadData($data, $object = null, $params = [])
193
191
* @param array $data
194
192
* @param null $object
195
193
* @param array $params
194
+ *
196
195
* @return array
197
196
*/
198
197
public function prepareDataForPersistence ($ data , $ object = null , $ params = [])
199
198
{
200
199
return $ this ->getDataFromResource ($ data , $ object , $ params );
201
200
}
202
-
203
201
}
0 commit comments