Completed
Push — master ( a97add...702095 )
by Aimeos
02:48
created
lib/custom/config/mshop/customer/manager/ezpublish.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -6,14 +6,14 @@  discard block
 block discarded – undo
6 6
  */
7 7
 
8 8
 return array(
9
-	'delete' => array(
10
-		'ansi' => '
9
+    'delete' => array(
10
+        'ansi' => '
11 11
 			DELETE FROM "ezuser"
12 12
 			WHERE :cond
13 13
 		',
14
-	),
15
-	'update' => array(
16
-		'ansi' => '
14
+    ),
15
+    'update' => array(
16
+        'ansi' => '
17 17
 			UPDATE "ezuser"
18 18
 			SET "login_normalized" = ?, "login" = ?, "company" = ?, "vatid" = ?,
19 19
 				"salutation" = ?, "title" = ?, "firstname" = ?, "lastname" = ?,
@@ -24,9 +24,9 @@  discard block
 block discarded – undo
24 24
 				"mtime" = ?, "editor" = ?, "ctime" = ?
25 25
 			WHERE "contentobject_id" = ?
26 26
 		',
27
-	),
28
-	'search' => array(
29
-		'ansi' => '
27
+    ),
28
+    'search' => array(
29
+        'ansi' => '
30 30
 			SELECT DISTINCT ezu."contentobject_id" AS "customer.id",
31 31
 				ezu."login_normalized" as "customer.code", ezu."login" as "customer.label",
32 32
 				ezu."company" AS "customer.company", ezu."vatid" AS "customer.vatid",
@@ -48,9 +48,9 @@  discard block
 block discarded – undo
48 48
 			/*-orderby*/ ORDER BY :order /*orderby-*/
49 49
 			LIMIT :size OFFSET :start
50 50
 		',
51
-	),
52
-	'count' => array(
53
-		'ansi' => '
51
+    ),
52
+    'count' => array(
53
+        'ansi' => '
54 54
 			SELECT COUNT(*) AS "count"
55 55
 			FROM (
56 56
 				SELECT DISTINCT ezu."contentobject_id"
@@ -60,5 +60,5 @@  discard block
 block discarded – undo
60 60
 				LIMIT 10000 OFFSET 0
61 61
 			) AS list
62 62
 		',
63
-	),
63
+    ),
64 64
 );
Please login to merge, or discard this patch.
lib/custom/src/MShop/Common/Item/Helper/Password/Ezpublish.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -19,15 +19,15 @@
 block discarded – undo
19 19
  */
20 20
 class Ezpublish implements \Aimeos\MShop\Common\Item\Helper\Password\Iface
21 21
 {
22
-	/**
23
-	 * Returns the hashed password
24
-	 *
25
-	 * @param string $password Clear text password string
26
-	 * @param string|null $salt Password salt
27
-	 * @return string Hashed password
28
-	 */
29
-	public function encode( $password, $salt = null )
30
-	{
31
-		return md5( $salt . "\n" . $password );
32
-	}
22
+    /**
23
+     * Returns the hashed password
24
+     *
25
+     * @param string $password Clear text password string
26
+     * @param string|null $salt Password salt
27
+     * @return string Hashed password
28
+     */
29
+    public function encode( $password, $salt = null )
30
+    {
31
+        return md5( $salt . "\n" . $password );
32
+    }
33 33
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Item/Ezpublish.php 1 patch
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -19,62 +19,62 @@
 block discarded – undo
19 19
  */
20 20
 class Ezpublish extends Standard implements Iface
21 21
 {
22
-	private $password = '';
23
-	private $helper;
24
-
25
-
26
-	/**
27
-	 * Initializes the customer item object
28
-	 *
29
-	 * @param \Aimeos\MShop\Common\Item\Address\Iface $address Payment address item object
30
-	 * @param array $values List of attributes that belong to the customer item
31
-	 * @param \Aimeos\MShop\Common\Lists\Item\Iface[] $listItems List of list items
32
-	 * @param \Aimeos\MShop\Common\Item\Iface[] $refItems List of referenced items
33
-	 * @param string $salt Password salt (optional)
34
-	 * @param \Aimeos\MShop\Common\Item\Helper\Password\Iface|null $helper Password encryption helper object
35
-	 */
36
-	public function __construct( \Aimeos\MShop\Common\Item\Address\Iface $address, array $values = array(),
37
-		array $listItems = array(), array $refItems = array(), $salt = '',
38
-		\Aimeos\MShop\Common\Item\Helper\Password\Iface $helper = null )
39
-	{
40
-		parent::__construct( $address, $values, $listItems, $refItems );
41
-
42
-		if( isset( $values['customer.password'] ) ) {
43
-			$this->password = $values['customer.password'];
44
-		}
45
-
46
-		$this->helper = $helper;
47
-	}
48
-
49
-
50
-	/**
51
-	 * Returns the password of the customer item
52
-	 *
53
-	 * @return string
54
-	 */
55
-	public function getPassword()
56
-	{
57
-		return $this->password;
58
-	}
59
-
60
-
61
-	/**
62
-	 * Sets the password of the customer item
63
-	 *
64
-	 * @param string $value password of the customer item
65
-	 * @return \Aimeos\MShop\Customer\Item\Iface Customer item for chaining method calls
66
-	 */
67
-	public function setPassword( $value )
68
-	{
69
-		if( $value == $this->getPassword() ) { return $this; }
70
-
71
-		if( $this->helper !== null ) {
72
-			$value = $this->helper->encode( $value, $this->getCode() );
73
-		}
74
-
75
-		$this->password = (string) $value;
76
-		$this->setModified();
77
-
78
-		return $this;
79
-	}
22
+    private $password = '';
23
+    private $helper;
24
+
25
+
26
+    /**
27
+     * Initializes the customer item object
28
+     *
29
+     * @param \Aimeos\MShop\Common\Item\Address\Iface $address Payment address item object
30
+     * @param array $values List of attributes that belong to the customer item
31
+     * @param \Aimeos\MShop\Common\Lists\Item\Iface[] $listItems List of list items
32
+     * @param \Aimeos\MShop\Common\Item\Iface[] $refItems List of referenced items
33
+     * @param string $salt Password salt (optional)
34
+     * @param \Aimeos\MShop\Common\Item\Helper\Password\Iface|null $helper Password encryption helper object
35
+     */
36
+    public function __construct( \Aimeos\MShop\Common\Item\Address\Iface $address, array $values = array(),
37
+        array $listItems = array(), array $refItems = array(), $salt = '',
38
+        \Aimeos\MShop\Common\Item\Helper\Password\Iface $helper = null )
39
+    {
40
+        parent::__construct( $address, $values, $listItems, $refItems );
41
+
42
+        if( isset( $values['customer.password'] ) ) {
43
+            $this->password = $values['customer.password'];
44
+        }
45
+
46
+        $this->helper = $helper;
47
+    }
48
+
49
+
50
+    /**
51
+     * Returns the password of the customer item
52
+     *
53
+     * @return string
54
+     */
55
+    public function getPassword()
56
+    {
57
+        return $this->password;
58
+    }
59
+
60
+
61
+    /**
62
+     * Sets the password of the customer item
63
+     *
64
+     * @param string $value password of the customer item
65
+     * @return \Aimeos\MShop\Customer\Item\Iface Customer item for chaining method calls
66
+     */
67
+    public function setPassword( $value )
68
+    {
69
+        if( $value == $this->getPassword() ) { return $this; }
70
+
71
+        if( $this->helper !== null ) {
72
+            $value = $this->helper->encode( $value, $this->getCode() );
73
+        }
74
+
75
+        $this->password = (string) $value;
76
+        $this->setModified();
77
+
78
+        return $this;
79
+    }
80 80
 }
Please login to merge, or discard this patch.
lib/custom/src/MShop/Customer/Manager/Ezpublish.php 1 patch
Indentation   +402 added lines, -402 removed lines patch added patch discarded remove patch
@@ -18,407 +18,407 @@
 block discarded – undo
18 18
  * @subpackage Customer
19 19
  */
20 20
 class Ezpublish
21
-	extends \Aimeos\MShop\Customer\Manager\Standard
21
+    extends \Aimeos\MShop\Customer\Manager\Standard
22 22
 {
23
-	private $searchConfig = array(
24
-		'customer.id' => array(
25
-			'label' => 'Customer ID',
26
-			'code' => 'customer.id',
27
-			'internalcode' => 'ezu."contentobject_id"',
28
-			'type' => 'integer',
29
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
30
-		),
31
-		// customer.siteid is not available
32
-		'customer.label' => array(
33
-			'label' => 'Customer label',
34
-			'code' => 'customer.label',
35
-			'internalcode' => 'ezu."login"',
36
-			'type' => 'string',
37
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
38
-		),
39
-		'customer.code' => array(
40
-			'label' => 'Customer username',
41
-			'code' => 'customer.code',
42
-			'internalcode' => 'ezu."login_normalized"',
43
-			'type' => 'string',
44
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
45
-		),
46
-		'customer.salutation' => array(
47
-			'label' => 'Customer salutation',
48
-			'code' => 'customer.salutation',
49
-			'internalcode' => 'ezu."salutation"',
50
-			'type' => 'string',
51
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
52
-		),
53
-		'customer.company'=> array(
54
-			'label' => 'Customer company',
55
-			'code' => 'customer.company',
56
-			'internalcode' => 'ezu."company"',
57
-			'type' => 'string',
58
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
59
-		),
60
-		'customer.vatid'=> array(
61
-			'label' => 'Customer VAT ID',
62
-			'code' => 'customer.vatid',
63
-			'internalcode' => 'ezu."vatid"',
64
-			'type' => 'string',
65
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
66
-		),
67
-		'customer.title' => array(
68
-			'label' => 'Customer title',
69
-			'code' => 'customer.title',
70
-			'internalcode' => 'ezu."title"',
71
-			'type' => 'string',
72
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
73
-		),
74
-		'customer.firstname' => array(
75
-			'label' => 'Customer firstname',
76
-			'code' => 'customer.firstname',
77
-			'internalcode' => 'ezu."firstname"',
78
-			'type' => 'string',
79
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
80
-		),
81
-		'customer.lastname' => array(
82
-			'label' => 'Customer lastname',
83
-			'code' => 'customer.lastname',
84
-			'internalcode' => 'ezu."lastname"',
85
-			'type' => 'string',
86
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
87
-		),
88
-		'customer.address1' => array(
89
-			'label' => 'Customer address part one',
90
-			'code' => 'customer.address1',
91
-			'internalcode' => 'ezu."address1"',
92
-			'type' => 'string',
93
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
94
-		),
95
-		'customer.address2' => array(
96
-			'label' => 'Customer address part two',
97
-			'code' => 'customer.address2',
98
-			'internalcode' => 'ezu."address2"',
99
-			'type' => 'string',
100
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
101
-		),
102
-		'customer.address3' => array(
103
-			'label' => 'Customer address part three',
104
-			'code' => 'customer.address3',
105
-			'internalcode' => 'ezu."address3"',
106
-			'type' => 'string',
107
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
108
-		),
109
-		'customer.postal' => array(
110
-			'label' => 'Customer postal',
111
-			'code' => 'customer.postal',
112
-			'internalcode' => 'ezu."postal"',
113
-			'type' => 'string',
114
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
115
-		),
116
-		'customer.city' => array(
117
-			'label' => 'Customer city',
118
-			'code' => 'customer.city',
119
-			'internalcode' => 'ezu."city"',
120
-			'type' => 'string',
121
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
122
-		),
123
-		'customer.state' => array(
124
-			'label' => 'Customer state',
125
-			'code' => 'customer.state',
126
-			'internalcode' => 'ezu."state"',
127
-			'type' => 'string',
128
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
129
-		),
130
-		'customer.languageid' => array(
131
-			'label' => 'Customer language',
132
-			'code' => 'customer.languageid',
133
-			'internalcode' => 'ezu."langid"',
134
-			'type' => 'string',
135
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
136
-		),
137
-		'customer.countryid' => array(
138
-			'label' => 'Customer country',
139
-			'code' => 'customer.countryid',
140
-			'internalcode' => 'ezu."countryid"',
141
-			'type' => 'string',
142
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
143
-		),
144
-		'customer.telephone' => array(
145
-			'label' => 'Customer telephone',
146
-			'code' => 'customer.telephone',
147
-			'internalcode' => 'ezu."telephone"',
148
-			'type' => 'string',
149
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
150
-		),
151
-		'customer.email' => array(
152
-			'label' => 'Customer email',
153
-			'code' => 'customer.email',
154
-			'internalcode' => 'ezu."email"',
155
-			'type' => 'string',
156
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
157
-		),
158
-		'customer.telefax' => array(
159
-			'label' => 'Customer telefax',
160
-			'code' => 'customer.telefax',
161
-			'internalcode' => 'ezu."telefax"',
162
-			'type' => 'string',
163
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
164
-		),
165
-		'customer.website' => array(
166
-			'label' => 'Customer website',
167
-			'code' => 'customer.website',
168
-			'internalcode' => 'ezu."website"',
169
-			'type' => 'string',
170
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
171
-		),
172
-		'customer.birthday' => array(
173
-			'label' => 'Customer birthday',
174
-			'code' => 'customer.birthday',
175
-			'internalcode' => 'ezu."birthday"',
176
-			'type' => 'string',
177
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
178
-		),
179
-		'customer.password'=> array(
180
-			'label' => 'Customer password',
181
-			'code' => 'customer.password',
182
-			'internalcode' => 'ezu."password_hash"',
183
-			'type' => 'string',
184
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
185
-		),
186
-		'customer.status'=> array(
187
-			'label' => 'Customer status',
188
-			'code' => 'customer.status',
189
-			'internalcode' => 'ezs."is_enabled"',
190
-			'type' => 'integer',
191
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
192
-		),
193
-		'customer.dateverified'=> array(
194
-			'label' => 'Customer verification date',
195
-			'code' => 'customer.dateverified',
196
-			'internalcode' => 'ezu."vdate"',
197
-			'type' => 'date',
198
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
199
-		),
200
-		'customer.ctime'=> array(
201
-			'label' => 'Customer creation time',
202
-			'code' => 'customer.ctime',
203
-			'internalcode' => 'ezu."ctime"',
204
-			'type' => 'datetime',
205
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
206
-		),
207
-		'customer.mtime'=> array(
208
-			'label' => 'Customer modification time',
209
-			'code' => 'customer.mtime',
210
-			'internalcode' => 'ezu."mtime"',
211
-			'type' => 'datetime',
212
-			'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
213
-		),
214
-		'customer.editor'=> array(
215
-			'label'=>'Customer editor',
216
-			'code'=>'customer.editor',
217
-			'internalcode' => 'ezu."editor"',
218
-			'type'=> 'string',
219
-			'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
220
-		),
221
-	);
222
-
223
-	private $addressManager;
224
-
225
-
226
-	/**
227
-	 * Removes old entries from the storage.
228
-	 *
229
-	 * @param array $siteids List of IDs for sites whose entries should be deleted
230
-	 */
231
-	public function cleanup( array $siteids )
232
-	{
233
-		$path = 'mshop/customer/manager/submanagers';
234
-		foreach( $this->getContext()->getConfig()->get( $path, array( 'address', 'lists' ) ) as $domain ) {
235
-			$this->getSubManager( $domain )->cleanup( $siteids );
236
-		}
237
-	}
238
-
239
-
240
-	/**
241
-	 * Removes multiple items specified by ids in the array.
242
-	 *
243
-	 * @param array $ids List of IDs
244
-	 */
245
-	public function deleteItems( array $ids )
246
-	{
247
-		$path = 'mshop/customer/manager/ezpublish/delete';
248
-		$this->deleteItemsBase( $ids, $path, false, 'contentobject_id' );
249
-	}
250
-
251
-
252
-	/**
253
-	 * Returns the list attributes that can be used for searching.
254
-	 *
255
-	 * @param boolean $withsub Return also attributes of sub-managers if true
256
-	 * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
257
-	 */
258
-	public function getSearchAttributes( $withsub = true )
259
-	{
260
-		$path = 'mshop/customer/manager/submanagers';
261
-
262
-		return $this->getSearchAttributesBase( $this->searchConfig, $path, array( 'address', 'lists' ), $withsub );
263
-	}
264
-
265
-
266
-	/**
267
-	 * Instantiates a new customer item object.
268
-	 *
269
-	 * @return \Aimeos\MShop\Customer\Item\Iface New customer item object
270
-	 */
271
-	public function createItem()
272
-	{
273
-		return $this->createItemBase();
274
-	}
275
-
276
-
277
-	/**
278
-	 * Saves a customer item object.
279
-	 *
280
-	 * @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
281
-	 * @param boolean $fetch True if the new ID should be returned in the item
282
-	 */
283
-	public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
284
-	{
285
-		$iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
286
-		if( !( $item instanceof $iface ) ) {
287
-			throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $iface ) );
288
-		}
289
-
290
-		if( !$item->isModified() ) { return; }
291
-
292
-		$context = $this->getContext();
293
-
294
-		$class = '\Aimeos\MShop\Context\Item\Ezpublish';
295
-		if( !is_a( $context, $class ) ) {
296
-			throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $class ) );
297
-		}
298
-
299
-		$fcn = $context->getEzUser();
300
-		$email = $item->getPaymentAddress()->getEmail();
301
-		$contentId = $fcn( $item->getId(), $item->getCode(), $email, $item->getPassword(), $item->getStatus() );
302
-		$item->setId( $contentId );
303
-
304
-		$dbm = $context->getDatabaseManager();
305
-		$dbname = $this->getResourceName();
306
-		$conn = $dbm->acquire( $dbname );
307
-
308
-		try
309
-		{
310
-			$date = date( 'Y-m-d H:i:s' );
311
-			$ctime = ( $item->getTimeCreated() ? $item->getTimeCreated() : $date );
312
-			$billingAddress = $item->getPaymentAddress();
313
-
314
-			$path = 'mshop/customer/manager/ezpublish/update';
315
-			$stmt = $this->getCachedStatement( $conn, $path );
316
-
317
-			$stmt->bind( 1, $billingAddress->getCompany() );
318
-			$stmt->bind( 2, $billingAddress->getVatID() );
319
-			$stmt->bind( 3, $billingAddress->getSalutation() );
320
-			$stmt->bind( 4, $billingAddress->getTitle() );
321
-			$stmt->bind( 5, $billingAddress->getFirstname() );
322
-			$stmt->bind( 6, $billingAddress->getLastname() );
323
-			$stmt->bind( 7, $billingAddress->getAddress1() );
324
-			$stmt->bind( 8, $billingAddress->getAddress2() );
325
-			$stmt->bind( 9, $billingAddress->getAddress3() );
326
-			$stmt->bind( 10, $billingAddress->getPostal() );
327
-			$stmt->bind( 11, $billingAddress->getCity() );
328
-			$stmt->bind( 12, $billingAddress->getState() );
329
-			$stmt->bind( 13, $billingAddress->getCountryId() );
330
-			$stmt->bind( 14, $billingAddress->getLanguageId() );
331
-			$stmt->bind( 15, $billingAddress->getTelephone() );
332
-			$stmt->bind( 16, $billingAddress->getTelefax() );
333
-			$stmt->bind( 17, $billingAddress->getWebsite() );
334
-			$stmt->bind( 18, $item->getBirthday() );
335
-			$stmt->bind( 19, $item->getDateVerified() );
336
-			$stmt->bind( 20, $date ); // Modification time
337
-			$stmt->bind( 21, $context->getEditor() );
338
-			$stmt->bind( 22, $ctime ); // Creation time
339
-			$stmt->bind( 23, $item->getId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT );
340
-
341
-			$stmt->execute()->finish();
342
-
343
-			$dbm->release( $conn, $dbname );
344
-		}
345
-		catch( \Exception $e )
346
-		{
347
-			$dbm->release( $conn, $dbname );
348
-			throw $e;
349
-		}
350
-	}
351
-
352
-
353
-	/**
354
-	 * Returns the item objects matched by the given search criteria.
355
-	 *
356
-	 * @param \Aimeos\MW\Criteria\Iface $search Search criteria object
357
-	 * @param integer &$total Number of items that are available in total
358
-	 * @return array List of items implementing \Aimeos\MShop\Customer\Item\Iface
359
-	 * @throws \Aimeos\MShop\Customer\Exception If creating items failed
360
-	 */
361
-	public function searchItems( \Aimeos\MW\Criteria\Iface $search, array $ref = array(), &$total = null )
362
-	{
363
-		$dbm = $this->getContext()->getDatabaseManager();
364
-		$dbname = $this->getResourceName();
365
-		$conn = $dbm->acquire( $dbname );
366
-		$map = array();
367
-
368
-		try
369
-		{
370
-			$level = \Aimeos\MShop\Locale\Manager\Base::SITE_ALL;
371
-			$cfgPathSearch = 'mshop/customer/manager/ezpublish/search';
372
-			$cfgPathCount = 'mshop/customer/manager/ezpublish/count';
373
-			$required = array( 'customer' );
374
-
375
-			$results = $this->searchItemsBase( $conn, $search, $cfgPathSearch, $cfgPathCount, $required, $total, $level );
376
-			while( ( $row = $results->fetch() ) !== false ) {
377
-				$map[ $row['customer.id'] ] = $row;
378
-			}
379
-
380
-			$dbm->release( $conn, $dbname );
381
-		}
382
-		catch( \Exception $e )
383
-		{
384
-			$dbm->release( $conn, $dbname  );
385
-			throw $e;
386
-		}
387
-
388
-		return $this->buildItems( $map, $ref, 'customer' );
389
-	}
390
-
391
-
392
-	/**
393
-	 * Returns a new manager for customer extensions
394
-	 *
395
-	 * @param string $manager Name of the sub manager type in lower case
396
-	 * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
397
-	 * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
398
-	 */
399
-	public function getSubManager( $manager, $name = null )
400
-	{
401
-		return $this->getSubManagerBase( 'customer', $manager, ( $name === null ? 'Ezpublish' : $name ) );
402
-	}
403
-
404
-
405
-	/**
406
-	 * Creates a new customer item.
407
-	 *
408
-	 * @param array $values List of attributes for customer item
409
-	 * @param array $listItems List items associated to the customer item
410
-	 * @param array $refItems Items referenced by the customer item via the list items
411
-	 * @return \Aimeos\MShop\Customer\Item\Iface New customer item
412
-	 */
413
-	protected function createItemBase( array $values = array(), array $listItems = array(), array $refItems = array() )
414
-	{
415
-		if( !isset( $this->addressManager ) ) {
416
-			$this->addressManager = $this->getSubManager( 'address' );
417
-		}
418
-
419
-		$helper = $this->getPasswordHelper();
420
-		$address = $this->addressManager->createItem();
421
-
422
-		return new \Aimeos\MShop\Customer\Item\Ezpublish( $address, $values, $listItems, $refItems, null, $helper );
423
-	}
23
+    private $searchConfig = array(
24
+        'customer.id' => array(
25
+            'label' => 'Customer ID',
26
+            'code' => 'customer.id',
27
+            'internalcode' => 'ezu."contentobject_id"',
28
+            'type' => 'integer',
29
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
30
+        ),
31
+        // customer.siteid is not available
32
+        'customer.label' => array(
33
+            'label' => 'Customer label',
34
+            'code' => 'customer.label',
35
+            'internalcode' => 'ezu."login"',
36
+            'type' => 'string',
37
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
38
+        ),
39
+        'customer.code' => array(
40
+            'label' => 'Customer username',
41
+            'code' => 'customer.code',
42
+            'internalcode' => 'ezu."login_normalized"',
43
+            'type' => 'string',
44
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR
45
+        ),
46
+        'customer.salutation' => array(
47
+            'label' => 'Customer salutation',
48
+            'code' => 'customer.salutation',
49
+            'internalcode' => 'ezu."salutation"',
50
+            'type' => 'string',
51
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
52
+        ),
53
+        'customer.company'=> array(
54
+            'label' => 'Customer company',
55
+            'code' => 'customer.company',
56
+            'internalcode' => 'ezu."company"',
57
+            'type' => 'string',
58
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
59
+        ),
60
+        'customer.vatid'=> array(
61
+            'label' => 'Customer VAT ID',
62
+            'code' => 'customer.vatid',
63
+            'internalcode' => 'ezu."vatid"',
64
+            'type' => 'string',
65
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
66
+        ),
67
+        'customer.title' => array(
68
+            'label' => 'Customer title',
69
+            'code' => 'customer.title',
70
+            'internalcode' => 'ezu."title"',
71
+            'type' => 'string',
72
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
73
+        ),
74
+        'customer.firstname' => array(
75
+            'label' => 'Customer firstname',
76
+            'code' => 'customer.firstname',
77
+            'internalcode' => 'ezu."firstname"',
78
+            'type' => 'string',
79
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
80
+        ),
81
+        'customer.lastname' => array(
82
+            'label' => 'Customer lastname',
83
+            'code' => 'customer.lastname',
84
+            'internalcode' => 'ezu."lastname"',
85
+            'type' => 'string',
86
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
87
+        ),
88
+        'customer.address1' => array(
89
+            'label' => 'Customer address part one',
90
+            'code' => 'customer.address1',
91
+            'internalcode' => 'ezu."address1"',
92
+            'type' => 'string',
93
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
94
+        ),
95
+        'customer.address2' => array(
96
+            'label' => 'Customer address part two',
97
+            'code' => 'customer.address2',
98
+            'internalcode' => 'ezu."address2"',
99
+            'type' => 'string',
100
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
101
+        ),
102
+        'customer.address3' => array(
103
+            'label' => 'Customer address part three',
104
+            'code' => 'customer.address3',
105
+            'internalcode' => 'ezu."address3"',
106
+            'type' => 'string',
107
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
108
+        ),
109
+        'customer.postal' => array(
110
+            'label' => 'Customer postal',
111
+            'code' => 'customer.postal',
112
+            'internalcode' => 'ezu."postal"',
113
+            'type' => 'string',
114
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
115
+        ),
116
+        'customer.city' => array(
117
+            'label' => 'Customer city',
118
+            'code' => 'customer.city',
119
+            'internalcode' => 'ezu."city"',
120
+            'type' => 'string',
121
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
122
+        ),
123
+        'customer.state' => array(
124
+            'label' => 'Customer state',
125
+            'code' => 'customer.state',
126
+            'internalcode' => 'ezu."state"',
127
+            'type' => 'string',
128
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
129
+        ),
130
+        'customer.languageid' => array(
131
+            'label' => 'Customer language',
132
+            'code' => 'customer.languageid',
133
+            'internalcode' => 'ezu."langid"',
134
+            'type' => 'string',
135
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
136
+        ),
137
+        'customer.countryid' => array(
138
+            'label' => 'Customer country',
139
+            'code' => 'customer.countryid',
140
+            'internalcode' => 'ezu."countryid"',
141
+            'type' => 'string',
142
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
143
+        ),
144
+        'customer.telephone' => array(
145
+            'label' => 'Customer telephone',
146
+            'code' => 'customer.telephone',
147
+            'internalcode' => 'ezu."telephone"',
148
+            'type' => 'string',
149
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
150
+        ),
151
+        'customer.email' => array(
152
+            'label' => 'Customer email',
153
+            'code' => 'customer.email',
154
+            'internalcode' => 'ezu."email"',
155
+            'type' => 'string',
156
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
157
+        ),
158
+        'customer.telefax' => array(
159
+            'label' => 'Customer telefax',
160
+            'code' => 'customer.telefax',
161
+            'internalcode' => 'ezu."telefax"',
162
+            'type' => 'string',
163
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
164
+        ),
165
+        'customer.website' => array(
166
+            'label' => 'Customer website',
167
+            'code' => 'customer.website',
168
+            'internalcode' => 'ezu."website"',
169
+            'type' => 'string',
170
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
171
+        ),
172
+        'customer.birthday' => array(
173
+            'label' => 'Customer birthday',
174
+            'code' => 'customer.birthday',
175
+            'internalcode' => 'ezu."birthday"',
176
+            'type' => 'string',
177
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
178
+        ),
179
+        'customer.password'=> array(
180
+            'label' => 'Customer password',
181
+            'code' => 'customer.password',
182
+            'internalcode' => 'ezu."password_hash"',
183
+            'type' => 'string',
184
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
185
+        ),
186
+        'customer.status'=> array(
187
+            'label' => 'Customer status',
188
+            'code' => 'customer.status',
189
+            'internalcode' => 'ezs."is_enabled"',
190
+            'type' => 'integer',
191
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_INT
192
+        ),
193
+        'customer.dateverified'=> array(
194
+            'label' => 'Customer verification date',
195
+            'code' => 'customer.dateverified',
196
+            'internalcode' => 'ezu."vdate"',
197
+            'type' => 'date',
198
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
199
+        ),
200
+        'customer.ctime'=> array(
201
+            'label' => 'Customer creation time',
202
+            'code' => 'customer.ctime',
203
+            'internalcode' => 'ezu."ctime"',
204
+            'type' => 'datetime',
205
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
206
+        ),
207
+        'customer.mtime'=> array(
208
+            'label' => 'Customer modification time',
209
+            'code' => 'customer.mtime',
210
+            'internalcode' => 'ezu."mtime"',
211
+            'type' => 'datetime',
212
+            'internaltype' => \Aimeos\MW\DB\Statement\Base::PARAM_STR,
213
+        ),
214
+        'customer.editor'=> array(
215
+            'label'=>'Customer editor',
216
+            'code'=>'customer.editor',
217
+            'internalcode' => 'ezu."editor"',
218
+            'type'=> 'string',
219
+            'internaltype'=> \Aimeos\MW\DB\Statement\Base::PARAM_STR,
220
+        ),
221
+    );
222
+
223
+    private $addressManager;
224
+
225
+
226
+    /**
227
+     * Removes old entries from the storage.
228
+     *
229
+     * @param array $siteids List of IDs for sites whose entries should be deleted
230
+     */
231
+    public function cleanup( array $siteids )
232
+    {
233
+        $path = 'mshop/customer/manager/submanagers';
234
+        foreach( $this->getContext()->getConfig()->get( $path, array( 'address', 'lists' ) ) as $domain ) {
235
+            $this->getSubManager( $domain )->cleanup( $siteids );
236
+        }
237
+    }
238
+
239
+
240
+    /**
241
+     * Removes multiple items specified by ids in the array.
242
+     *
243
+     * @param array $ids List of IDs
244
+     */
245
+    public function deleteItems( array $ids )
246
+    {
247
+        $path = 'mshop/customer/manager/ezpublish/delete';
248
+        $this->deleteItemsBase( $ids, $path, false, 'contentobject_id' );
249
+    }
250
+
251
+
252
+    /**
253
+     * Returns the list attributes that can be used for searching.
254
+     *
255
+     * @param boolean $withsub Return also attributes of sub-managers if true
256
+     * @return array List of attribute items implementing \Aimeos\MW\Criteria\Attribute\Iface
257
+     */
258
+    public function getSearchAttributes( $withsub = true )
259
+    {
260
+        $path = 'mshop/customer/manager/submanagers';
261
+
262
+        return $this->getSearchAttributesBase( $this->searchConfig, $path, array( 'address', 'lists' ), $withsub );
263
+    }
264
+
265
+
266
+    /**
267
+     * Instantiates a new customer item object.
268
+     *
269
+     * @return \Aimeos\MShop\Customer\Item\Iface New customer item object
270
+     */
271
+    public function createItem()
272
+    {
273
+        return $this->createItemBase();
274
+    }
275
+
276
+
277
+    /**
278
+     * Saves a customer item object.
279
+     *
280
+     * @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
281
+     * @param boolean $fetch True if the new ID should be returned in the item
282
+     */
283
+    public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
284
+    {
285
+        $iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
286
+        if( !( $item instanceof $iface ) ) {
287
+            throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $iface ) );
288
+        }
289
+
290
+        if( !$item->isModified() ) { return; }
291
+
292
+        $context = $this->getContext();
293
+
294
+        $class = '\Aimeos\MShop\Context\Item\Ezpublish';
295
+        if( !is_a( $context, $class ) ) {
296
+            throw new \Aimeos\MShop\Customer\Exception( sprintf( 'Object is not of required type "%1$s"', $class ) );
297
+        }
298
+
299
+        $fcn = $context->getEzUser();
300
+        $email = $item->getPaymentAddress()->getEmail();
301
+        $contentId = $fcn( $item->getId(), $item->getCode(), $email, $item->getPassword(), $item->getStatus() );
302
+        $item->setId( $contentId );
303
+
304
+        $dbm = $context->getDatabaseManager();
305
+        $dbname = $this->getResourceName();
306
+        $conn = $dbm->acquire( $dbname );
307
+
308
+        try
309
+        {
310
+            $date = date( 'Y-m-d H:i:s' );
311
+            $ctime = ( $item->getTimeCreated() ? $item->getTimeCreated() : $date );
312
+            $billingAddress = $item->getPaymentAddress();
313
+
314
+            $path = 'mshop/customer/manager/ezpublish/update';
315
+            $stmt = $this->getCachedStatement( $conn, $path );
316
+
317
+            $stmt->bind( 1, $billingAddress->getCompany() );
318
+            $stmt->bind( 2, $billingAddress->getVatID() );
319
+            $stmt->bind( 3, $billingAddress->getSalutation() );
320
+            $stmt->bind( 4, $billingAddress->getTitle() );
321
+            $stmt->bind( 5, $billingAddress->getFirstname() );
322
+            $stmt->bind( 6, $billingAddress->getLastname() );
323
+            $stmt->bind( 7, $billingAddress->getAddress1() );
324
+            $stmt->bind( 8, $billingAddress->getAddress2() );
325
+            $stmt->bind( 9, $billingAddress->getAddress3() );
326
+            $stmt->bind( 10, $billingAddress->getPostal() );
327
+            $stmt->bind( 11, $billingAddress->getCity() );
328
+            $stmt->bind( 12, $billingAddress->getState() );
329
+            $stmt->bind( 13, $billingAddress->getCountryId() );
330
+            $stmt->bind( 14, $billingAddress->getLanguageId() );
331
+            $stmt->bind( 15, $billingAddress->getTelephone() );
332
+            $stmt->bind( 16, $billingAddress->getTelefax() );
333
+            $stmt->bind( 17, $billingAddress->getWebsite() );
334
+            $stmt->bind( 18, $item->getBirthday() );
335
+            $stmt->bind( 19, $item->getDateVerified() );
336
+            $stmt->bind( 20, $date ); // Modification time
337
+            $stmt->bind( 21, $context->getEditor() );
338
+            $stmt->bind( 22, $ctime ); // Creation time
339
+            $stmt->bind( 23, $item->getId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT );
340
+
341
+            $stmt->execute()->finish();
342
+
343
+            $dbm->release( $conn, $dbname );
344
+        }
345
+        catch( \Exception $e )
346
+        {
347
+            $dbm->release( $conn, $dbname );
348
+            throw $e;
349
+        }
350
+    }
351
+
352
+
353
+    /**
354
+     * Returns the item objects matched by the given search criteria.
355
+     *
356
+     * @param \Aimeos\MW\Criteria\Iface $search Search criteria object
357
+     * @param integer &$total Number of items that are available in total
358
+     * @return array List of items implementing \Aimeos\MShop\Customer\Item\Iface
359
+     * @throws \Aimeos\MShop\Customer\Exception If creating items failed
360
+     */
361
+    public function searchItems( \Aimeos\MW\Criteria\Iface $search, array $ref = array(), &$total = null )
362
+    {
363
+        $dbm = $this->getContext()->getDatabaseManager();
364
+        $dbname = $this->getResourceName();
365
+        $conn = $dbm->acquire( $dbname );
366
+        $map = array();
367
+
368
+        try
369
+        {
370
+            $level = \Aimeos\MShop\Locale\Manager\Base::SITE_ALL;
371
+            $cfgPathSearch = 'mshop/customer/manager/ezpublish/search';
372
+            $cfgPathCount = 'mshop/customer/manager/ezpublish/count';
373
+            $required = array( 'customer' );
374
+
375
+            $results = $this->searchItemsBase( $conn, $search, $cfgPathSearch, $cfgPathCount, $required, $total, $level );
376
+            while( ( $row = $results->fetch() ) !== false ) {
377
+                $map[ $row['customer.id'] ] = $row;
378
+            }
379
+
380
+            $dbm->release( $conn, $dbname );
381
+        }
382
+        catch( \Exception $e )
383
+        {
384
+            $dbm->release( $conn, $dbname  );
385
+            throw $e;
386
+        }
387
+
388
+        return $this->buildItems( $map, $ref, 'customer' );
389
+    }
390
+
391
+
392
+    /**
393
+     * Returns a new manager for customer extensions
394
+     *
395
+     * @param string $manager Name of the sub manager type in lower case
396
+     * @param string|null $name Name of the implementation, will be from configuration (or Default) if null
397
+     * @return mixed Manager for different extensions, e.g stock, tags, locations, etc.
398
+     */
399
+    public function getSubManager( $manager, $name = null )
400
+    {
401
+        return $this->getSubManagerBase( 'customer', $manager, ( $name === null ? 'Ezpublish' : $name ) );
402
+    }
403
+
404
+
405
+    /**
406
+     * Creates a new customer item.
407
+     *
408
+     * @param array $values List of attributes for customer item
409
+     * @param array $listItems List items associated to the customer item
410
+     * @param array $refItems Items referenced by the customer item via the list items
411
+     * @return \Aimeos\MShop\Customer\Item\Iface New customer item
412
+     */
413
+    protected function createItemBase( array $values = array(), array $listItems = array(), array $refItems = array() )
414
+    {
415
+        if( !isset( $this->addressManager ) ) {
416
+            $this->addressManager = $this->getSubManager( 'address' );
417
+        }
418
+
419
+        $helper = $this->getPasswordHelper();
420
+        $address = $this->addressManager->createItem();
421
+
422
+        return new \Aimeos\MShop\Customer\Item\Ezpublish( $address, $values, $listItems, $refItems, null, $helper );
423
+    }
424 424
 }
Please login to merge, or discard this patch.
lib/custom/setup/unittest/CustomerAddEzpublishTestData.php 1 patch
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -14,134 +14,134 @@
 block discarded – undo
14 14
  */
15 15
 class CustomerAddEzpublishTestData extends \Aimeos\MW\Setup\Task\CustomerAddTestData
16 16
 {
17
-	/**
18
-	 * Returns the list of task names which this task depends on.
19
-	 *
20
-	 * @return string[] List of task names
21
-	 */
22
-	public function getPreDependencies()
23
-	{
24
-		return array( 'TablesCreateEzpublish', 'EzuserAddAddress', 'MShopSetLocale', 'MediaAddTestData' );
25
-	}
17
+    /**
18
+     * Returns the list of task names which this task depends on.
19
+     *
20
+     * @return string[] List of task names
21
+     */
22
+    public function getPreDependencies()
23
+    {
24
+        return array( 'TablesCreateEzpublish', 'EzuserAddAddress', 'MShopSetLocale', 'MediaAddTestData' );
25
+    }
26 26
 
27 27
 
28
-	/**
29
-	 * Adds attribute test data.
30
-	 */
31
-	public function migrate()
32
-	{
33
-		$iface = '\\Aimeos\\MShop\\Context\\Item\\Iface';
34
-		if( !( $this->additional instanceof $iface ) ) {
35
-			throw new \Aimeos\MW\Setup\Exception( sprintf( 'Additionally provided object is not of type "%1$s"', $iface ) );
36
-		}
28
+    /**
29
+     * Adds attribute test data.
30
+     */
31
+    public function migrate()
32
+    {
33
+        $iface = '\\Aimeos\\MShop\\Context\\Item\\Iface';
34
+        if( !( $this->additional instanceof $iface ) ) {
35
+            throw new \Aimeos\MW\Setup\Exception( sprintf( 'Additionally provided object is not of type "%1$s"', $iface ) );
36
+        }
37 37
 
38
-		$context = $this->getEzContext( $this->additional );
38
+        $context = $this->getEzContext( $this->additional );
39 39
 
40
-		$this->msg( 'Adding ezPublish customer test data', 0 );
40
+        $this->msg( 'Adding ezPublish customer test data', 0 );
41 41
 
42
-		$parentIds = array();
43
-		$ds = DIRECTORY_SEPARATOR;
44
-		$context->setEditor( 'ai-ezpublish:unittest' );
45
-		$path = __DIR__ . $ds . 'data' . $ds . 'customer.php';
42
+        $parentIds = array();
43
+        $ds = DIRECTORY_SEPARATOR;
44
+        $context->setEditor( 'ai-ezpublish:unittest' );
45
+        $path = __DIR__ . $ds . 'data' . $ds . 'customer.php';
46 46
 
47
-		if( ( $testdata = include( $path ) ) === false ){
48
-			throw new \Aimeos\MShop\Exception( sprintf( 'No file "%1$s" found for customer domain', $path ) );
49
-		}
47
+        if( ( $testdata = include( $path ) ) === false ){
48
+            throw new \Aimeos\MShop\Exception( sprintf( 'No file "%1$s" found for customer domain', $path ) );
49
+        }
50 50
 
51 51
 
52
-		$customerManager = \Aimeos\MShop\Customer\Manager\Factory::createManager( $context, 'Ezpublish' );
53
-		$customerAddressManager = $customerManager->getSubManager( 'address', 'Ezpublish' );
52
+        $customerManager = \Aimeos\MShop\Customer\Manager\Factory::createManager( $context, 'Ezpublish' );
53
+        $customerAddressManager = $customerManager->getSubManager( 'address', 'Ezpublish' );
54 54
 
55
-		$search = $customerManager->createSearch();
56
-		$search->setConditions( $search->compare( '==', 'customer.code', array( 'UTC001', 'UTC002', 'UTC003' ) ) );
57
-		$items = $customerManager->searchItems( $search );
55
+        $search = $customerManager->createSearch();
56
+        $search->setConditions( $search->compare( '==', 'customer.code', array( 'UTC001', 'UTC002', 'UTC003' ) ) );
57
+        $items = $customerManager->searchItems( $search );
58 58
 
59
-		$this->conn->begin();
59
+        $this->conn->begin();
60 60
 
61
-		$customerManager->deleteItems( array_keys( $items ) );
62
-		$parentIds = $this->addCustomerData( $testdata, $customerManager, $customerAddressManager->createItem() );
63
-		$this->addCustomerAddressData( $testdata, $customerAddressManager, $parentIds );
61
+        $customerManager->deleteItems( array_keys( $items ) );
62
+        $parentIds = $this->addCustomerData( $testdata, $customerManager, $customerAddressManager->createItem() );
63
+        $this->addCustomerAddressData( $testdata, $customerAddressManager, $parentIds );
64 64
 
65
-		$this->conn->commit();
65
+        $this->conn->commit();
66 66
 
67 67
 
68
-		$this->status( 'done' );
69
-	}
68
+        $this->status( 'done' );
69
+    }
70 70
 
71 71
 
72
-	/**
73
-	 * Returns the Ezpublish context
74
-	 *
75
-	 * @param \Aimeos\MShop\Context\Item\Iface $context Context object
76
-	 * @return \Aimeos\MShop\Context\Item\Ezpublish Ezpublish context object
77
-	 */
78
-	protected function getEzContext( \Aimeos\MShop\Context\Item\Iface $context )
79
-	{
80
-		$class = '\Aimeos\MShop\Context\Item\Ezpublish';
81
-		if( is_a( $context, $class ) ) {
82
-			return $context;
83
-		}
72
+    /**
73
+     * Returns the Ezpublish context
74
+     *
75
+     * @param \Aimeos\MShop\Context\Item\Iface $context Context object
76
+     * @return \Aimeos\MShop\Context\Item\Ezpublish Ezpublish context object
77
+     */
78
+    protected function getEzContext( \Aimeos\MShop\Context\Item\Iface $context )
79
+    {
80
+        $class = '\Aimeos\MShop\Context\Item\Ezpublish';
81
+        if( is_a( $context, $class ) ) {
82
+            return $context;
83
+        }
84 84
 
85
-		$ctx = new \Aimeos\MShop\Context\Item\Ezpublish();
86
-		$ctx->setDatabaseManager( clone $context->getDatabaseManager() );
87
-		$ctx->setSession( clone $context->getSession() );
88
-		$ctx->setLogger( clone $context->getLogger() );
89
-		$ctx->setLocale( clone $context->getLocale() );
90
-		$ctx->setConfig( clone $context->getConfig() );
91
-		$ctx->setCache( clone $context->getCache() );
85
+        $ctx = new \Aimeos\MShop\Context\Item\Ezpublish();
86
+        $ctx->setDatabaseManager( clone $context->getDatabaseManager() );
87
+        $ctx->setSession( clone $context->getSession() );
88
+        $ctx->setLogger( clone $context->getLogger() );
89
+        $ctx->setLocale( clone $context->getLocale() );
90
+        $ctx->setConfig( clone $context->getConfig() );
91
+        $ctx->setCache( clone $context->getCache() );
92 92
 
93 93
 
94
-		$ctx->setEzUser( function( $id, $code, $email, $password, $status ) use ( $ctx ) {
94
+        $ctx->setEzUser( function( $id, $code, $email, $password, $status ) use ( $ctx ) {
95 95
 
96
-			$dbm = $ctx->getDatabaseManager();
97
-			$dbname = ( $ctx->getConfig()->get( 'resource/db-customer' ) ? 'db-customer' : 'db' );
98
-			$conn = $dbm->acquire( $dbname );
96
+            $dbm = $ctx->getDatabaseManager();
97
+            $dbname = ( $ctx->getConfig()->get( 'resource/db-customer' ) ? 'db-customer' : 'db' );
98
+            $conn = $dbm->acquire( $dbname );
99 99
 
100
-			try
101
-			{
102
-				$contentid = ( $id === null ? mt_rand( -0x7fffffff,-1 ) : $id );
100
+            try
101
+            {
102
+                $contentid = ( $id === null ? mt_rand( -0x7fffffff,-1 ) : $id );
103 103
 
104
-				if( $id === null ) {
105
-					$sql = 'INSERT INTO "ezuser" ( "email", "login", "login_normalized", "password_hash", "password_hash_type", "contentobject_id" ) VALUES ( ?, ?, ?, ?, 5, ? )';
106
-				} else {
107
-					$sql = 'UPDATE "ezuser" SET "email" = ?, "login" = ?, "login_normalized" = ?, "password_hash" = ?, "password_hash_type" = 5 WHERE "contentobject_id" = ?';
108
-				}
104
+                if( $id === null ) {
105
+                    $sql = 'INSERT INTO "ezuser" ( "email", "login", "login_normalized", "password_hash", "password_hash_type", "contentobject_id" ) VALUES ( ?, ?, ?, ?, 5, ? )';
106
+                } else {
107
+                    $sql = 'UPDATE "ezuser" SET "email" = ?, "login" = ?, "login_normalized" = ?, "password_hash" = ?, "password_hash_type" = 5 WHERE "contentobject_id" = ?';
108
+                }
109 109
 
110
-				$stmt = $conn->create( $sql );
111
-				$stmt->bind( 1, $email );
112
-				$stmt->bind( 2, $code );
113
-				$stmt->bind( 3, $code );
114
-				$stmt->bind( 4, $password );
115
-				$stmt->bind( 5, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
110
+                $stmt = $conn->create( $sql );
111
+                $stmt->bind( 1, $email );
112
+                $stmt->bind( 2, $code );
113
+                $stmt->bind( 3, $code );
114
+                $stmt->bind( 4, $password );
115
+                $stmt->bind( 5, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
116 116
 
117
-				$stmt->execute()->finish();
117
+                $stmt->execute()->finish();
118 118
 
119 119
 
120
-				if( $id === null ) {
121
-					$sql = 'INSERT INTO "ezuser_setting" ( "is_enabled", "user_id" ) VALUES ( ?, ? )';
122
-				} else {
123
-					$sql = 'UPDATE "ezuser_setting" SET "is_enabled" = ? WHERE "user_id" = ?';
124
-				}
120
+                if( $id === null ) {
121
+                    $sql = 'INSERT INTO "ezuser_setting" ( "is_enabled", "user_id" ) VALUES ( ?, ? )';
122
+                } else {
123
+                    $sql = 'UPDATE "ezuser_setting" SET "is_enabled" = ? WHERE "user_id" = ?';
124
+                }
125 125
 
126
-				$stmt = $conn->create( $sql );
127
-				$stmt->bind( 1, $status, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
128
-				$stmt->bind( 2, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
126
+                $stmt = $conn->create( $sql );
127
+                $stmt->bind( 1, $status, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
128
+                $stmt->bind( 2, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
129 129
 
130
-				$stmt->execute()->finish();
130
+                $stmt->execute()->finish();
131 131
 
132 132
 
133
-				$dbm->release( $conn, $dbname );
134
-			}
135
-			catch( \Exception $e )
136
-			{
137
-				$dbm->release( $conn, $dbname );
138
-				throw $e;
139
-			}
133
+                $dbm->release( $conn, $dbname );
134
+            }
135
+            catch( \Exception $e )
136
+            {
137
+                $dbm->release( $conn, $dbname );
138
+                throw $e;
139
+            }
140 140
 
141
-			return $contentid;
142
-		} );
141
+            return $contentid;
142
+        } );
143 143
 
144 144
 
145
-		return $ctx;
146
-	}
145
+        return $ctx;
146
+    }
147 147
 }
Please login to merge, or discard this patch.
lib/custom/tests/TestHelper.php 1 patch
Indentation   +91 added lines, -91 removed lines patch added patch discarded remove patch
@@ -8,140 +8,140 @@
 block discarded – undo
8 8
  */
9 9
 class TestHelper
10 10
 {
11
-	private static $aimeos;
12
-	private static $context = array();
11
+    private static $aimeos;
12
+    private static $context = array();
13 13
 
14 14
 
15
-	public static function bootstrap()
16
-	{
17
-		$aimeos = self::getAimeos();
15
+    public static function bootstrap()
16
+    {
17
+        $aimeos = self::getAimeos();
18 18
 
19
-		$includepaths = $aimeos->getIncludePaths();
20
-		$includepaths[] = get_include_path();
21
-		set_include_path( implode( PATH_SEPARATOR, $includepaths ) );
22
-	}
19
+        $includepaths = $aimeos->getIncludePaths();
20
+        $includepaths[] = get_include_path();
21
+        set_include_path( implode( PATH_SEPARATOR, $includepaths ) );
22
+    }
23 23
 
24 24
 
25
-	public static function getContext( $site = 'unittest' )
26
-	{
27
-		if( !isset( self::$context[$site] ) ) {
28
-			self::$context[$site] = self::createContext( $site );
29
-		}
25
+    public static function getContext( $site = 'unittest' )
26
+    {
27
+        if( !isset( self::$context[$site] ) ) {
28
+            self::$context[$site] = self::createContext( $site );
29
+        }
30 30
 
31
-		return clone self::$context[$site];
32
-	}
31
+        return clone self::$context[$site];
32
+    }
33 33
 
34 34
 
35
-	private static function getAimeos()
36
-	{
37
-		if( !isset( self::$aimeos ) )
38
-		{
39
-			require_once 'Bootstrap.php';
40
-			spl_autoload_register( 'Aimeos\\Bootstrap::autoload' );
35
+    private static function getAimeos()
36
+    {
37
+        if( !isset( self::$aimeos ) )
38
+        {
39
+            require_once 'Bootstrap.php';
40
+            spl_autoload_register( 'Aimeos\\Bootstrap::autoload' );
41 41
 
42
-			$extdir = dirname( dirname( dirname( __DIR__ ) ) );
43
-			self::$aimeos = new \Aimeos\Bootstrap( array( $extdir ), true );
44
-		}
42
+            $extdir = dirname( dirname( dirname( __DIR__ ) ) );
43
+            self::$aimeos = new \Aimeos\Bootstrap( array( $extdir ), true );
44
+        }
45 45
 
46
-		return self::$aimeos;
47
-	}
46
+        return self::$aimeos;
47
+    }
48 48
 
49 49
 
50
-	/**
51
-	 * @param string $site
52
-	 */
53
-	private static function createContext( $site )
54
-	{
55
-		$ctx = new \Aimeos\MShop\Context\Item\Ezpublish();
56
-		$aimeos = self::getAimeos();
50
+    /**
51
+     * @param string $site
52
+     */
53
+    private static function createContext( $site )
54
+    {
55
+        $ctx = new \Aimeos\MShop\Context\Item\Ezpublish();
56
+        $aimeos = self::getAimeos();
57 57
 
58 58
 
59
-		$paths = $aimeos->getConfigPaths();
60
-		$paths[] = __DIR__ . DIRECTORY_SEPARATOR . 'config';
59
+        $paths = $aimeos->getConfigPaths();
60
+        $paths[] = __DIR__ . DIRECTORY_SEPARATOR . 'config';
61 61
 
62
-		$conf = new \Aimeos\MW\Config\PHPArray( array(), $paths );
63
-		$ctx->setConfig( $conf );
62
+        $conf = new \Aimeos\MW\Config\PHPArray( array(), $paths );
63
+        $ctx->setConfig( $conf );
64 64
 
65 65
 
66
-		$dbm = new \Aimeos\MW\DB\Manager\DBAL( $conf );
67
-		$ctx->setDatabaseManager( $dbm );
66
+        $dbm = new \Aimeos\MW\DB\Manager\DBAL( $conf );
67
+        $ctx->setDatabaseManager( $dbm );
68 68
 
69 69
 
70
-		$logger = new \Aimeos\MW\Logger\File( $site . '.log', \Aimeos\MW\Logger\Base::DEBUG );
71
-		$ctx->setLogger( $logger );
70
+        $logger = new \Aimeos\MW\Logger\File( $site . '.log', \Aimeos\MW\Logger\Base::DEBUG );
71
+        $ctx->setLogger( $logger );
72 72
 
73 73
 
74
-		$cache = new \Aimeos\MW\Cache\None();
75
-		$ctx->setCache( $cache );
74
+        $cache = new \Aimeos\MW\Cache\None();
75
+        $ctx->setCache( $cache );
76 76
 
77 77
 
78
-		$i18n = new \Aimeos\MW\Translation\None( 'de' );
79
-		$ctx->setI18n( array( 'de' => $i18n ) );
78
+        $i18n = new \Aimeos\MW\Translation\None( 'de' );
79
+        $ctx->setI18n( array( 'de' => $i18n ) );
80 80
 
81 81
 
82
-		$session = new \Aimeos\MW\Session\None();
83
-		$ctx->setSession( $session );
82
+        $session = new \Aimeos\MW\Session\None();
83
+        $ctx->setSession( $session );
84 84
 
85 85
 
86
-		$localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager( $ctx );
87
-		$localeItem = $localeManager->bootstrap( $site, '', '', false );
86
+        $localeManager = \Aimeos\MShop\Locale\Manager\Factory::createManager( $ctx );
87
+        $localeItem = $localeManager->bootstrap( $site, '', '', false );
88 88
 
89
-		$ctx->setLocale( $localeItem );
89
+        $ctx->setLocale( $localeItem );
90 90
 
91
-		$ctx->setEditor( 'ai-ezpublish:unittest' );
91
+        $ctx->setEditor( 'ai-ezpublish:unittest' );
92 92
 
93 93
 
94
-		$ctx->setEzUser( function( $id, $code, $email, $password, $status ) use ( $ctx ) {
94
+        $ctx->setEzUser( function( $id, $code, $email, $password, $status ) use ( $ctx ) {
95 95
 
96
-			$dbm = $ctx->getDatabaseManager();
97
-			$dbname = ( $ctx->getConfig()->get( 'resource/db-customer' ) ? 'db-customer' : 'db' );
98
-			$conn = $dbm->acquire( $dbname );
96
+            $dbm = $ctx->getDatabaseManager();
97
+            $dbname = ( $ctx->getConfig()->get( 'resource/db-customer' ) ? 'db-customer' : 'db' );
98
+            $conn = $dbm->acquire( $dbname );
99 99
 
100
-			try
101
-			{
102
-				$contentid = ( $id === null ? mt_rand( -0x7fffffff,-1 ) : $id );
100
+            try
101
+            {
102
+                $contentid = ( $id === null ? mt_rand( -0x7fffffff,-1 ) : $id );
103 103
 
104
-				if( $id === null ) {
105
-					$sql = 'INSERT INTO "ezuser" ( "email", "login", "login_normalized", "password_hash", "password_hash_type", "contentobject_id" ) VALUES ( ?, ?, ?, ?, 5, ? )';
106
-				} else {
107
-					$sql = 'UPDATE "ezuser" SET "email" = ?, "login" = ?, "login_normalized" = ?, "password_hash" = ?, "password_hash_type" = 5 WHERE "contentobject_id" = ?';
108
-				}
104
+                if( $id === null ) {
105
+                    $sql = 'INSERT INTO "ezuser" ( "email", "login", "login_normalized", "password_hash", "password_hash_type", "contentobject_id" ) VALUES ( ?, ?, ?, ?, 5, ? )';
106
+                } else {
107
+                    $sql = 'UPDATE "ezuser" SET "email" = ?, "login" = ?, "login_normalized" = ?, "password_hash" = ?, "password_hash_type" = 5 WHERE "contentobject_id" = ?';
108
+                }
109 109
 
110
-				$stmt = $conn->create( $sql );
111
-				$stmt->bind( 1, $email );
112
-				$stmt->bind( 2, $code );
113
-				$stmt->bind( 3, $code );
114
-				$stmt->bind( 4, $password );
115
-				$stmt->bind( 5, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
110
+                $stmt = $conn->create( $sql );
111
+                $stmt->bind( 1, $email );
112
+                $stmt->bind( 2, $code );
113
+                $stmt->bind( 3, $code );
114
+                $stmt->bind( 4, $password );
115
+                $stmt->bind( 5, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
116 116
 
117
-				$stmt->execute()->finish();
117
+                $stmt->execute()->finish();
118 118
 
119 119
 
120
-				if( $id === null ) {
121
-					$sql = 'INSERT INTO "ezuser_setting" ( "is_enabled", "user_id" ) VALUES ( ?, ? )';
122
-				} else {
123
-					$sql = 'UPDATE "ezuser_setting" SET "is_enabled" = ? WHERE "user_id" = ?';
124
-				}
120
+                if( $id === null ) {
121
+                    $sql = 'INSERT INTO "ezuser_setting" ( "is_enabled", "user_id" ) VALUES ( ?, ? )';
122
+                } else {
123
+                    $sql = 'UPDATE "ezuser_setting" SET "is_enabled" = ? WHERE "user_id" = ?';
124
+                }
125 125
 
126
-				$stmt = $conn->create( $sql );
127
-				$stmt->bind( 1, $status, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
128
-				$stmt->bind( 2, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
126
+                $stmt = $conn->create( $sql );
127
+                $stmt->bind( 1, $status, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
128
+                $stmt->bind( 2, $contentid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
129 129
 
130
-				$stmt->execute()->finish();
130
+                $stmt->execute()->finish();
131 131
 
132 132
 
133
-				$dbm->release( $conn, $dbname );
134
-			}
135
-			catch( \Exception $e )
136
-			{
137
-				$dbm->release( $conn, $dbname );
138
-				throw $e;
139
-			}
133
+                $dbm->release( $conn, $dbname );
134
+            }
135
+            catch( \Exception $e )
136
+            {
137
+                $dbm->release( $conn, $dbname );
138
+                throw $e;
139
+            }
140 140
 
141
-			return $contentid;
142
-		} );
141
+            return $contentid;
142
+        } );
143 143
 
144 144
 
145
-		return $ctx;
146
-	}
145
+        return $ctx;
146
+    }
147 147
 }
Please login to merge, or discard this patch.