Completed
Push — master ( ea7c09...15cf0d )
by Aimeos
06:26
created
client/html/src/Client/Html/Checkout/Update/Standard.php 3 patches
Indentation   +401 added lines, -401 removed lines patch added patch discarded remove patch
@@ -19,406 +19,406 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
-	implements \Aimeos\Client\Html\Common\Client\Factory\Iface
22
+    extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
+    implements \Aimeos\Client\Html\Common\Client\Factory\Iface
24 24
 {
25
-	/** client/html/checkout/update/standard/subparts
26
-	 * List of HTML sub-clients rendered within the checkout update section
27
-	 *
28
-	 * The output of the frontend is composed of the code generated by the HTML
29
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
30
-	 * that are responsible for rendering certain sub-parts of the output. The
31
-	 * sub-clients can contain HTML clients themselves and therefore a
32
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
33
-	 * the output that is placed inside the container of its parent.
34
-	 *
35
-	 * At first, always the HTML code generated by the parent is printed, then
36
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
37
-	 * determines the order of the output of these sub-clients inside the parent
38
-	 * container. If the configured list of clients is
39
-	 *
40
-	 *  array( "subclient1", "subclient2" )
41
-	 *
42
-	 * you can easily change the order of the output by reordering the subparts:
43
-	 *
44
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
-	 *
46
-	 * You can also remove one or more parts if they shouldn't be rendered:
47
-	 *
48
-	 *  client/html/<clients>/subparts = array( "subclient1" )
49
-	 *
50
-	 * As the clients only generates structural HTML, the layout defined via CSS
51
-	 * should support adding, removing or reordering content by a fluid like
52
-	 * design.
53
-	 *
54
-	 * @param array List of sub-client names
55
-	 * @since 2014.03
56
-	 * @category Developer
57
-	 */
58
-	private $subPartPath = 'client/html/checkout/update/standard/subparts';
59
-	private $subPartNames = array();
60
-
61
-
62
-	/**
63
-	 * Returns the HTML code for insertion into the body.
64
-	 *
65
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
66
-	 * @param array &$tags Result array for the list of tags that are associated to the output
67
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68
-	 * @return string HTML code
69
-	 */
70
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
-	{
72
-		$context = $this->getContext();
73
-		$view = $this->getView();
74
-
75
-		try
76
-		{
77
-			$view = $this->setViewParams( $view, $tags, $expire );
78
-
79
-			$html = '';
80
-			foreach( $this->getSubClients() as $subclient ) {
81
-				$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
82
-			}
83
-			$view->updateBody = $html;
84
-		}
85
-		catch( \Aimeos\Client\Html\Exception $e )
86
-		{
87
-			$error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
88
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
89
-		}
90
-		catch( \Aimeos\Controller\Frontend\Exception $e )
91
-		{
92
-			$error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
93
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
94
-		}
95
-		catch( \Aimeos\MShop\Exception $e )
96
-		{
97
-			$error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
98
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
99
-		}
100
-		catch( \Exception $e )
101
-		{
102
-			$context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
103
-
104
-			$error = array( $context->getI18n()->dt( 'client', 'A non-recoverable error occured' ) );
105
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
106
-		}
107
-
108
-		/** client/html/checkout/update/standard/template-body
109
-		 * Relative path to the HTML body template of the checkout update client.
110
-		 *
111
-		 * The template file contains the HTML code and processing instructions
112
-		 * to generate the result shown in the body of the frontend. The
113
-		 * configuration string is the path to the template file relative
114
-		 * to the templates directory (usually in client/html/templates).
115
-		 *
116
-		 * You can overwrite the template file configuration in extensions and
117
-		 * provide alternative templates. These alternative templates should be
118
-		 * named like the default one but with the string "standard" replaced by
119
-		 * an unique name. You may use the name of your project for this. If
120
-		 * you've implemented an alternative client class as well, "standard"
121
-		 * should be replaced by the name of the new class.
122
-		 *
123
-		 * @param string Relative path to the template creating code for the HTML page body
124
-		 * @since 2014.03
125
-		 * @category Developer
126
-		 * @see client/html/checkout/update/standard/template-header
127
-		 */
128
-		$tplconf = 'client/html/checkout/update/standard/template-body';
129
-		$default = 'checkout/update/body-default.php';
130
-
131
-		return $view->render( $view->config( $tplconf, $default ) );
132
-	}
133
-
134
-
135
-	/**
136
-	 * Returns the HTML string for insertion into the header.
137
-	 *
138
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
139
-	 * @param array &$tags Result array for the list of tags that are associated to the output
140
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
141
-	 * @return string|null String including HTML tags for the header on error
142
-	 */
143
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
144
-	{
145
-		try
146
-		{
147
-			$view = $this->setViewParams( $this->getView(), $tags, $expire );
148
-
149
-			$html = '';
150
-			foreach( $this->getSubClients() as $subclient ) {
151
-				$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
152
-			}
153
-			$view->updateHeader = $html;
154
-
155
-			/** client/html/checkout/update/standard/template-header
156
-			 * Relative path to the HTML header template of the checkout update client.
157
-			 *
158
-			 * The template file contains the HTML code and processing instructions
159
-			 * to generate the HTML code that is inserted into the HTML page header
160
-			 * of the rendered page in the frontend. The configuration string is the
161
-			 * path to the template file relative to the templates directory (usually
162
-			 * in client/html/templates).
163
-			 *
164
-			 * You can overwrite the template file configuration in extensions and
165
-			 * provide alternative templates. These alternative templates should be
166
-			 * named like the default one but with the string "standard" replaced by
167
-			 * an unique name. You may use the name of your project for this. If
168
-			 * you've implemented an alternative client class as well, "standard"
169
-			 * should be replaced by the name of the new class.
170
-			 *
171
-			 * @param string Relative path to the template creating code for the HTML page head
172
-			 * @since 2014.03
173
-			 * @category Developer
174
-			 * @see client/html/checkout/update/standard/template-body
175
-			 */
176
-			$tplconf = 'client/html/checkout/update/standard/template-header';
177
-			$default = 'checkout/update/header-default.php';
178
-
179
-			return $view->render( $view->config( $tplconf, $default ) );
180
-		}
181
-		catch( \Exception $e )
182
-		{
183
-			$this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
184
-		}
185
-	}
186
-
187
-
188
-	/**
189
-	 * Returns the sub-client given by its name.
190
-	 *
191
-	 * @param string $type Name of the client type
192
-	 * @param string|null $name Name of the sub-client (Default if null)
193
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
194
-	 */
195
-	public function getSubClient( $type, $name = null )
196
-	{
197
-		/** client/html/checkout/update/decorators/excludes
198
-		 * Excludes decorators added by the "common" option from the checkout update html client
199
-		 *
200
-		 * Decorators extend the functionality of a class by adding new aspects
201
-		 * (e.g. log what is currently done), executing the methods of the underlying
202
-		 * class only in certain conditions (e.g. only for logged in users) or
203
-		 * modify what is returned to the caller.
204
-		 *
205
-		 * This option allows you to remove a decorator added via
206
-		 * "client/html/common/decorators/default" before they are wrapped
207
-		 * around the html client.
208
-		 *
209
-		 *  client/html/checkout/update/decorators/excludes = array( 'decorator1' )
210
-		 *
211
-		 * This would remove the decorator named "decorator1" from the list of
212
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
213
-		 * "client/html/common/decorators/default" to the html client.
214
-		 *
215
-		 * @param array List of decorator names
216
-		 * @since 2014.05
217
-		 * @category Developer
218
-		 * @see client/html/common/decorators/default
219
-		 * @see client/html/checkout/update/decorators/global
220
-		 * @see client/html/checkout/update/decorators/local
221
-		 */
222
-
223
-		/** client/html/checkout/update/decorators/global
224
-		 * Adds a list of globally available decorators only to the checkout update html client
225
-		 *
226
-		 * Decorators extend the functionality of a class by adding new aspects
227
-		 * (e.g. log what is currently done), executing the methods of the underlying
228
-		 * class only in certain conditions (e.g. only for logged in users) or
229
-		 * modify what is returned to the caller.
230
-		 *
231
-		 * This option allows you to wrap global decorators
232
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
233
-		 *
234
-		 *  client/html/checkout/update/decorators/global = array( 'decorator1' )
235
-		 *
236
-		 * This would add the decorator named "decorator1" defined by
237
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
238
-		 *
239
-		 * @param array List of decorator names
240
-		 * @since 2014.05
241
-		 * @category Developer
242
-		 * @see client/html/common/decorators/default
243
-		 * @see client/html/checkout/update/decorators/excludes
244
-		 * @see client/html/checkout/update/decorators/local
245
-		 */
246
-
247
-		/** client/html/checkout/update/decorators/local
248
-		 * Adds a list of local decorators only to the checkout update html client
249
-		 *
250
-		 * Decorators extend the functionality of a class by adding new aspects
251
-		 * (e.g. log what is currently done), executing the methods of the underlying
252
-		 * class only in certain conditions (e.g. only for logged in users) or
253
-		 * modify what is returned to the caller.
254
-		 *
255
-		 * This option allows you to wrap local decorators
256
-		 * ("\Aimeos\Client\Html\Checkout\Decorator\*") around the html client.
257
-		 *
258
-		 *  client/html/checkout/update/decorators/local = array( 'decorator2' )
259
-		 *
260
-		 * This would add the decorator named "decorator2" defined by
261
-		 * "\Aimeos\Client\Html\Checkout\Decorator\Decorator2" only to the html client.
262
-		 *
263
-		 * @param array List of decorator names
264
-		 * @since 2014.05
265
-		 * @category Developer
266
-		 * @see client/html/common/decorators/default
267
-		 * @see client/html/checkout/update/decorators/excludes
268
-		 * @see client/html/checkout/update/decorators/global
269
-		 */
270
-
271
-		return $this->createSubClient( 'checkout/update/' . $type, $name );
272
-	}
273
-
274
-
275
-	/**
276
-	 * Processes the input, e.g. store given values.
277
-	 * A view must be available and this method doesn't generate any output
278
-	 * besides setting view variables.
279
-	 */
280
-	public function process()
281
-	{
282
-		$view = $this->getView();
283
-		$context = $this->getContext();
284
-
285
-		try
286
-		{
287
-			$provider = $this->getServiceProvider( $view->param( 'code' ) );
288
-
289
-			$config = array( 'absoluteUri' => true, 'namespace' => false );
290
-			$params = array( 'code' => $view->param( 'code' ), 'orderid' => $view->param( 'orderid' ) );
291
-			$urls = array(
292
-				'payment.url-success' => $this->getUrlConfirm( $view, $params, $config ),
293
-				'payment.url-update' => $this->getUrlUpdate( $view, $params, $config ),
294
-			);
295
-			$urls['payment.url-self'] = $urls['payment.url-update'];
296
-			$provider->injectGlobalConfigBE( $urls );
297
-
298
-			$response = null;
299
-			$headers = array();
300
-
301
-			try
302
-			{
303
-				$body = $view->request()->getBody();
304
-
305
-				if( ( $orderItem = $provider->updateSync( $view->param(), $body, $response, $headers ) ) !== null ) {
306
-					\Aimeos\Controller\Frontend\Factory::createController( $context, 'order' )->update( $orderItem ); // stock, coupons
307
-				}
308
-
309
-				$view->updateMessage = $response;
310
-			}
311
-			catch( \Aimeos\MShop\Service\Exception $e )
312
-			{
313
-				$view->updateMessage = $e->getMessage();
314
-			}
315
-
316
-			if( !empty( $headers ) ) {
317
-				$view->updateHttpHeaders = $headers;
318
-			}
319
-
320
-			parent::process();
321
-		}
322
-		catch( \Exception $e )
323
-		{
324
-			/** client/html/checkout/standard/update/http-error
325
-			 * HTTP header sent for failed attempts to update the order status
326
-			 *
327
-			 * This HTTP header is returned to the remote system if the status
328
-			 * update failed due to an error in the application. This header is
329
-			 * not sent if e.g. a payment was refused by the payment gateway!
330
-			 * It should be one of the 5xx HTTP headers.
331
-			 *
332
-			 * @param array List of valid HTTP headers
333
-			 * @since 2015.07
334
-			 * @category Developer
335
-			 * @see client/html/checkout/standard/update/http-success
336
-			 */
337
-			$default = array( 'HTTP/1.1 500 Error updating order status' );
338
-			$headerList = $context->getConfig()->get( 'client/html/checkout/standard/update/http-error', $default );
339
-
340
-			$view->updateHttpHeaders = $headerList;
341
-			$view->updateMessage = $e->getMessage();
342
-
343
-			$body = $view->request()->getBody();
344
-			$params = print_r( $view->param(), true );
345
-			$msg = "Updating order status failed: %1\$s\n%2\$s\n%3\$s";
346
-			$context->getLogger()->log( sprintf( $msg, $e->getMessage(), $params, $body ) );
347
-		}
348
-	}
349
-
350
-
351
-	/**
352
-	 * Returns the service provider for the given code
353
-	 *
354
-	 * @param string $code Unique service code
355
-	 * @throws \Aimeos\Client\Html\Exception If no service item could be found
356
-	 * @return \Aimeos\MShop\Service\Provider\Iface Service provider object
357
-	 */
358
-	protected function getServiceProvider( $code )
359
-	{
360
-		$serviceManager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'service' );
361
-
362
-		$search = $serviceManager->createSearch();
363
-		$search->setConditions( $search->compare( '==', 'service.code', $code ) );
364
-
365
-		$result = $serviceManager->searchItems( $search );
366
-
367
-		if( ( $serviceItem = reset( $result ) ) === false )
368
-		{
369
-			$msg = sprintf( 'No service for code "%1$s" found', $code );
370
-			throw new \Aimeos\Client\Html\Exception( $msg );
371
-		}
372
-
373
-		return $serviceManager->getProvider( $serviceItem );
374
-	}
375
-
376
-
377
-	/**
378
-	 * Returns the list of sub-client names configured for the client.
379
-	 *
380
-	 * @return array List of HTML client names
381
-	 */
382
-	protected function getSubClientNames()
383
-	{
384
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
385
-	}
386
-
387
-
388
-	/**
389
-	 * Returns the URL to the confirm page.
390
-	 *
391
-	 * @param \Aimeos\MW\View\Iface $view View object
392
-	 * @param array $params Parameters that should be part of the URL
393
-	 * @param array $config Default URL configuration
394
-	 * @return string URL string
395
-	 */
396
-	protected function getUrlConfirm( \Aimeos\MW\View\Iface $view, array $params, array $config )
397
-	{
398
-		$target = $view->config( 'client/html/checkout/confirm/url/target' );
399
-		$cntl = $view->config( 'client/html/checkout/confirm/url/controller', 'checkout' );
400
-		$action = $view->config( 'client/html/checkout/confirm/url/action', 'confirm' );
401
-		$config = $view->config( 'client/html/checkout/confirm/url/config', $config );
402
-
403
-		return $view->url( $target, $cntl, $action, $params, array(), $config );
404
-	}
405
-
406
-
407
-	/**
408
-	 * Returns the URL to the update page.
409
-	 *
410
-	 * @param \Aimeos\MW\View\Iface $view View object
411
-	 * @param array $params Parameters that should be part of the URL
412
-	 * @param array $config Default URL configuration
413
-	 * @return string URL string
414
-	 */
415
-	protected function getUrlUpdate( \Aimeos\MW\View\Iface $view, array $params, array $config )
416
-	{
417
-		$target = $view->config( 'client/html/checkout/update/url/target' );
418
-		$cntl = $view->config( 'client/html/checkout/update/url/controller', 'checkout' );
419
-		$action = $view->config( 'client/html/checkout/update/url/action', 'update' );
420
-		$config = $view->config( 'client/html/checkout/update/url/config', $config );
421
-
422
-		return $view->url( $target, $cntl, $action, $params, array(), $config );
423
-	}
25
+    /** client/html/checkout/update/standard/subparts
26
+     * List of HTML sub-clients rendered within the checkout update section
27
+     *
28
+     * The output of the frontend is composed of the code generated by the HTML
29
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
30
+     * that are responsible for rendering certain sub-parts of the output. The
31
+     * sub-clients can contain HTML clients themselves and therefore a
32
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
33
+     * the output that is placed inside the container of its parent.
34
+     *
35
+     * At first, always the HTML code generated by the parent is printed, then
36
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
37
+     * determines the order of the output of these sub-clients inside the parent
38
+     * container. If the configured list of clients is
39
+     *
40
+     *  array( "subclient1", "subclient2" )
41
+     *
42
+     * you can easily change the order of the output by reordering the subparts:
43
+     *
44
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
+     *
46
+     * You can also remove one or more parts if they shouldn't be rendered:
47
+     *
48
+     *  client/html/<clients>/subparts = array( "subclient1" )
49
+     *
50
+     * As the clients only generates structural HTML, the layout defined via CSS
51
+     * should support adding, removing or reordering content by a fluid like
52
+     * design.
53
+     *
54
+     * @param array List of sub-client names
55
+     * @since 2014.03
56
+     * @category Developer
57
+     */
58
+    private $subPartPath = 'client/html/checkout/update/standard/subparts';
59
+    private $subPartNames = array();
60
+
61
+
62
+    /**
63
+     * Returns the HTML code for insertion into the body.
64
+     *
65
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
66
+     * @param array &$tags Result array for the list of tags that are associated to the output
67
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68
+     * @return string HTML code
69
+     */
70
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
+    {
72
+        $context = $this->getContext();
73
+        $view = $this->getView();
74
+
75
+        try
76
+        {
77
+            $view = $this->setViewParams( $view, $tags, $expire );
78
+
79
+            $html = '';
80
+            foreach( $this->getSubClients() as $subclient ) {
81
+                $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
82
+            }
83
+            $view->updateBody = $html;
84
+        }
85
+        catch( \Aimeos\Client\Html\Exception $e )
86
+        {
87
+            $error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
88
+            $view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
89
+        }
90
+        catch( \Aimeos\Controller\Frontend\Exception $e )
91
+        {
92
+            $error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
93
+            $view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
94
+        }
95
+        catch( \Aimeos\MShop\Exception $e )
96
+        {
97
+            $error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
98
+            $view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
99
+        }
100
+        catch( \Exception $e )
101
+        {
102
+            $context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
103
+
104
+            $error = array( $context->getI18n()->dt( 'client', 'A non-recoverable error occured' ) );
105
+            $view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
106
+        }
107
+
108
+        /** client/html/checkout/update/standard/template-body
109
+         * Relative path to the HTML body template of the checkout update client.
110
+         *
111
+         * The template file contains the HTML code and processing instructions
112
+         * to generate the result shown in the body of the frontend. The
113
+         * configuration string is the path to the template file relative
114
+         * to the templates directory (usually in client/html/templates).
115
+         *
116
+         * You can overwrite the template file configuration in extensions and
117
+         * provide alternative templates. These alternative templates should be
118
+         * named like the default one but with the string "standard" replaced by
119
+         * an unique name. You may use the name of your project for this. If
120
+         * you've implemented an alternative client class as well, "standard"
121
+         * should be replaced by the name of the new class.
122
+         *
123
+         * @param string Relative path to the template creating code for the HTML page body
124
+         * @since 2014.03
125
+         * @category Developer
126
+         * @see client/html/checkout/update/standard/template-header
127
+         */
128
+        $tplconf = 'client/html/checkout/update/standard/template-body';
129
+        $default = 'checkout/update/body-default.php';
130
+
131
+        return $view->render( $view->config( $tplconf, $default ) );
132
+    }
133
+
134
+
135
+    /**
136
+     * Returns the HTML string for insertion into the header.
137
+     *
138
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
139
+     * @param array &$tags Result array for the list of tags that are associated to the output
140
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
141
+     * @return string|null String including HTML tags for the header on error
142
+     */
143
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
144
+    {
145
+        try
146
+        {
147
+            $view = $this->setViewParams( $this->getView(), $tags, $expire );
148
+
149
+            $html = '';
150
+            foreach( $this->getSubClients() as $subclient ) {
151
+                $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
152
+            }
153
+            $view->updateHeader = $html;
154
+
155
+            /** client/html/checkout/update/standard/template-header
156
+             * Relative path to the HTML header template of the checkout update client.
157
+             *
158
+             * The template file contains the HTML code and processing instructions
159
+             * to generate the HTML code that is inserted into the HTML page header
160
+             * of the rendered page in the frontend. The configuration string is the
161
+             * path to the template file relative to the templates directory (usually
162
+             * in client/html/templates).
163
+             *
164
+             * You can overwrite the template file configuration in extensions and
165
+             * provide alternative templates. These alternative templates should be
166
+             * named like the default one but with the string "standard" replaced by
167
+             * an unique name. You may use the name of your project for this. If
168
+             * you've implemented an alternative client class as well, "standard"
169
+             * should be replaced by the name of the new class.
170
+             *
171
+             * @param string Relative path to the template creating code for the HTML page head
172
+             * @since 2014.03
173
+             * @category Developer
174
+             * @see client/html/checkout/update/standard/template-body
175
+             */
176
+            $tplconf = 'client/html/checkout/update/standard/template-header';
177
+            $default = 'checkout/update/header-default.php';
178
+
179
+            return $view->render( $view->config( $tplconf, $default ) );
180
+        }
181
+        catch( \Exception $e )
182
+        {
183
+            $this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
184
+        }
185
+    }
186
+
187
+
188
+    /**
189
+     * Returns the sub-client given by its name.
190
+     *
191
+     * @param string $type Name of the client type
192
+     * @param string|null $name Name of the sub-client (Default if null)
193
+     * @return \Aimeos\Client\Html\Iface Sub-client object
194
+     */
195
+    public function getSubClient( $type, $name = null )
196
+    {
197
+        /** client/html/checkout/update/decorators/excludes
198
+         * Excludes decorators added by the "common" option from the checkout update html client
199
+         *
200
+         * Decorators extend the functionality of a class by adding new aspects
201
+         * (e.g. log what is currently done), executing the methods of the underlying
202
+         * class only in certain conditions (e.g. only for logged in users) or
203
+         * modify what is returned to the caller.
204
+         *
205
+         * This option allows you to remove a decorator added via
206
+         * "client/html/common/decorators/default" before they are wrapped
207
+         * around the html client.
208
+         *
209
+         *  client/html/checkout/update/decorators/excludes = array( 'decorator1' )
210
+         *
211
+         * This would remove the decorator named "decorator1" from the list of
212
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
213
+         * "client/html/common/decorators/default" to the html client.
214
+         *
215
+         * @param array List of decorator names
216
+         * @since 2014.05
217
+         * @category Developer
218
+         * @see client/html/common/decorators/default
219
+         * @see client/html/checkout/update/decorators/global
220
+         * @see client/html/checkout/update/decorators/local
221
+         */
222
+
223
+        /** client/html/checkout/update/decorators/global
224
+         * Adds a list of globally available decorators only to the checkout update html client
225
+         *
226
+         * Decorators extend the functionality of a class by adding new aspects
227
+         * (e.g. log what is currently done), executing the methods of the underlying
228
+         * class only in certain conditions (e.g. only for logged in users) or
229
+         * modify what is returned to the caller.
230
+         *
231
+         * This option allows you to wrap global decorators
232
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
233
+         *
234
+         *  client/html/checkout/update/decorators/global = array( 'decorator1' )
235
+         *
236
+         * This would add the decorator named "decorator1" defined by
237
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
238
+         *
239
+         * @param array List of decorator names
240
+         * @since 2014.05
241
+         * @category Developer
242
+         * @see client/html/common/decorators/default
243
+         * @see client/html/checkout/update/decorators/excludes
244
+         * @see client/html/checkout/update/decorators/local
245
+         */
246
+
247
+        /** client/html/checkout/update/decorators/local
248
+         * Adds a list of local decorators only to the checkout update html client
249
+         *
250
+         * Decorators extend the functionality of a class by adding new aspects
251
+         * (e.g. log what is currently done), executing the methods of the underlying
252
+         * class only in certain conditions (e.g. only for logged in users) or
253
+         * modify what is returned to the caller.
254
+         *
255
+         * This option allows you to wrap local decorators
256
+         * ("\Aimeos\Client\Html\Checkout\Decorator\*") around the html client.
257
+         *
258
+         *  client/html/checkout/update/decorators/local = array( 'decorator2' )
259
+         *
260
+         * This would add the decorator named "decorator2" defined by
261
+         * "\Aimeos\Client\Html\Checkout\Decorator\Decorator2" only to the html client.
262
+         *
263
+         * @param array List of decorator names
264
+         * @since 2014.05
265
+         * @category Developer
266
+         * @see client/html/common/decorators/default
267
+         * @see client/html/checkout/update/decorators/excludes
268
+         * @see client/html/checkout/update/decorators/global
269
+         */
270
+
271
+        return $this->createSubClient( 'checkout/update/' . $type, $name );
272
+    }
273
+
274
+
275
+    /**
276
+     * Processes the input, e.g. store given values.
277
+     * A view must be available and this method doesn't generate any output
278
+     * besides setting view variables.
279
+     */
280
+    public function process()
281
+    {
282
+        $view = $this->getView();
283
+        $context = $this->getContext();
284
+
285
+        try
286
+        {
287
+            $provider = $this->getServiceProvider( $view->param( 'code' ) );
288
+
289
+            $config = array( 'absoluteUri' => true, 'namespace' => false );
290
+            $params = array( 'code' => $view->param( 'code' ), 'orderid' => $view->param( 'orderid' ) );
291
+            $urls = array(
292
+                'payment.url-success' => $this->getUrlConfirm( $view, $params, $config ),
293
+                'payment.url-update' => $this->getUrlUpdate( $view, $params, $config ),
294
+            );
295
+            $urls['payment.url-self'] = $urls['payment.url-update'];
296
+            $provider->injectGlobalConfigBE( $urls );
297
+
298
+            $response = null;
299
+            $headers = array();
300
+
301
+            try
302
+            {
303
+                $body = $view->request()->getBody();
304
+
305
+                if( ( $orderItem = $provider->updateSync( $view->param(), $body, $response, $headers ) ) !== null ) {
306
+                    \Aimeos\Controller\Frontend\Factory::createController( $context, 'order' )->update( $orderItem ); // stock, coupons
307
+                }
308
+
309
+                $view->updateMessage = $response;
310
+            }
311
+            catch( \Aimeos\MShop\Service\Exception $e )
312
+            {
313
+                $view->updateMessage = $e->getMessage();
314
+            }
315
+
316
+            if( !empty( $headers ) ) {
317
+                $view->updateHttpHeaders = $headers;
318
+            }
319
+
320
+            parent::process();
321
+        }
322
+        catch( \Exception $e )
323
+        {
324
+            /** client/html/checkout/standard/update/http-error
325
+             * HTTP header sent for failed attempts to update the order status
326
+             *
327
+             * This HTTP header is returned to the remote system if the status
328
+             * update failed due to an error in the application. This header is
329
+             * not sent if e.g. a payment was refused by the payment gateway!
330
+             * It should be one of the 5xx HTTP headers.
331
+             *
332
+             * @param array List of valid HTTP headers
333
+             * @since 2015.07
334
+             * @category Developer
335
+             * @see client/html/checkout/standard/update/http-success
336
+             */
337
+            $default = array( 'HTTP/1.1 500 Error updating order status' );
338
+            $headerList = $context->getConfig()->get( 'client/html/checkout/standard/update/http-error', $default );
339
+
340
+            $view->updateHttpHeaders = $headerList;
341
+            $view->updateMessage = $e->getMessage();
342
+
343
+            $body = $view->request()->getBody();
344
+            $params = print_r( $view->param(), true );
345
+            $msg = "Updating order status failed: %1\$s\n%2\$s\n%3\$s";
346
+            $context->getLogger()->log( sprintf( $msg, $e->getMessage(), $params, $body ) );
347
+        }
348
+    }
349
+
350
+
351
+    /**
352
+     * Returns the service provider for the given code
353
+     *
354
+     * @param string $code Unique service code
355
+     * @throws \Aimeos\Client\Html\Exception If no service item could be found
356
+     * @return \Aimeos\MShop\Service\Provider\Iface Service provider object
357
+     */
358
+    protected function getServiceProvider( $code )
359
+    {
360
+        $serviceManager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'service' );
361
+
362
+        $search = $serviceManager->createSearch();
363
+        $search->setConditions( $search->compare( '==', 'service.code', $code ) );
364
+
365
+        $result = $serviceManager->searchItems( $search );
366
+
367
+        if( ( $serviceItem = reset( $result ) ) === false )
368
+        {
369
+            $msg = sprintf( 'No service for code "%1$s" found', $code );
370
+            throw new \Aimeos\Client\Html\Exception( $msg );
371
+        }
372
+
373
+        return $serviceManager->getProvider( $serviceItem );
374
+    }
375
+
376
+
377
+    /**
378
+     * Returns the list of sub-client names configured for the client.
379
+     *
380
+     * @return array List of HTML client names
381
+     */
382
+    protected function getSubClientNames()
383
+    {
384
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
385
+    }
386
+
387
+
388
+    /**
389
+     * Returns the URL to the confirm page.
390
+     *
391
+     * @param \Aimeos\MW\View\Iface $view View object
392
+     * @param array $params Parameters that should be part of the URL
393
+     * @param array $config Default URL configuration
394
+     * @return string URL string
395
+     */
396
+    protected function getUrlConfirm( \Aimeos\MW\View\Iface $view, array $params, array $config )
397
+    {
398
+        $target = $view->config( 'client/html/checkout/confirm/url/target' );
399
+        $cntl = $view->config( 'client/html/checkout/confirm/url/controller', 'checkout' );
400
+        $action = $view->config( 'client/html/checkout/confirm/url/action', 'confirm' );
401
+        $config = $view->config( 'client/html/checkout/confirm/url/config', $config );
402
+
403
+        return $view->url( $target, $cntl, $action, $params, array(), $config );
404
+    }
405
+
406
+
407
+    /**
408
+     * Returns the URL to the update page.
409
+     *
410
+     * @param \Aimeos\MW\View\Iface $view View object
411
+     * @param array $params Parameters that should be part of the URL
412
+     * @param array $config Default URL configuration
413
+     * @return string URL string
414
+     */
415
+    protected function getUrlUpdate( \Aimeos\MW\View\Iface $view, array $params, array $config )
416
+    {
417
+        $target = $view->config( 'client/html/checkout/update/url/target' );
418
+        $cntl = $view->config( 'client/html/checkout/update/url/controller', 'checkout' );
419
+        $action = $view->config( 'client/html/checkout/update/url/action', 'update' );
420
+        $config = $view->config( 'client/html/checkout/update/url/config', $config );
421
+
422
+        return $view->url( $target, $cntl, $action, $params, array(), $config );
423
+    }
424 424
 }
Please login to merge, or discard this patch.
Spacing   +63 added lines, -63 removed lines patch added patch discarded remove patch
@@ -67,42 +67,42 @@  discard block
 block discarded – undo
67 67
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68 68
 	 * @return string HTML code
69 69
 	 */
70
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
71 71
 	{
72 72
 		$context = $this->getContext();
73 73
 		$view = $this->getView();
74 74
 
75 75
 		try
76 76
 		{
77
-			$view = $this->setViewParams( $view, $tags, $expire );
77
+			$view = $this->setViewParams($view, $tags, $expire);
78 78
 
79 79
 			$html = '';
80
-			foreach( $this->getSubClients() as $subclient ) {
81
-				$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
80
+			foreach ($this->getSubClients() as $subclient) {
81
+				$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
82 82
 			}
83 83
 			$view->updateBody = $html;
84 84
 		}
85
-		catch( \Aimeos\Client\Html\Exception $e )
85
+		catch (\Aimeos\Client\Html\Exception $e)
86 86
 		{
87
-			$error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
88
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
87
+			$error = array($this->getContext()->getI18n()->dt('client', $e->getMessage()));
88
+			$view->updateErrorList = $view->get('updateErrorList', array()) + $error;
89 89
 		}
90
-		catch( \Aimeos\Controller\Frontend\Exception $e )
90
+		catch (\Aimeos\Controller\Frontend\Exception $e)
91 91
 		{
92
-			$error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
93
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
92
+			$error = array($this->getContext()->getI18n()->dt('controller/frontend', $e->getMessage()));
93
+			$view->updateErrorList = $view->get('updateErrorList', array()) + $error;
94 94
 		}
95
-		catch( \Aimeos\MShop\Exception $e )
95
+		catch (\Aimeos\MShop\Exception $e)
96 96
 		{
97
-			$error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
98
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
97
+			$error = array($this->getContext()->getI18n()->dt('mshop', $e->getMessage()));
98
+			$view->updateErrorList = $view->get('updateErrorList', array()) + $error;
99 99
 		}
100
-		catch( \Exception $e )
100
+		catch (\Exception $e)
101 101
 		{
102
-			$context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
102
+			$context->getLogger()->log($e->getMessage().PHP_EOL.$e->getTraceAsString());
103 103
 
104
-			$error = array( $context->getI18n()->dt( 'client', 'A non-recoverable error occured' ) );
105
-			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
104
+			$error = array($context->getI18n()->dt('client', 'A non-recoverable error occured'));
105
+			$view->updateErrorList = $view->get('updateErrorList', array()) + $error;
106 106
 		}
107 107
 
108 108
 		/** client/html/checkout/update/standard/template-body
@@ -128,7 +128,7 @@  discard block
 block discarded – undo
128 128
 		$tplconf = 'client/html/checkout/update/standard/template-body';
129 129
 		$default = 'checkout/update/body-default.php';
130 130
 
131
-		return $view->render( $view->config( $tplconf, $default ) );
131
+		return $view->render($view->config($tplconf, $default));
132 132
 	}
133 133
 
134 134
 
@@ -140,15 +140,15 @@  discard block
 block discarded – undo
140 140
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
141 141
 	 * @return string|null String including HTML tags for the header on error
142 142
 	 */
143
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
143
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
144 144
 	{
145 145
 		try
146 146
 		{
147
-			$view = $this->setViewParams( $this->getView(), $tags, $expire );
147
+			$view = $this->setViewParams($this->getView(), $tags, $expire);
148 148
 
149 149
 			$html = '';
150
-			foreach( $this->getSubClients() as $subclient ) {
151
-				$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
150
+			foreach ($this->getSubClients() as $subclient) {
151
+				$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
152 152
 			}
153 153
 			$view->updateHeader = $html;
154 154
 
@@ -176,11 +176,11 @@  discard block
 block discarded – undo
176 176
 			$tplconf = 'client/html/checkout/update/standard/template-header';
177 177
 			$default = 'checkout/update/header-default.php';
178 178
 
179
-			return $view->render( $view->config( $tplconf, $default ) );
179
+			return $view->render($view->config($tplconf, $default));
180 180
 		}
181
-		catch( \Exception $e )
181
+		catch (\Exception $e)
182 182
 		{
183
-			$this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
183
+			$this->getContext()->getLogger()->log($e->getMessage().PHP_EOL.$e->getTraceAsString());
184 184
 		}
185 185
 	}
186 186
 
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 	 * @param string|null $name Name of the sub-client (Default if null)
193 193
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
194 194
 	 */
195
-	public function getSubClient( $type, $name = null )
195
+	public function getSubClient($type, $name = null)
196 196
 	{
197 197
 		/** client/html/checkout/update/decorators/excludes
198 198
 		 * Excludes decorators added by the "common" option from the checkout update html client
@@ -268,7 +268,7 @@  discard block
 block discarded – undo
268 268
 		 * @see client/html/checkout/update/decorators/global
269 269
 		 */
270 270
 
271
-		return $this->createSubClient( 'checkout/update/' . $type, $name );
271
+		return $this->createSubClient('checkout/update/'.$type, $name);
272 272
 	}
273 273
 
274 274
 
@@ -284,16 +284,16 @@  discard block
 block discarded – undo
284 284
 
285 285
 		try
286 286
 		{
287
-			$provider = $this->getServiceProvider( $view->param( 'code' ) );
287
+			$provider = $this->getServiceProvider($view->param('code'));
288 288
 
289
-			$config = array( 'absoluteUri' => true, 'namespace' => false );
290
-			$params = array( 'code' => $view->param( 'code' ), 'orderid' => $view->param( 'orderid' ) );
289
+			$config = array('absoluteUri' => true, 'namespace' => false);
290
+			$params = array('code' => $view->param('code'), 'orderid' => $view->param('orderid'));
291 291
 			$urls = array(
292
-				'payment.url-success' => $this->getUrlConfirm( $view, $params, $config ),
293
-				'payment.url-update' => $this->getUrlUpdate( $view, $params, $config ),
292
+				'payment.url-success' => $this->getUrlConfirm($view, $params, $config),
293
+				'payment.url-update' => $this->getUrlUpdate($view, $params, $config),
294 294
 			);
295 295
 			$urls['payment.url-self'] = $urls['payment.url-update'];
296
-			$provider->injectGlobalConfigBE( $urls );
296
+			$provider->injectGlobalConfigBE($urls);
297 297
 
298 298
 			$response = null;
299 299
 			$headers = array();
@@ -302,24 +302,24 @@  discard block
 block discarded – undo
302 302
 			{
303 303
 				$body = $view->request()->getBody();
304 304
 
305
-				if( ( $orderItem = $provider->updateSync( $view->param(), $body, $response, $headers ) ) !== null ) {
306
-					\Aimeos\Controller\Frontend\Factory::createController( $context, 'order' )->update( $orderItem ); // stock, coupons
305
+				if (($orderItem = $provider->updateSync($view->param(), $body, $response, $headers)) !== null) {
306
+					\Aimeos\Controller\Frontend\Factory::createController($context, 'order')->update($orderItem); // stock, coupons
307 307
 				}
308 308
 
309 309
 				$view->updateMessage = $response;
310 310
 			}
311
-			catch( \Aimeos\MShop\Service\Exception $e )
311
+			catch (\Aimeos\MShop\Service\Exception $e)
312 312
 			{
313 313
 				$view->updateMessage = $e->getMessage();
314 314
 			}
315 315
 
316
-			if( !empty( $headers ) ) {
316
+			if (!empty($headers)) {
317 317
 				$view->updateHttpHeaders = $headers;
318 318
 			}
319 319
 
320 320
 			parent::process();
321 321
 		}
322
-		catch( \Exception $e )
322
+		catch (\Exception $e)
323 323
 		{
324 324
 			/** client/html/checkout/standard/update/http-error
325 325
 			 * HTTP header sent for failed attempts to update the order status
@@ -334,16 +334,16 @@  discard block
 block discarded – undo
334 334
 			 * @category Developer
335 335
 			 * @see client/html/checkout/standard/update/http-success
336 336
 			 */
337
-			$default = array( 'HTTP/1.1 500 Error updating order status' );
338
-			$headerList = $context->getConfig()->get( 'client/html/checkout/standard/update/http-error', $default );
337
+			$default = array('HTTP/1.1 500 Error updating order status');
338
+			$headerList = $context->getConfig()->get('client/html/checkout/standard/update/http-error', $default);
339 339
 
340 340
 			$view->updateHttpHeaders = $headerList;
341 341
 			$view->updateMessage = $e->getMessage();
342 342
 
343 343
 			$body = $view->request()->getBody();
344
-			$params = print_r( $view->param(), true );
344
+			$params = print_r($view->param(), true);
345 345
 			$msg = "Updating order status failed: %1\$s\n%2\$s\n%3\$s";
346
-			$context->getLogger()->log( sprintf( $msg, $e->getMessage(), $params, $body ) );
346
+			$context->getLogger()->log(sprintf($msg, $e->getMessage(), $params, $body));
347 347
 		}
348 348
 	}
349 349
 
@@ -355,22 +355,22 @@  discard block
 block discarded – undo
355 355
 	 * @throws \Aimeos\Client\Html\Exception If no service item could be found
356 356
 	 * @return \Aimeos\MShop\Service\Provider\Iface Service provider object
357 357
 	 */
358
-	protected function getServiceProvider( $code )
358
+	protected function getServiceProvider($code)
359 359
 	{
360
-		$serviceManager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'service' );
360
+		$serviceManager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'service');
361 361
 
362 362
 		$search = $serviceManager->createSearch();
363
-		$search->setConditions( $search->compare( '==', 'service.code', $code ) );
363
+		$search->setConditions($search->compare('==', 'service.code', $code));
364 364
 
365
-		$result = $serviceManager->searchItems( $search );
365
+		$result = $serviceManager->searchItems($search);
366 366
 
367
-		if( ( $serviceItem = reset( $result ) ) === false )
367
+		if (($serviceItem = reset($result)) === false)
368 368
 		{
369
-			$msg = sprintf( 'No service for code "%1$s" found', $code );
370
-			throw new \Aimeos\Client\Html\Exception( $msg );
369
+			$msg = sprintf('No service for code "%1$s" found', $code);
370
+			throw new \Aimeos\Client\Html\Exception($msg);
371 371
 		}
372 372
 
373
-		return $serviceManager->getProvider( $serviceItem );
373
+		return $serviceManager->getProvider($serviceItem);
374 374
 	}
375 375
 
376 376
 
@@ -381,7 +381,7 @@  discard block
 block discarded – undo
381 381
 	 */
382 382
 	protected function getSubClientNames()
383 383
 	{
384
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
384
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
385 385
 	}
386 386
 
387 387
 
@@ -393,14 +393,14 @@  discard block
 block discarded – undo
393 393
 	 * @param array $config Default URL configuration
394 394
 	 * @return string URL string
395 395
 	 */
396
-	protected function getUrlConfirm( \Aimeos\MW\View\Iface $view, array $params, array $config )
396
+	protected function getUrlConfirm(\Aimeos\MW\View\Iface $view, array $params, array $config)
397 397
 	{
398
-		$target = $view->config( 'client/html/checkout/confirm/url/target' );
399
-		$cntl = $view->config( 'client/html/checkout/confirm/url/controller', 'checkout' );
400
-		$action = $view->config( 'client/html/checkout/confirm/url/action', 'confirm' );
401
-		$config = $view->config( 'client/html/checkout/confirm/url/config', $config );
398
+		$target = $view->config('client/html/checkout/confirm/url/target');
399
+		$cntl = $view->config('client/html/checkout/confirm/url/controller', 'checkout');
400
+		$action = $view->config('client/html/checkout/confirm/url/action', 'confirm');
401
+		$config = $view->config('client/html/checkout/confirm/url/config', $config);
402 402
 
403
-		return $view->url( $target, $cntl, $action, $params, array(), $config );
403
+		return $view->url($target, $cntl, $action, $params, array(), $config);
404 404
 	}
405 405
 
406 406
 
@@ -412,13 +412,13 @@  discard block
 block discarded – undo
412 412
 	 * @param array $config Default URL configuration
413 413
 	 * @return string URL string
414 414
 	 */
415
-	protected function getUrlUpdate( \Aimeos\MW\View\Iface $view, array $params, array $config )
415
+	protected function getUrlUpdate(\Aimeos\MW\View\Iface $view, array $params, array $config)
416 416
 	{
417
-		$target = $view->config( 'client/html/checkout/update/url/target' );
418
-		$cntl = $view->config( 'client/html/checkout/update/url/controller', 'checkout' );
419
-		$action = $view->config( 'client/html/checkout/update/url/action', 'update' );
420
-		$config = $view->config( 'client/html/checkout/update/url/config', $config );
417
+		$target = $view->config('client/html/checkout/update/url/target');
418
+		$cntl = $view->config('client/html/checkout/update/url/controller', 'checkout');
419
+		$action = $view->config('client/html/checkout/update/url/action', 'update');
420
+		$config = $view->config('client/html/checkout/update/url/config', $config);
421 421
 
422
-		return $view->url( $target, $cntl, $action, $params, array(), $config );
422
+		return $view->url($target, $cntl, $action, $params, array(), $config);
423 423
 	}
424 424
 }
Please login to merge, or discard this patch.
Braces   +7 added lines, -14 removed lines patch added patch discarded remove patch
@@ -81,23 +81,19 @@  discard block
 block discarded – undo
81 81
 				$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
82 82
 			}
83 83
 			$view->updateBody = $html;
84
-		}
85
-		catch( \Aimeos\Client\Html\Exception $e )
84
+		} catch( \Aimeos\Client\Html\Exception $e )
86 85
 		{
87 86
 			$error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
88 87
 			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
89
-		}
90
-		catch( \Aimeos\Controller\Frontend\Exception $e )
88
+		} catch( \Aimeos\Controller\Frontend\Exception $e )
91 89
 		{
92 90
 			$error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
93 91
 			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
94
-		}
95
-		catch( \Aimeos\MShop\Exception $e )
92
+		} catch( \Aimeos\MShop\Exception $e )
96 93
 		{
97 94
 			$error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
98 95
 			$view->updateErrorList = $view->get( 'updateErrorList', array() ) + $error;
99
-		}
100
-		catch( \Exception $e )
96
+		} catch( \Exception $e )
101 97
 		{
102 98
 			$context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
103 99
 
@@ -177,8 +173,7 @@  discard block
 block discarded – undo
177 173
 			$default = 'checkout/update/header-default.php';
178 174
 
179 175
 			return $view->render( $view->config( $tplconf, $default ) );
180
-		}
181
-		catch( \Exception $e )
176
+		} catch( \Exception $e )
182 177
 		{
183 178
 			$this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
184 179
 		}
@@ -307,8 +302,7 @@  discard block
 block discarded – undo
307 302
 				}
308 303
 
309 304
 				$view->updateMessage = $response;
310
-			}
311
-			catch( \Aimeos\MShop\Service\Exception $e )
305
+			} catch( \Aimeos\MShop\Service\Exception $e )
312 306
 			{
313 307
 				$view->updateMessage = $e->getMessage();
314 308
 			}
@@ -318,8 +312,7 @@  discard block
 block discarded – undo
318 312
 			}
319 313
 
320 314
 			parent::process();
321
-		}
322
-		catch( \Exception $e )
315
+		} catch( \Exception $e )
323 316
 		{
324 317
 			/** client/html/checkout/standard/update/http-error
325 318
 			 * HTTP header sent for failed attempts to update the order status
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/Favorite/Factory.php 2 patches
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -19,69 +19,69 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Factory
22
-	extends \Aimeos\Client\Html\Common\Factory\Base
23
-	implements \Aimeos\Client\Html\Common\Factory\Iface
22
+    extends \Aimeos\Client\Html\Common\Factory\Base
23
+    implements \Aimeos\Client\Html\Common\Factory\Iface
24 24
 {
25
-	/**
26
-	 * Creates a account favorite client object.
27
-	 *
28
-	 * @param \Aimeos\MShop\Context\Item\Iface $context Shop context instance with necessary objects
29
-	 * @param array $templatePaths List of file system paths where the templates are stored
30
-	 * @param string|null $name Client name (default: "Standard")
31
-	 * @return \Aimeos\Client\Html\Iface Filter part implementing \Aimeos\Client\Html\Iface
32
-	 * @throws \Aimeos\Client\Html\Exception If requested client implementation couldn't be found or initialisation fails
33
-	 */
34
-	public static function createClient( \Aimeos\MShop\Context\Item\Iface $context, array $templatePaths, $name = null )
35
-	{
36
-		/** client/html/account/favorite/name
37
-		 * Class name of the used account favorite client implementation
38
-		 *
39
-		 * Each default HTML client can be replace by an alternative imlementation.
40
-		 * To use this implementation, you have to set the last part of the class
41
-		 * name as configuration value so the client factory knows which class it
42
-		 * has to instantiate.
43
-		 *
44
-		 * For example, if the name of the default class is
45
-		 *
46
-		 *  \Aimeos\Client\Html\Account\Favorite\Standard
47
-		 *
48
-		 * and you want to replace it with your own version named
49
-		 *
50
-		 *  \Aimeos\Client\Html\Account\Favorite\Myfavorite
51
-		 *
52
-		 * then you have to set the this configuration option:
53
-		 *
54
-		 *  client/html/account/favorite/name = Myfavorite
55
-		 *
56
-		 * The value is the last part of your own class name and it's case sensitive,
57
-		 * so take care that the configuration value is exactly named like the last
58
-		 * part of the class name.
59
-		 *
60
-		 * The allowed characters of the class name are A-Z, a-z and 0-9. No other
61
-		 * characters are possible! You should always start the last part of the class
62
-		 * name with an upper case character and continue only with lower case characters
63
-		 * or numbers. Avoid chamel case names like "MyFavorite"!
64
-		 *
65
-		 * @param string Last part of the class name
66
-		 * @since 2014.03
67
-		 * @category Developer
68
-		 */
69
-		if( $name === null ) {
70
-			$name = $context->getConfig()->get( 'client/html/account/favorite/name', 'Standard' );
71
-		}
25
+    /**
26
+     * Creates a account favorite client object.
27
+     *
28
+     * @param \Aimeos\MShop\Context\Item\Iface $context Shop context instance with necessary objects
29
+     * @param array $templatePaths List of file system paths where the templates are stored
30
+     * @param string|null $name Client name (default: "Standard")
31
+     * @return \Aimeos\Client\Html\Iface Filter part implementing \Aimeos\Client\Html\Iface
32
+     * @throws \Aimeos\Client\Html\Exception If requested client implementation couldn't be found or initialisation fails
33
+     */
34
+    public static function createClient( \Aimeos\MShop\Context\Item\Iface $context, array $templatePaths, $name = null )
35
+    {
36
+        /** client/html/account/favorite/name
37
+         * Class name of the used account favorite client implementation
38
+         *
39
+         * Each default HTML client can be replace by an alternative imlementation.
40
+         * To use this implementation, you have to set the last part of the class
41
+         * name as configuration value so the client factory knows which class it
42
+         * has to instantiate.
43
+         *
44
+         * For example, if the name of the default class is
45
+         *
46
+         *  \Aimeos\Client\Html\Account\Favorite\Standard
47
+         *
48
+         * and you want to replace it with your own version named
49
+         *
50
+         *  \Aimeos\Client\Html\Account\Favorite\Myfavorite
51
+         *
52
+         * then you have to set the this configuration option:
53
+         *
54
+         *  client/html/account/favorite/name = Myfavorite
55
+         *
56
+         * The value is the last part of your own class name and it's case sensitive,
57
+         * so take care that the configuration value is exactly named like the last
58
+         * part of the class name.
59
+         *
60
+         * The allowed characters of the class name are A-Z, a-z and 0-9. No other
61
+         * characters are possible! You should always start the last part of the class
62
+         * name with an upper case character and continue only with lower case characters
63
+         * or numbers. Avoid chamel case names like "MyFavorite"!
64
+         *
65
+         * @param string Last part of the class name
66
+         * @since 2014.03
67
+         * @category Developer
68
+         */
69
+        if( $name === null ) {
70
+            $name = $context->getConfig()->get( 'client/html/account/favorite/name', 'Standard' );
71
+        }
72 72
 
73
-		if( ctype_alnum( $name ) === false )
74
-		{
75
-			$classname = is_string( $name ) ? '\\Aimeos\\Client\\Html\\Account\\Favorite\\' . $name : '<not a string>';
76
-			throw new \Aimeos\Client\Html\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) );
77
-		}
73
+        if( ctype_alnum( $name ) === false )
74
+        {
75
+            $classname = is_string( $name ) ? '\\Aimeos\\Client\\Html\\Account\\Favorite\\' . $name : '<not a string>';
76
+            throw new \Aimeos\Client\Html\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) );
77
+        }
78 78
 
79
-		$iface = '\\Aimeos\\Client\\Html\\Iface';
80
-		$classname = '\\Aimeos\\Client\\Html\\Account\\Favorite\\' . $name;
79
+        $iface = '\\Aimeos\\Client\\Html\\Iface';
80
+        $classname = '\\Aimeos\\Client\\Html\\Account\\Favorite\\' . $name;
81 81
 
82
-		$client = self::createClientBase( $context, $classname, $iface, $templatePaths );
82
+        $client = self::createClientBase( $context, $classname, $iface, $templatePaths );
83 83
 
84
-		return self::addClientDecorators( $context, $client, $templatePaths, 'account/favorite' );
85
-	}
84
+        return self::addClientDecorators( $context, $client, $templatePaths, 'account/favorite' );
85
+    }
86 86
 
87 87
 }
88 88
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
 	 * @return \Aimeos\Client\Html\Iface Filter part implementing \Aimeos\Client\Html\Iface
32 32
 	 * @throws \Aimeos\Client\Html\Exception If requested client implementation couldn't be found or initialisation fails
33 33
 	 */
34
-	public static function createClient( \Aimeos\MShop\Context\Item\Iface $context, array $templatePaths, $name = null )
34
+	public static function createClient(\Aimeos\MShop\Context\Item\Iface $context, array $templatePaths, $name = null)
35 35
 	{
36 36
 		/** client/html/account/favorite/name
37 37
 		 * Class name of the used account favorite client implementation
@@ -66,22 +66,22 @@  discard block
 block discarded – undo
66 66
 		 * @since 2014.03
67 67
 		 * @category Developer
68 68
 		 */
69
-		if( $name === null ) {
70
-			$name = $context->getConfig()->get( 'client/html/account/favorite/name', 'Standard' );
69
+		if ($name === null) {
70
+			$name = $context->getConfig()->get('client/html/account/favorite/name', 'Standard');
71 71
 		}
72 72
 
73
-		if( ctype_alnum( $name ) === false )
73
+		if (ctype_alnum($name) === false)
74 74
 		{
75
-			$classname = is_string( $name ) ? '\\Aimeos\\Client\\Html\\Account\\Favorite\\' . $name : '<not a string>';
76
-			throw new \Aimeos\Client\Html\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) );
75
+			$classname = is_string($name) ? '\\Aimeos\\Client\\Html\\Account\\Favorite\\'.$name : '<not a string>';
76
+			throw new \Aimeos\Client\Html\Exception(sprintf('Invalid characters in class name "%1$s"', $classname));
77 77
 		}
78 78
 
79 79
 		$iface = '\\Aimeos\\Client\\Html\\Iface';
80
-		$classname = '\\Aimeos\\Client\\Html\\Account\\Favorite\\' . $name;
80
+		$classname = '\\Aimeos\\Client\\Html\\Account\\Favorite\\'.$name;
81 81
 
82
-		$client = self::createClientBase( $context, $classname, $iface, $templatePaths );
82
+		$client = self::createClientBase($context, $classname, $iface, $templatePaths);
83 83
 
84
-		return self::addClientDecorators( $context, $client, $templatePaths, 'account/favorite' );
84
+		return self::addClientDecorators($context, $client, $templatePaths, 'account/favorite');
85 85
 	}
86 86
 
87 87
 }
88 88
\ No newline at end of file
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/Favorite/Standard.php 3 patches
Indentation   +460 added lines, -460 removed lines patch added patch discarded remove patch
@@ -19,465 +19,465 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
-	implements \Aimeos\Client\Html\Common\Client\Factory\Iface
22
+    extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
+    implements \Aimeos\Client\Html\Common\Client\Factory\Iface
24 24
 {
25
-	/** client/html/account/favorite/standard/subparts
26
-	 * List of HTML sub-clients rendered within the account favorite section
27
-	 *
28
-	 * The output of the frontend is composed of the code generated by the HTML
29
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
30
-	 * that are responsible for rendering certain sub-parts of the output. The
31
-	 * sub-clients can contain HTML clients themselves and therefore a
32
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
33
-	 * the output that is placed inside the container of its parent.
34
-	 *
35
-	 * At first, always the HTML code generated by the parent is printed, then
36
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
37
-	 * determines the order of the output of these sub-clients inside the parent
38
-	 * container. If the configured list of clients is
39
-	 *
40
-	 *  array( "subclient1", "subclient2" )
41
-	 *
42
-	 * you can easily change the order of the output by reordering the subparts:
43
-	 *
44
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
-	 *
46
-	 * You can also remove one or more parts if they shouldn't be rendered:
47
-	 *
48
-	 *  client/html/<clients>/subparts = array( "subclient1" )
49
-	 *
50
-	 * As the clients only generates structural HTML, the layout defined via CSS
51
-	 * should support adding, removing or reordering content by a fluid like
52
-	 * design.
53
-	 *
54
-	 * @param array List of sub-client names
55
-	 * @since 2014.03
56
-	 * @category Developer
57
-	 */
58
-	private $subPartPath = 'client/html/account/favorite/standard/subparts';
59
-	private $subPartNames = array();
60
-	private $cache;
61
-
62
-
63
-	/**
64
-	 * Returns the HTML code for insertion into the body.
65
-	 *
66
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
67
-	 * @param array &$tags Result array for the list of tags that are associated to the output
68
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
69
-	 * @return string HTML code
70
-	 */
71
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
72
-	{
73
-		$context = $this->getContext();
74
-		$view = $this->getView();
75
-
76
-		try
77
-		{
78
-			$view = $this->setViewParams( $view, $tags, $expire );
79
-
80
-			$html = '';
81
-			foreach( $this->getSubClients() as $subclient ) {
82
-				$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
83
-			}
84
-			$view->favoriteBody = $html;
85
-		}
86
-		catch( \Aimeos\Client\Html\Exception $e )
87
-		{
88
-			$error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
89
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
90
-		}
91
-		catch( \Aimeos\Controller\Frontend\Exception $e )
92
-		{
93
-			$error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
94
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
95
-		}
96
-		catch( \Aimeos\MShop\Exception $e )
97
-		{
98
-			$error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
99
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
100
-		}
101
-		catch( \Exception $e )
102
-		{
103
-			$context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
104
-
105
-			$error = array( $context->getI18n()->dt( 'client', 'A non-recoverable error occured' ) );
106
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
107
-		}
108
-
109
-		/** client/html/account/favorite/standard/template-body
110
-		 * Relative path to the HTML body template of the account favorite client.
111
-		 *
112
-		 * The template file contains the HTML code and processing instructions
113
-		 * to generate the result shown in the body of the frontend. The
114
-		 * configuration string is the path to the template file relative
115
-		 * to the templates directory (usually in client/html/templates).
116
-		 *
117
-		 * You can overwrite the template file configuration in extensions and
118
-		 * provide alternative templates. These alternative templates should be
119
-		 * named like the default one but with the string "standard" replaced by
120
-		 * an unique name. You may use the name of your project for this. If
121
-		 * you've implemented an alternative client class as well, "standard"
122
-		 * should be replaced by the name of the new class.
123
-		 *
124
-		 * @param string Relative path to the template creating code for the HTML page body
125
-		 * @since 2014.03
126
-		 * @category Developer
127
-		 * @see client/html/account/favorite/standard/template-header
128
-		 */
129
-		$tplconf = 'client/html/account/favorite/standard/template-body';
130
-		$default = 'account/favorite/body-default.php';
131
-
132
-		return $view->render( $view->config( $tplconf, $default ) );
133
-	}
134
-
135
-
136
-	/**
137
-	 * Returns the HTML string for insertion into the header.
138
-	 *
139
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
140
-	 * @param array &$tags Result array for the list of tags that are associated to the output
141
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
142
-	 * @return string|null String including HTML tags for the header on error
143
-	 */
144
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
145
-	{
146
-		try
147
-		{
148
-			$view = $this->setViewParams( $this->getView(), $tags, $expire );
149
-
150
-			$html = '';
151
-			foreach( $this->getSubClients() as $subclient ) {
152
-				$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
153
-			}
154
-			$view->favoriteHeader = $html;
155
-
156
-			/** client/html/account/favorite/standard/template-header
157
-			 * Relative path to the HTML header template of the account favorite client.
158
-			 *
159
-			 * The template file contains the HTML code and processing instructions
160
-			 * to generate the HTML code that is inserted into the HTML page header
161
-			 * of the rendered page in the frontend. The configuration string is the
162
-			 * path to the template file relative to the templates directory (usually
163
-			 * in client/html/templates).
164
-			 *
165
-			 * You can overwrite the template file configuration in extensions and
166
-			 * provide alternative templates. These alternative templates should be
167
-			 * named like the default one but with the string "standard" replaced by
168
-			 * an unique name. You may use the name of your project for this. If
169
-			 * you've implemented an alternative client class as well, "standard"
170
-			 * should be replaced by the name of the new class.
171
-			 *
172
-			 * @param string Relative path to the template creating code for the HTML page head
173
-			 * @since 2014.03
174
-			 * @category Developer
175
-			 * @see client/html/account/favorite/standard/template-body
176
-			 */
177
-			$tplconf = 'client/html/account/favorite/standard/template-header';
178
-			$default = 'account/favorite/header-default.php';
179
-
180
-			return $view->render( $view->config( $tplconf, $default ) );
181
-		}
182
-		catch( \Exception $e )
183
-		{
184
-			$this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
185
-		}
186
-	}
187
-
188
-
189
-	/**
190
-	 * Returns the sub-client given by its name.
191
-	 *
192
-	 * @param string $type Name of the client type
193
-	 * @param string|null $name Name of the sub-client (Default if null)
194
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
195
-	 */
196
-	public function getSubClient( $type, $name = null )
197
-	{
198
-		/** client/html/account/favorite/decorators/excludes
199
-		 * Excludes decorators added by the "common" option from the account favorite html client
200
-		 *
201
-		 * Decorators extend the functionality of a class by adding new aspects
202
-		 * (e.g. log what is currently done), executing the methods of the underlying
203
-		 * class only in certain conditions (e.g. only for logged in users) or
204
-		 * modify what is returned to the caller.
205
-		 *
206
-		 * This option allows you to remove a decorator added via
207
-		 * "client/html/common/decorators/default" before they are wrapped
208
-		 * around the html client.
209
-		 *
210
-		 *  client/html/account/favorite/decorators/excludes = array( 'decorator1' )
211
-		 *
212
-		 * This would remove the decorator named "decorator1" from the list of
213
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
214
-		 * "client/html/common/decorators/default" to the html client.
215
-		 *
216
-		 * @param array List of decorator names
217
-		 * @since 2014.05
218
-		 * @category Developer
219
-		 * @see client/html/common/decorators/default
220
-		 * @see client/html/account/favorite/decorators/global
221
-		 * @see client/html/account/favorite/decorators/local
222
-		 */
223
-
224
-		/** client/html/account/favorite/decorators/global
225
-		 * Adds a list of globally available decorators only to the account favorite html client
226
-		 *
227
-		 * Decorators extend the functionality of a class by adding new aspects
228
-		 * (e.g. log what is currently done), executing the methods of the underlying
229
-		 * class only in certain conditions (e.g. only for logged in users) or
230
-		 * modify what is returned to the caller.
231
-		 *
232
-		 * This option allows you to wrap global decorators
233
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
234
-		 *
235
-		 *  client/html/account/favorite/decorators/global = array( 'decorator1' )
236
-		 *
237
-		 * This would add the decorator named "decorator1" defined by
238
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
239
-		 *
240
-		 * @param array List of decorator names
241
-		 * @since 2014.05
242
-		 * @category Developer
243
-		 * @see client/html/common/decorators/default
244
-		 * @see client/html/account/favorite/decorators/excludes
245
-		 * @see client/html/account/favorite/decorators/local
246
-		 */
247
-
248
-		/** client/html/account/favorite/decorators/local
249
-		 * Adds a list of local decorators only to the account favorite html client
250
-		 *
251
-		 * Decorators extend the functionality of a class by adding new aspects
252
-		 * (e.g. log what is currently done), executing the methods of the underlying
253
-		 * class only in certain conditions (e.g. only for logged in users) or
254
-		 * modify what is returned to the caller.
255
-		 *
256
-		 * This option allows you to wrap local decorators
257
-		 * ("\Aimeos\Client\Html\Account\Decorator\*") around the html client.
258
-		 *
259
-		 *  client/html/account/favorite/decorators/local = array( 'decorator2' )
260
-		 *
261
-		 * This would add the decorator named "decorator2" defined by
262
-		 * "\Aimeos\Client\Html\Account\Decorator\Decorator2" only to the html client.
263
-		 *
264
-		 * @param array List of decorator names
265
-		 * @since 2014.05
266
-		 * @category Developer
267
-		 * @see client/html/common/decorators/default
268
-		 * @see client/html/account/favorite/decorators/excludes
269
-		 * @see client/html/account/favorite/decorators/global
270
-		 */
271
-		return $this->createSubClient( 'account/favorite/' . $type, $name );
272
-	}
273
-
274
-
275
-	/**
276
-	 * Processes the input, e.g. store given values.
277
-	 * A view must be available and this method doesn't generate any output
278
-	 * besides setting view variables.
279
-	 */
280
-	public function process()
281
-	{
282
-		$view = $this->getView();
283
-		$context = $this->getContext();
284
-		$ids = $view->param( 'fav_id', array() );
285
-
286
-
287
-		if( $context->getUserId() != null && !empty( $ids ) )
288
-		{
289
-			$typeItem = $this->getTypeItem( 'customer/lists/type', 'product', 'favorite' );
290
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/lists' );
291
-
292
-			$search = $manager->createSearch();
293
-			$expr = array(
294
-				$search->compare( '==', 'customer.lists.parentid', $context->getUserId() ),
295
-				$search->compare( '==', 'customer.lists.refid', $ids ),
296
-				$search->compare( '==', 'customer.lists.domain', 'product' ),
297
-				$search->compare( '==', 'customer.lists.typeid', $typeItem->getId() ),
298
-			);
299
-			$search->setConditions( $search->combine( '&&', $expr ) );
300
-
301
-			$items = array();
302
-			foreach( $manager->searchItems( $search ) as $item ) {
303
-				$items[$item->getRefId()] = $item;
304
-			}
305
-
306
-
307
-			switch( $view->param( 'fav_action' ) )
308
-			{
309
-				case 'add':
310
-
311
-					$item = $manager->createItem();
312
-					$item->setParentId( $context->getUserId() );
313
-					$item->setTypeId( $typeItem->getId() );
314
-					$item->setDomain( 'product' );
315
-					$item->setStatus( 1 );
316
-
317
-					foreach( (array) $view->param( 'fav_id', array() ) as $id )
318
-					{
319
-						if( !isset( $items[$id] ) )
320
-						{
321
-							$item->setId( null );
322
-							$item->setRefId( $id );
323
-
324
-							$manager->saveItem( $item );
325
-							$manager->moveItem( $item->getId() );
326
-						}
327
-					}
328
-
329
-					break;
330
-
331
-				case 'delete':
332
-
333
-					$listIds = array();
334
-
335
-					foreach( (array) $view->param( 'fav_id', array() ) as $id )
336
-					{
337
-						if( isset( $items[$id] ) ) {
338
-							$listIds[] = $items[$id]->getId();
339
-						}
340
-					}
341
-
342
-					$manager->deleteItems( $listIds );
343
-					break;
344
-			}
345
-		}
346
-
347
-		parent::process();
348
-	}
349
-
350
-
351
-	/**
352
-	 * Returns the list of sub-client names configured for the client.
353
-	 *
354
-	 * @return array List of HTML client names
355
-	 */
356
-	protected function getSubClientNames()
357
-	{
358
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
359
-	}
360
-
361
-
362
-	/**
363
-	 * Returns the sanitized page from the parameters for the product list.
364
-	 *
365
-	 * @param \Aimeos\MW\View\Iface $view View instance with helper for retrieving the required parameters
366
-	 * @return integer Page number starting from 1
367
-	 */
368
-	protected function getProductListPage( \Aimeos\MW\View\Iface $view )
369
-	{
370
-		$page = (int) $view->param( 'fav_page', 1 );
371
-		return ( $page < 1 ? 1 : $page );
372
-	}
373
-
374
-
375
-	/**
376
-	 * Returns the sanitized page size from the parameters for the product list.
377
-	 *
378
-	 * @param \Aimeos\MW\View\Iface $view View instance with helper for retrieving the required parameters
379
-	 * @return integer Page size
380
-	 */
381
-	protected function getProductListSize( \Aimeos\MW\View\Iface $view )
382
-	{
383
-		/** client/html/account/favorite/size
384
-		 * The number of products shown in a list page for favorite products
385
-		 *
386
-		 * Limits the number of products that is shown in the list pages to the
387
-		 * given value. If more products are available, the products are split
388
-		 * into bunches which will be shown on their own list page. The user is
389
-		 * able to move to the next page (or previous one if it's not the first)
390
-		 * to display the next (or previous) products.
391
-		 *
392
-		 * The value must be an integer number from 1 to 100. Negative values as
393
-		 * well as values above 100 are not allowed. The value can be overwritten
394
-		 * per request if the "l_size" parameter is part of the URL.
395
-		 *
396
-		 * @param integer Number of products
397
-		 * @since 2014.09
398
-		 * @category User
399
-		 * @category Developer
400
-		 * @see client/html/catalog/lists/size
401
-		 */
402
-		$defaultSize = $this->getContext()->getConfig()->get( 'client/html/account/favorite/size', 48 );
403
-
404
-		$size = (int) $view->param( 'fav-size', $defaultSize );
405
-		return ( $size < 1 || $size > 100 ? $defaultSize : $size );
406
-	}
407
-
408
-
409
-	/**
410
-	 * Sets the necessary parameter values in the view.
411
-	 *
412
-	 * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
413
-	 * @param array &$tags Result array for the list of tags that are associated to the output
414
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
415
-	 * @return \Aimeos\MW\View\Iface Modified view object
416
-	 */
417
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
418
-	{
419
-		if( !isset( $this->cache ) )
420
-		{
421
-			$total = 0;
422
-			$productIds = array();
423
-			$context = $this->getContext();
424
-			$typeItem = $this->getTypeItem( 'customer/lists/type', 'product', 'favorite' );
425
-
426
-			$size = $this->getProductListSize( $view );
427
-			$current = $this->getProductListPage( $view );
428
-			$last = ( $total != 0 ? ceil( $total / $size ) : 1 );
429
-
430
-
431
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/lists' );
432
-
433
-			$search = $manager->createSearch();
434
-			$expr = array(
435
-				$search->compare( '==', 'customer.lists.parentid', $context->getUserId() ),
436
-				$search->compare( '==', 'customer.lists.typeid', $typeItem->getId() ),
437
-				$search->compare( '==', 'customer.lists.domain', 'product' ),
438
-			);
439
-			$search->setConditions( $search->combine( '&&', $expr ) );
440
-			$search->setSortations( array( $search->sort( '-', 'customer.lists.position' ) ) );
441
-			$search->setSlice( ( $current - 1 ) * $size, $size );
442
-
443
-			$view->favoriteListItems = $manager->searchItems( $search, array(), $total );
444
-
445
-
446
-			/** client/html/account/favorite/domains
447
-			 * A list of domain names whose items should be available in the account favorite view template
448
-			 *
449
-			 * The templates rendering product details usually add the images,
450
-			 * prices and texts associated to the product item. If you want to
451
-			 * display additional or less content, you can configure your own
452
-			 * list of domains (attribute, media, price, product, text, etc. are
453
-			 * domains) whose items are fetched from the storage. Please keep
454
-			 * in mind that the more domains you add to the configuration, the
455
-			 * more time is required for fetching the content!
456
-			 *
457
-			 * @param array List of domain names
458
-			 * @since 2014.09
459
-			 * @category Developer
460
-			 * @see client/html/catalog/domains
461
-			 */
462
-			$default = array( 'text', 'price', 'media' );
463
-			$domains = $context->getConfig()->get( 'client/html/account/favorite/domains', $default );
464
-
465
-			foreach( $view->favoriteListItems as $listItem ) {
466
-				$productIds[] = $listItem->getRefId();
467
-			}
468
-
469
-			$controller = \Aimeos\Controller\Frontend\Factory::createController( $context, 'catalog' );
470
-
471
-			$view->favoriteProductItems = $controller->getProductItems( $productIds, $domains );
472
-			$view->favoritePageFirst = 1;
473
-			$view->favoritePagePrev = ( $current > 1 ? $current - 1 : 1 );
474
-			$view->favoritePageNext = ( $current < $last ? $current + 1 : $last );
475
-			$view->favoritePageLast = $last;
476
-			$view->favoritePageCurr = $current;
477
-
478
-			$this->cache = $view;
479
-		}
480
-
481
-		return $this->cache;
482
-	}
25
+    /** client/html/account/favorite/standard/subparts
26
+     * List of HTML sub-clients rendered within the account favorite section
27
+     *
28
+     * The output of the frontend is composed of the code generated by the HTML
29
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
30
+     * that are responsible for rendering certain sub-parts of the output. The
31
+     * sub-clients can contain HTML clients themselves and therefore a
32
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
33
+     * the output that is placed inside the container of its parent.
34
+     *
35
+     * At first, always the HTML code generated by the parent is printed, then
36
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
37
+     * determines the order of the output of these sub-clients inside the parent
38
+     * container. If the configured list of clients is
39
+     *
40
+     *  array( "subclient1", "subclient2" )
41
+     *
42
+     * you can easily change the order of the output by reordering the subparts:
43
+     *
44
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
+     *
46
+     * You can also remove one or more parts if they shouldn't be rendered:
47
+     *
48
+     *  client/html/<clients>/subparts = array( "subclient1" )
49
+     *
50
+     * As the clients only generates structural HTML, the layout defined via CSS
51
+     * should support adding, removing or reordering content by a fluid like
52
+     * design.
53
+     *
54
+     * @param array List of sub-client names
55
+     * @since 2014.03
56
+     * @category Developer
57
+     */
58
+    private $subPartPath = 'client/html/account/favorite/standard/subparts';
59
+    private $subPartNames = array();
60
+    private $cache;
61
+
62
+
63
+    /**
64
+     * Returns the HTML code for insertion into the body.
65
+     *
66
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
67
+     * @param array &$tags Result array for the list of tags that are associated to the output
68
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
69
+     * @return string HTML code
70
+     */
71
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
72
+    {
73
+        $context = $this->getContext();
74
+        $view = $this->getView();
75
+
76
+        try
77
+        {
78
+            $view = $this->setViewParams( $view, $tags, $expire );
79
+
80
+            $html = '';
81
+            foreach( $this->getSubClients() as $subclient ) {
82
+                $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
83
+            }
84
+            $view->favoriteBody = $html;
85
+        }
86
+        catch( \Aimeos\Client\Html\Exception $e )
87
+        {
88
+            $error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
89
+            $view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
90
+        }
91
+        catch( \Aimeos\Controller\Frontend\Exception $e )
92
+        {
93
+            $error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
94
+            $view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
95
+        }
96
+        catch( \Aimeos\MShop\Exception $e )
97
+        {
98
+            $error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
99
+            $view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
100
+        }
101
+        catch( \Exception $e )
102
+        {
103
+            $context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
104
+
105
+            $error = array( $context->getI18n()->dt( 'client', 'A non-recoverable error occured' ) );
106
+            $view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
107
+        }
108
+
109
+        /** client/html/account/favorite/standard/template-body
110
+         * Relative path to the HTML body template of the account favorite client.
111
+         *
112
+         * The template file contains the HTML code and processing instructions
113
+         * to generate the result shown in the body of the frontend. The
114
+         * configuration string is the path to the template file relative
115
+         * to the templates directory (usually in client/html/templates).
116
+         *
117
+         * You can overwrite the template file configuration in extensions and
118
+         * provide alternative templates. These alternative templates should be
119
+         * named like the default one but with the string "standard" replaced by
120
+         * an unique name. You may use the name of your project for this. If
121
+         * you've implemented an alternative client class as well, "standard"
122
+         * should be replaced by the name of the new class.
123
+         *
124
+         * @param string Relative path to the template creating code for the HTML page body
125
+         * @since 2014.03
126
+         * @category Developer
127
+         * @see client/html/account/favorite/standard/template-header
128
+         */
129
+        $tplconf = 'client/html/account/favorite/standard/template-body';
130
+        $default = 'account/favorite/body-default.php';
131
+
132
+        return $view->render( $view->config( $tplconf, $default ) );
133
+    }
134
+
135
+
136
+    /**
137
+     * Returns the HTML string for insertion into the header.
138
+     *
139
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
140
+     * @param array &$tags Result array for the list of tags that are associated to the output
141
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
142
+     * @return string|null String including HTML tags for the header on error
143
+     */
144
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
145
+    {
146
+        try
147
+        {
148
+            $view = $this->setViewParams( $this->getView(), $tags, $expire );
149
+
150
+            $html = '';
151
+            foreach( $this->getSubClients() as $subclient ) {
152
+                $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
153
+            }
154
+            $view->favoriteHeader = $html;
155
+
156
+            /** client/html/account/favorite/standard/template-header
157
+             * Relative path to the HTML header template of the account favorite client.
158
+             *
159
+             * The template file contains the HTML code and processing instructions
160
+             * to generate the HTML code that is inserted into the HTML page header
161
+             * of the rendered page in the frontend. The configuration string is the
162
+             * path to the template file relative to the templates directory (usually
163
+             * in client/html/templates).
164
+             *
165
+             * You can overwrite the template file configuration in extensions and
166
+             * provide alternative templates. These alternative templates should be
167
+             * named like the default one but with the string "standard" replaced by
168
+             * an unique name. You may use the name of your project for this. If
169
+             * you've implemented an alternative client class as well, "standard"
170
+             * should be replaced by the name of the new class.
171
+             *
172
+             * @param string Relative path to the template creating code for the HTML page head
173
+             * @since 2014.03
174
+             * @category Developer
175
+             * @see client/html/account/favorite/standard/template-body
176
+             */
177
+            $tplconf = 'client/html/account/favorite/standard/template-header';
178
+            $default = 'account/favorite/header-default.php';
179
+
180
+            return $view->render( $view->config( $tplconf, $default ) );
181
+        }
182
+        catch( \Exception $e )
183
+        {
184
+            $this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
185
+        }
186
+    }
187
+
188
+
189
+    /**
190
+     * Returns the sub-client given by its name.
191
+     *
192
+     * @param string $type Name of the client type
193
+     * @param string|null $name Name of the sub-client (Default if null)
194
+     * @return \Aimeos\Client\Html\Iface Sub-client object
195
+     */
196
+    public function getSubClient( $type, $name = null )
197
+    {
198
+        /** client/html/account/favorite/decorators/excludes
199
+         * Excludes decorators added by the "common" option from the account favorite html client
200
+         *
201
+         * Decorators extend the functionality of a class by adding new aspects
202
+         * (e.g. log what is currently done), executing the methods of the underlying
203
+         * class only in certain conditions (e.g. only for logged in users) or
204
+         * modify what is returned to the caller.
205
+         *
206
+         * This option allows you to remove a decorator added via
207
+         * "client/html/common/decorators/default" before they are wrapped
208
+         * around the html client.
209
+         *
210
+         *  client/html/account/favorite/decorators/excludes = array( 'decorator1' )
211
+         *
212
+         * This would remove the decorator named "decorator1" from the list of
213
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
214
+         * "client/html/common/decorators/default" to the html client.
215
+         *
216
+         * @param array List of decorator names
217
+         * @since 2014.05
218
+         * @category Developer
219
+         * @see client/html/common/decorators/default
220
+         * @see client/html/account/favorite/decorators/global
221
+         * @see client/html/account/favorite/decorators/local
222
+         */
223
+
224
+        /** client/html/account/favorite/decorators/global
225
+         * Adds a list of globally available decorators only to the account favorite html client
226
+         *
227
+         * Decorators extend the functionality of a class by adding new aspects
228
+         * (e.g. log what is currently done), executing the methods of the underlying
229
+         * class only in certain conditions (e.g. only for logged in users) or
230
+         * modify what is returned to the caller.
231
+         *
232
+         * This option allows you to wrap global decorators
233
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
234
+         *
235
+         *  client/html/account/favorite/decorators/global = array( 'decorator1' )
236
+         *
237
+         * This would add the decorator named "decorator1" defined by
238
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
239
+         *
240
+         * @param array List of decorator names
241
+         * @since 2014.05
242
+         * @category Developer
243
+         * @see client/html/common/decorators/default
244
+         * @see client/html/account/favorite/decorators/excludes
245
+         * @see client/html/account/favorite/decorators/local
246
+         */
247
+
248
+        /** client/html/account/favorite/decorators/local
249
+         * Adds a list of local decorators only to the account favorite html client
250
+         *
251
+         * Decorators extend the functionality of a class by adding new aspects
252
+         * (e.g. log what is currently done), executing the methods of the underlying
253
+         * class only in certain conditions (e.g. only for logged in users) or
254
+         * modify what is returned to the caller.
255
+         *
256
+         * This option allows you to wrap local decorators
257
+         * ("\Aimeos\Client\Html\Account\Decorator\*") around the html client.
258
+         *
259
+         *  client/html/account/favorite/decorators/local = array( 'decorator2' )
260
+         *
261
+         * This would add the decorator named "decorator2" defined by
262
+         * "\Aimeos\Client\Html\Account\Decorator\Decorator2" only to the html client.
263
+         *
264
+         * @param array List of decorator names
265
+         * @since 2014.05
266
+         * @category Developer
267
+         * @see client/html/common/decorators/default
268
+         * @see client/html/account/favorite/decorators/excludes
269
+         * @see client/html/account/favorite/decorators/global
270
+         */
271
+        return $this->createSubClient( 'account/favorite/' . $type, $name );
272
+    }
273
+
274
+
275
+    /**
276
+     * Processes the input, e.g. store given values.
277
+     * A view must be available and this method doesn't generate any output
278
+     * besides setting view variables.
279
+     */
280
+    public function process()
281
+    {
282
+        $view = $this->getView();
283
+        $context = $this->getContext();
284
+        $ids = $view->param( 'fav_id', array() );
285
+
286
+
287
+        if( $context->getUserId() != null && !empty( $ids ) )
288
+        {
289
+            $typeItem = $this->getTypeItem( 'customer/lists/type', 'product', 'favorite' );
290
+            $manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/lists' );
291
+
292
+            $search = $manager->createSearch();
293
+            $expr = array(
294
+                $search->compare( '==', 'customer.lists.parentid', $context->getUserId() ),
295
+                $search->compare( '==', 'customer.lists.refid', $ids ),
296
+                $search->compare( '==', 'customer.lists.domain', 'product' ),
297
+                $search->compare( '==', 'customer.lists.typeid', $typeItem->getId() ),
298
+            );
299
+            $search->setConditions( $search->combine( '&&', $expr ) );
300
+
301
+            $items = array();
302
+            foreach( $manager->searchItems( $search ) as $item ) {
303
+                $items[$item->getRefId()] = $item;
304
+            }
305
+
306
+
307
+            switch( $view->param( 'fav_action' ) )
308
+            {
309
+                case 'add':
310
+
311
+                    $item = $manager->createItem();
312
+                    $item->setParentId( $context->getUserId() );
313
+                    $item->setTypeId( $typeItem->getId() );
314
+                    $item->setDomain( 'product' );
315
+                    $item->setStatus( 1 );
316
+
317
+                    foreach( (array) $view->param( 'fav_id', array() ) as $id )
318
+                    {
319
+                        if( !isset( $items[$id] ) )
320
+                        {
321
+                            $item->setId( null );
322
+                            $item->setRefId( $id );
323
+
324
+                            $manager->saveItem( $item );
325
+                            $manager->moveItem( $item->getId() );
326
+                        }
327
+                    }
328
+
329
+                    break;
330
+
331
+                case 'delete':
332
+
333
+                    $listIds = array();
334
+
335
+                    foreach( (array) $view->param( 'fav_id', array() ) as $id )
336
+                    {
337
+                        if( isset( $items[$id] ) ) {
338
+                            $listIds[] = $items[$id]->getId();
339
+                        }
340
+                    }
341
+
342
+                    $manager->deleteItems( $listIds );
343
+                    break;
344
+            }
345
+        }
346
+
347
+        parent::process();
348
+    }
349
+
350
+
351
+    /**
352
+     * Returns the list of sub-client names configured for the client.
353
+     *
354
+     * @return array List of HTML client names
355
+     */
356
+    protected function getSubClientNames()
357
+    {
358
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
359
+    }
360
+
361
+
362
+    /**
363
+     * Returns the sanitized page from the parameters for the product list.
364
+     *
365
+     * @param \Aimeos\MW\View\Iface $view View instance with helper for retrieving the required parameters
366
+     * @return integer Page number starting from 1
367
+     */
368
+    protected function getProductListPage( \Aimeos\MW\View\Iface $view )
369
+    {
370
+        $page = (int) $view->param( 'fav_page', 1 );
371
+        return ( $page < 1 ? 1 : $page );
372
+    }
373
+
374
+
375
+    /**
376
+     * Returns the sanitized page size from the parameters for the product list.
377
+     *
378
+     * @param \Aimeos\MW\View\Iface $view View instance with helper for retrieving the required parameters
379
+     * @return integer Page size
380
+     */
381
+    protected function getProductListSize( \Aimeos\MW\View\Iface $view )
382
+    {
383
+        /** client/html/account/favorite/size
384
+         * The number of products shown in a list page for favorite products
385
+         *
386
+         * Limits the number of products that is shown in the list pages to the
387
+         * given value. If more products are available, the products are split
388
+         * into bunches which will be shown on their own list page. The user is
389
+         * able to move to the next page (or previous one if it's not the first)
390
+         * to display the next (or previous) products.
391
+         *
392
+         * The value must be an integer number from 1 to 100. Negative values as
393
+         * well as values above 100 are not allowed. The value can be overwritten
394
+         * per request if the "l_size" parameter is part of the URL.
395
+         *
396
+         * @param integer Number of products
397
+         * @since 2014.09
398
+         * @category User
399
+         * @category Developer
400
+         * @see client/html/catalog/lists/size
401
+         */
402
+        $defaultSize = $this->getContext()->getConfig()->get( 'client/html/account/favorite/size', 48 );
403
+
404
+        $size = (int) $view->param( 'fav-size', $defaultSize );
405
+        return ( $size < 1 || $size > 100 ? $defaultSize : $size );
406
+    }
407
+
408
+
409
+    /**
410
+     * Sets the necessary parameter values in the view.
411
+     *
412
+     * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
413
+     * @param array &$tags Result array for the list of tags that are associated to the output
414
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
415
+     * @return \Aimeos\MW\View\Iface Modified view object
416
+     */
417
+    protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
418
+    {
419
+        if( !isset( $this->cache ) )
420
+        {
421
+            $total = 0;
422
+            $productIds = array();
423
+            $context = $this->getContext();
424
+            $typeItem = $this->getTypeItem( 'customer/lists/type', 'product', 'favorite' );
425
+
426
+            $size = $this->getProductListSize( $view );
427
+            $current = $this->getProductListPage( $view );
428
+            $last = ( $total != 0 ? ceil( $total / $size ) : 1 );
429
+
430
+
431
+            $manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/lists' );
432
+
433
+            $search = $manager->createSearch();
434
+            $expr = array(
435
+                $search->compare( '==', 'customer.lists.parentid', $context->getUserId() ),
436
+                $search->compare( '==', 'customer.lists.typeid', $typeItem->getId() ),
437
+                $search->compare( '==', 'customer.lists.domain', 'product' ),
438
+            );
439
+            $search->setConditions( $search->combine( '&&', $expr ) );
440
+            $search->setSortations( array( $search->sort( '-', 'customer.lists.position' ) ) );
441
+            $search->setSlice( ( $current - 1 ) * $size, $size );
442
+
443
+            $view->favoriteListItems = $manager->searchItems( $search, array(), $total );
444
+
445
+
446
+            /** client/html/account/favorite/domains
447
+             * A list of domain names whose items should be available in the account favorite view template
448
+             *
449
+             * The templates rendering product details usually add the images,
450
+             * prices and texts associated to the product item. If you want to
451
+             * display additional or less content, you can configure your own
452
+             * list of domains (attribute, media, price, product, text, etc. are
453
+             * domains) whose items are fetched from the storage. Please keep
454
+             * in mind that the more domains you add to the configuration, the
455
+             * more time is required for fetching the content!
456
+             *
457
+             * @param array List of domain names
458
+             * @since 2014.09
459
+             * @category Developer
460
+             * @see client/html/catalog/domains
461
+             */
462
+            $default = array( 'text', 'price', 'media' );
463
+            $domains = $context->getConfig()->get( 'client/html/account/favorite/domains', $default );
464
+
465
+            foreach( $view->favoriteListItems as $listItem ) {
466
+                $productIds[] = $listItem->getRefId();
467
+            }
468
+
469
+            $controller = \Aimeos\Controller\Frontend\Factory::createController( $context, 'catalog' );
470
+
471
+            $view->favoriteProductItems = $controller->getProductItems( $productIds, $domains );
472
+            $view->favoritePageFirst = 1;
473
+            $view->favoritePagePrev = ( $current > 1 ? $current - 1 : 1 );
474
+            $view->favoritePageNext = ( $current < $last ? $current + 1 : $last );
475
+            $view->favoritePageLast = $last;
476
+            $view->favoritePageCurr = $current;
477
+
478
+            $this->cache = $view;
479
+        }
480
+
481
+        return $this->cache;
482
+    }
483 483
 }
484 484
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +80 added lines, -80 removed lines patch added patch discarded remove patch
@@ -68,42 +68,42 @@  discard block
 block discarded – undo
68 68
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
69 69
 	 * @return string HTML code
70 70
 	 */
71
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
72 72
 	{
73 73
 		$context = $this->getContext();
74 74
 		$view = $this->getView();
75 75
 
76 76
 		try
77 77
 		{
78
-			$view = $this->setViewParams( $view, $tags, $expire );
78
+			$view = $this->setViewParams($view, $tags, $expire);
79 79
 
80 80
 			$html = '';
81
-			foreach( $this->getSubClients() as $subclient ) {
82
-				$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
81
+			foreach ($this->getSubClients() as $subclient) {
82
+				$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
83 83
 			}
84 84
 			$view->favoriteBody = $html;
85 85
 		}
86
-		catch( \Aimeos\Client\Html\Exception $e )
86
+		catch (\Aimeos\Client\Html\Exception $e)
87 87
 		{
88
-			$error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
89
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
88
+			$error = array($this->getContext()->getI18n()->dt('client', $e->getMessage()));
89
+			$view->favoriteErrorList = $view->get('favoriteErrorList', array()) + $error;
90 90
 		}
91
-		catch( \Aimeos\Controller\Frontend\Exception $e )
91
+		catch (\Aimeos\Controller\Frontend\Exception $e)
92 92
 		{
93
-			$error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
94
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
93
+			$error = array($this->getContext()->getI18n()->dt('controller/frontend', $e->getMessage()));
94
+			$view->favoriteErrorList = $view->get('favoriteErrorList', array()) + $error;
95 95
 		}
96
-		catch( \Aimeos\MShop\Exception $e )
96
+		catch (\Aimeos\MShop\Exception $e)
97 97
 		{
98
-			$error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
99
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
98
+			$error = array($this->getContext()->getI18n()->dt('mshop', $e->getMessage()));
99
+			$view->favoriteErrorList = $view->get('favoriteErrorList', array()) + $error;
100 100
 		}
101
-		catch( \Exception $e )
101
+		catch (\Exception $e)
102 102
 		{
103
-			$context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
103
+			$context->getLogger()->log($e->getMessage().PHP_EOL.$e->getTraceAsString());
104 104
 
105
-			$error = array( $context->getI18n()->dt( 'client', 'A non-recoverable error occured' ) );
106
-			$view->favoriteErrorList = $view->get( 'favoriteErrorList', array() ) + $error;
105
+			$error = array($context->getI18n()->dt('client', 'A non-recoverable error occured'));
106
+			$view->favoriteErrorList = $view->get('favoriteErrorList', array()) + $error;
107 107
 		}
108 108
 
109 109
 		/** client/html/account/favorite/standard/template-body
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
 		$tplconf = 'client/html/account/favorite/standard/template-body';
130 130
 		$default = 'account/favorite/body-default.php';
131 131
 
132
-		return $view->render( $view->config( $tplconf, $default ) );
132
+		return $view->render($view->config($tplconf, $default));
133 133
 	}
134 134
 
135 135
 
@@ -141,15 +141,15 @@  discard block
 block discarded – undo
141 141
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
142 142
 	 * @return string|null String including HTML tags for the header on error
143 143
 	 */
144
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
144
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
145 145
 	{
146 146
 		try
147 147
 		{
148
-			$view = $this->setViewParams( $this->getView(), $tags, $expire );
148
+			$view = $this->setViewParams($this->getView(), $tags, $expire);
149 149
 
150 150
 			$html = '';
151
-			foreach( $this->getSubClients() as $subclient ) {
152
-				$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
151
+			foreach ($this->getSubClients() as $subclient) {
152
+				$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
153 153
 			}
154 154
 			$view->favoriteHeader = $html;
155 155
 
@@ -177,11 +177,11 @@  discard block
 block discarded – undo
177 177
 			$tplconf = 'client/html/account/favorite/standard/template-header';
178 178
 			$default = 'account/favorite/header-default.php';
179 179
 
180
-			return $view->render( $view->config( $tplconf, $default ) );
180
+			return $view->render($view->config($tplconf, $default));
181 181
 		}
182
-		catch( \Exception $e )
182
+		catch (\Exception $e)
183 183
 		{
184
-			$this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
184
+			$this->getContext()->getLogger()->log($e->getMessage().PHP_EOL.$e->getTraceAsString());
185 185
 		}
186 186
 	}
187 187
 
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 	 * @param string|null $name Name of the sub-client (Default if null)
194 194
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
195 195
 	 */
196
-	public function getSubClient( $type, $name = null )
196
+	public function getSubClient($type, $name = null)
197 197
 	{
198 198
 		/** client/html/account/favorite/decorators/excludes
199 199
 		 * Excludes decorators added by the "common" option from the account favorite html client
@@ -268,7 +268,7 @@  discard block
 block discarded – undo
268 268
 		 * @see client/html/account/favorite/decorators/excludes
269 269
 		 * @see client/html/account/favorite/decorators/global
270 270
 		 */
271
-		return $this->createSubClient( 'account/favorite/' . $type, $name );
271
+		return $this->createSubClient('account/favorite/'.$type, $name);
272 272
 	}
273 273
 
274 274
 
@@ -281,48 +281,48 @@  discard block
 block discarded – undo
281 281
 	{
282 282
 		$view = $this->getView();
283 283
 		$context = $this->getContext();
284
-		$ids = $view->param( 'fav_id', array() );
284
+		$ids = $view->param('fav_id', array());
285 285
 
286 286
 
287
-		if( $context->getUserId() != null && !empty( $ids ) )
287
+		if ($context->getUserId() != null && !empty($ids))
288 288
 		{
289
-			$typeItem = $this->getTypeItem( 'customer/lists/type', 'product', 'favorite' );
290
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/lists' );
289
+			$typeItem = $this->getTypeItem('customer/lists/type', 'product', 'favorite');
290
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'customer/lists');
291 291
 
292 292
 			$search = $manager->createSearch();
293 293
 			$expr = array(
294
-				$search->compare( '==', 'customer.lists.parentid', $context->getUserId() ),
295
-				$search->compare( '==', 'customer.lists.refid', $ids ),
296
-				$search->compare( '==', 'customer.lists.domain', 'product' ),
297
-				$search->compare( '==', 'customer.lists.typeid', $typeItem->getId() ),
294
+				$search->compare('==', 'customer.lists.parentid', $context->getUserId()),
295
+				$search->compare('==', 'customer.lists.refid', $ids),
296
+				$search->compare('==', 'customer.lists.domain', 'product'),
297
+				$search->compare('==', 'customer.lists.typeid', $typeItem->getId()),
298 298
 			);
299
-			$search->setConditions( $search->combine( '&&', $expr ) );
299
+			$search->setConditions($search->combine('&&', $expr));
300 300
 
301 301
 			$items = array();
302
-			foreach( $manager->searchItems( $search ) as $item ) {
302
+			foreach ($manager->searchItems($search) as $item) {
303 303
 				$items[$item->getRefId()] = $item;
304 304
 			}
305 305
 
306 306
 
307
-			switch( $view->param( 'fav_action' ) )
307
+			switch ($view->param('fav_action'))
308 308
 			{
309 309
 				case 'add':
310 310
 
311 311
 					$item = $manager->createItem();
312
-					$item->setParentId( $context->getUserId() );
313
-					$item->setTypeId( $typeItem->getId() );
314
-					$item->setDomain( 'product' );
315
-					$item->setStatus( 1 );
312
+					$item->setParentId($context->getUserId());
313
+					$item->setTypeId($typeItem->getId());
314
+					$item->setDomain('product');
315
+					$item->setStatus(1);
316 316
 
317
-					foreach( (array) $view->param( 'fav_id', array() ) as $id )
317
+					foreach ((array) $view->param('fav_id', array()) as $id)
318 318
 					{
319
-						if( !isset( $items[$id] ) )
319
+						if (!isset($items[$id]))
320 320
 						{
321
-							$item->setId( null );
322
-							$item->setRefId( $id );
321
+							$item->setId(null);
322
+							$item->setRefId($id);
323 323
 
324
-							$manager->saveItem( $item );
325
-							$manager->moveItem( $item->getId() );
324
+							$manager->saveItem($item);
325
+							$manager->moveItem($item->getId());
326 326
 						}
327 327
 					}
328 328
 
@@ -332,14 +332,14 @@  discard block
 block discarded – undo
332 332
 
333 333
 					$listIds = array();
334 334
 
335
-					foreach( (array) $view->param( 'fav_id', array() ) as $id )
335
+					foreach ((array) $view->param('fav_id', array()) as $id)
336 336
 					{
337
-						if( isset( $items[$id] ) ) {
337
+						if (isset($items[$id])) {
338 338
 							$listIds[] = $items[$id]->getId();
339 339
 						}
340 340
 					}
341 341
 
342
-					$manager->deleteItems( $listIds );
342
+					$manager->deleteItems($listIds);
343 343
 					break;
344 344
 			}
345 345
 		}
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 	 */
356 356
 	protected function getSubClientNames()
357 357
 	{
358
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
358
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
359 359
 	}
360 360
 
361 361
 
@@ -365,10 +365,10 @@  discard block
 block discarded – undo
365 365
 	 * @param \Aimeos\MW\View\Iface $view View instance with helper for retrieving the required parameters
366 366
 	 * @return integer Page number starting from 1
367 367
 	 */
368
-	protected function getProductListPage( \Aimeos\MW\View\Iface $view )
368
+	protected function getProductListPage(\Aimeos\MW\View\Iface $view)
369 369
 	{
370
-		$page = (int) $view->param( 'fav_page', 1 );
371
-		return ( $page < 1 ? 1 : $page );
370
+		$page = (int) $view->param('fav_page', 1);
371
+		return ($page < 1 ? 1 : $page);
372 372
 	}
373 373
 
374 374
 
@@ -378,7 +378,7 @@  discard block
 block discarded – undo
378 378
 	 * @param \Aimeos\MW\View\Iface $view View instance with helper for retrieving the required parameters
379 379
 	 * @return integer Page size
380 380
 	 */
381
-	protected function getProductListSize( \Aimeos\MW\View\Iface $view )
381
+	protected function getProductListSize(\Aimeos\MW\View\Iface $view)
382 382
 	{
383 383
 		/** client/html/account/favorite/size
384 384
 		 * The number of products shown in a list page for favorite products
@@ -399,10 +399,10 @@  discard block
 block discarded – undo
399 399
 		 * @category Developer
400 400
 		 * @see client/html/catalog/lists/size
401 401
 		 */
402
-		$defaultSize = $this->getContext()->getConfig()->get( 'client/html/account/favorite/size', 48 );
402
+		$defaultSize = $this->getContext()->getConfig()->get('client/html/account/favorite/size', 48);
403 403
 
404
-		$size = (int) $view->param( 'fav-size', $defaultSize );
405
-		return ( $size < 1 || $size > 100 ? $defaultSize : $size );
404
+		$size = (int) $view->param('fav-size', $defaultSize);
405
+		return ($size < 1 || $size > 100 ? $defaultSize : $size);
406 406
 	}
407 407
 
408 408
 
@@ -414,33 +414,33 @@  discard block
 block discarded – undo
414 414
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
415 415
 	 * @return \Aimeos\MW\View\Iface Modified view object
416 416
 	 */
417
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
417
+	protected function setViewParams(\Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null)
418 418
 	{
419
-		if( !isset( $this->cache ) )
419
+		if (!isset($this->cache))
420 420
 		{
421 421
 			$total = 0;
422 422
 			$productIds = array();
423 423
 			$context = $this->getContext();
424
-			$typeItem = $this->getTypeItem( 'customer/lists/type', 'product', 'favorite' );
424
+			$typeItem = $this->getTypeItem('customer/lists/type', 'product', 'favorite');
425 425
 
426
-			$size = $this->getProductListSize( $view );
427
-			$current = $this->getProductListPage( $view );
428
-			$last = ( $total != 0 ? ceil( $total / $size ) : 1 );
426
+			$size = $this->getProductListSize($view);
427
+			$current = $this->getProductListPage($view);
428
+			$last = ($total != 0 ? ceil($total / $size) : 1);
429 429
 
430 430
 
431
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'customer/lists' );
431
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'customer/lists');
432 432
 
433 433
 			$search = $manager->createSearch();
434 434
 			$expr = array(
435
-				$search->compare( '==', 'customer.lists.parentid', $context->getUserId() ),
436
-				$search->compare( '==', 'customer.lists.typeid', $typeItem->getId() ),
437
-				$search->compare( '==', 'customer.lists.domain', 'product' ),
435
+				$search->compare('==', 'customer.lists.parentid', $context->getUserId()),
436
+				$search->compare('==', 'customer.lists.typeid', $typeItem->getId()),
437
+				$search->compare('==', 'customer.lists.domain', 'product'),
438 438
 			);
439
-			$search->setConditions( $search->combine( '&&', $expr ) );
440
-			$search->setSortations( array( $search->sort( '-', 'customer.lists.position' ) ) );
441
-			$search->setSlice( ( $current - 1 ) * $size, $size );
439
+			$search->setConditions($search->combine('&&', $expr));
440
+			$search->setSortations(array($search->sort('-', 'customer.lists.position')));
441
+			$search->setSlice(($current - 1) * $size, $size);
442 442
 
443
-			$view->favoriteListItems = $manager->searchItems( $search, array(), $total );
443
+			$view->favoriteListItems = $manager->searchItems($search, array(), $total);
444 444
 
445 445
 
446 446
 			/** client/html/account/favorite/domains
@@ -459,19 +459,19 @@  discard block
 block discarded – undo
459 459
 			 * @category Developer
460 460
 			 * @see client/html/catalog/domains
461 461
 			 */
462
-			$default = array( 'text', 'price', 'media' );
463
-			$domains = $context->getConfig()->get( 'client/html/account/favorite/domains', $default );
462
+			$default = array('text', 'price', 'media');
463
+			$domains = $context->getConfig()->get('client/html/account/favorite/domains', $default);
464 464
 
465
-			foreach( $view->favoriteListItems as $listItem ) {
465
+			foreach ($view->favoriteListItems as $listItem) {
466 466
 				$productIds[] = $listItem->getRefId();
467 467
 			}
468 468
 
469
-			$controller = \Aimeos\Controller\Frontend\Factory::createController( $context, 'catalog' );
469
+			$controller = \Aimeos\Controller\Frontend\Factory::createController($context, 'catalog');
470 470
 
471
-			$view->favoriteProductItems = $controller->getProductItems( $productIds, $domains );
471
+			$view->favoriteProductItems = $controller->getProductItems($productIds, $domains);
472 472
 			$view->favoritePageFirst = 1;
473
-			$view->favoritePagePrev = ( $current > 1 ? $current - 1 : 1 );
474
-			$view->favoritePageNext = ( $current < $last ? $current + 1 : $last );
473
+			$view->favoritePagePrev = ($current > 1 ? $current - 1 : 1);
474
+			$view->favoritePageNext = ($current < $last ? $current + 1 : $last);
475 475
 			$view->favoritePageLast = $last;
476 476
 			$view->favoritePageCurr = $current;
477 477
 
Please login to merge, or discard this patch.
Braces   +5 added lines, -10 removed lines patch added patch discarded remove patch
@@ -82,23 +82,19 @@  discard block
 block discarded – undo
82 82
 				$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
83 83
 			}
84 84
 			$view->watchBody = $html;
85
-		}
86
-		catch( \Aimeos\Client\Html\Exception $e )
85
+		} catch( \Aimeos\Client\Html\Exception $e )
87 86
 		{
88 87
 			$error = array( $this->getContext()->getI18n()->dt( 'client', $e->getMessage() ) );
89 88
 			$view->watchErrorList = $view->get( 'watchErrorList', array() ) + $error;
90
-		}
91
-		catch( \Aimeos\Controller\Frontend\Exception $e )
89
+		} catch( \Aimeos\Controller\Frontend\Exception $e )
92 90
 		{
93 91
 			$error = array( $this->getContext()->getI18n()->dt( 'controller/frontend', $e->getMessage() ) );
94 92
 			$view->watchErrorList = $view->get( 'watchErrorList', array() ) + $error;
95
-		}
96
-		catch( \Aimeos\MShop\Exception $e )
93
+		} catch( \Aimeos\MShop\Exception $e )
97 94
 		{
98 95
 			$error = array( $this->getContext()->getI18n()->dt( 'mshop', $e->getMessage() ) );
99 96
 			$view->watchErrorList = $view->get( 'watchErrorList', array() ) + $error;
100
-		}
101
-		catch( \Exception $e )
97
+		} catch( \Exception $e )
102 98
 		{
103 99
 			$context->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
104 100
 
@@ -178,8 +174,7 @@  discard block
 block discarded – undo
178 174
 			$default = 'account/watch/header-default.php';
179 175
 
180 176
 			return $view->render( $view->config( $tplconf, $default ) );
181
-		}
182
-		catch( \Exception $e )
177
+		} catch( \Exception $e )
183 178
 		{
184 179
 			$this->getContext()->getLogger()->log( $e->getMessage() . PHP_EOL . $e->getTraceAsString() );
185 180
 		}
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/History/Lists/Standard.php 2 patches
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -68,19 +68,19 @@  discard block
 block discarded – undo
68 68
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
69 69
 	 * @return string HTML code
70 70
 	 */
71
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
72 72
 	{
73 73
 		$view = $this->getView();
74 74
 
75
-		if( $view->param( 'his_action', 'list' ) != 'list' ) {
75
+		if ($view->param('his_action', 'list') != 'list') {
76 76
 			return '';
77 77
 		}
78 78
 
79
-		$view = $this->setViewParams( $view, $tags, $expire );
79
+		$view = $this->setViewParams($view, $tags, $expire);
80 80
 
81 81
 		$html = '';
82
-		foreach( $this->getSubClients() as $subclient ) {
83
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
82
+		foreach ($this->getSubClients() as $subclient) {
83
+			$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
84 84
 		}
85 85
 		$view->listsBody = $html;
86 86
 
@@ -107,7 +107,7 @@  discard block
 block discarded – undo
107 107
 		$tplconf = 'client/html/account/history/lists/standard/template-body';
108 108
 		$default = 'account/history/list-body-default.php';
109 109
 
110
-		return $view->render( $view->config( $tplconf, $default ) );
110
+		return $view->render($view->config($tplconf, $default));
111 111
 	}
112 112
 
113 113
 
@@ -119,19 +119,19 @@  discard block
 block discarded – undo
119 119
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
120 120
 	 * @return string|null String including HTML tags for the header on error
121 121
 	 */
122
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
122
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
123 123
 	{
124 124
 		$view = $this->getView();
125 125
 
126
-		if( $view->param( 'his_action', 'list' ) != 'list' ) {
126
+		if ($view->param('his_action', 'list') != 'list') {
127 127
 			return '';
128 128
 		}
129 129
 
130
-		$view = $this->setViewParams( $view, $tags, $expire );
130
+		$view = $this->setViewParams($view, $tags, $expire);
131 131
 
132 132
 		$html = '';
133
-		foreach( $this->getSubClients() as $subclient ) {
134
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
133
+		foreach ($this->getSubClients() as $subclient) {
134
+			$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
135 135
 		}
136 136
 		$view->listsHeader = $html;
137 137
 
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 		$tplconf = 'client/html/account/history/lists/standard/template-header';
160 160
 		$default = 'account/history/list-header-default.php';
161 161
 
162
-		return $view->render( $view->config( $tplconf, $default ) );
162
+		return $view->render($view->config($tplconf, $default));
163 163
 	}
164 164
 
165 165
 
@@ -170,7 +170,7 @@  discard block
 block discarded – undo
170 170
 	 * @param string|null $name Name of the sub-client (Default if null)
171 171
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
172 172
 	 */
173
-	public function getSubClient( $type, $name = null )
173
+	public function getSubClient($type, $name = null)
174 174
 	{
175 175
 		/** client/html/account/history/lists/decorators/excludes
176 176
 		 * Excludes decorators added by the "common" option from the account history list html client
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
 		 * @see client/html/account/history/lists/decorators/global
247 247
 		 */
248 248
 
249
-		return $this->createSubClient( 'account/history/lists/' . $type, $name );
249
+		return $this->createSubClient('account/history/lists/'.$type, $name);
250 250
 	}
251 251
 
252 252
 
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
 	 */
258 258
 	protected function getSubClientNames()
259 259
 	{
260
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
260
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
261 261
 	}
262 262
 
263 263
 
@@ -269,24 +269,24 @@  discard block
 block discarded – undo
269 269
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
270 270
 	 * @return \Aimeos\MW\View\Iface Modified view object
271 271
 	 */
272
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
272
+	protected function setViewParams(\Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null)
273 273
 	{
274
-		if( !isset( $this->cache ) )
274
+		if (!isset($this->cache))
275 275
 		{
276 276
 			$context = $this->getContext();
277
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'order' );
277
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'order');
278 278
 
279 279
 
280
-			$search = $manager->createSearch( true );
280
+			$search = $manager->createSearch(true);
281 281
 			$expr = array(
282 282
 				$search->getConditions(),
283
-				$search->compare( '==', 'order.base.customerid', $context->getUserId() ),
283
+				$search->compare('==', 'order.base.customerid', $context->getUserId()),
284 284
 			);
285
-			$search->setConditions( $search->combine( '&&', $expr ) );
286
-			$search->setSortations( array( $search->sort( '-', 'order.id' ) ) );
285
+			$search->setConditions($search->combine('&&', $expr));
286
+			$search->setSortations(array($search->sort('-', 'order.id')));
287 287
 
288 288
 
289
-			$view->listsOrderItems = $manager->searchItems( $search );
289
+			$view->listsOrderItems = $manager->searchItems($search);
290 290
 
291 291
 			$this->cache = $view;
292 292
 		}
Please login to merge, or discard this patch.
Indentation   +273 added lines, -273 removed lines patch added patch discarded remove patch
@@ -19,278 +19,278 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
-	implements \Aimeos\Client\Html\Common\Client\Factory\Iface
22
+    extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
+    implements \Aimeos\Client\Html\Common\Client\Factory\Iface
24 24
 {
25
-	/** client/html/account/history/lists/standard/subparts
26
-	 * List of HTML sub-clients rendered within the account history list section
27
-	 *
28
-	 * The output of the frontend is composed of the code generated by the HTML
29
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
30
-	 * that are responsible for rendering certain sub-parts of the output. The
31
-	 * sub-clients can contain HTML clients themselves and therefore a
32
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
33
-	 * the output that is placed inside the container of its parent.
34
-	 *
35
-	 * At first, always the HTML code generated by the parent is printed, then
36
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
37
-	 * determines the order of the output of these sub-clients inside the parent
38
-	 * container. If the configured list of clients is
39
-	 *
40
-	 *  array( "subclient1", "subclient2" )
41
-	 *
42
-	 * you can easily change the order of the output by reordering the subparts:
43
-	 *
44
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
-	 *
46
-	 * You can also remove one or more parts if they shouldn't be rendered:
47
-	 *
48
-	 *  client/html/<clients>/subparts = array( "subclient1" )
49
-	 *
50
-	 * As the clients only generates structural HTML, the layout defined via CSS
51
-	 * should support adding, removing or reordering content by a fluid like
52
-	 * design.
53
-	 *
54
-	 * @param array List of sub-client names
55
-	 * @since 2014.03
56
-	 * @category Developer
57
-	 */
58
-	private $subPartPath = 'client/html/account/history/lists/standard/subparts';
59
-	private $subPartNames = array();
60
-	private $cache;
61
-
62
-
63
-	/**
64
-	 * Returns the HTML code for insertion into the body.
65
-	 *
66
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
67
-	 * @param array &$tags Result array for the list of tags that are associated to the output
68
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
69
-	 * @return string HTML code
70
-	 */
71
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
72
-	{
73
-		$view = $this->getView();
74
-
75
-		if( $view->param( 'his_action', 'list' ) != 'list' ) {
76
-			return '';
77
-		}
78
-
79
-		$view = $this->setViewParams( $view, $tags, $expire );
80
-
81
-		$html = '';
82
-		foreach( $this->getSubClients() as $subclient ) {
83
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
84
-		}
85
-		$view->listsBody = $html;
86
-
87
-		/** client/html/account/history/lists/standard/template-body
88
-		 * Relative path to the HTML body template of the account history list client.
89
-		 *
90
-		 * The template file contains the HTML code and processing instructions
91
-		 * to generate the result shown in the body of the frontend. The
92
-		 * configuration string is the path to the template file relative
93
-		 * to the templates directory (usually in client/html/templates).
94
-		 *
95
-		 * You can overwrite the template file configuration in extensions and
96
-		 * provide alternative templates. These alternative templates should be
97
-		 * named like the default one but with the string "standard" replaced by
98
-		 * an unique name. You may use the name of your project for this. If
99
-		 * you've implemented an alternative client class as well, "standard"
100
-		 * should be replaced by the name of the new class.
101
-		 *
102
-		 * @param string Relative path to the template creating code for the HTML page body
103
-		 * @since 2014.03
104
-		 * @category Developer
105
-		 * @see client/html/account/history/lists/standard/template-header
106
-		 */
107
-		$tplconf = 'client/html/account/history/lists/standard/template-body';
108
-		$default = 'account/history/list-body-default.php';
109
-
110
-		return $view->render( $view->config( $tplconf, $default ) );
111
-	}
112
-
113
-
114
-	/**
115
-	 * Returns the HTML string for insertion into the header.
116
-	 *
117
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
118
-	 * @param array &$tags Result array for the list of tags that are associated to the output
119
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
120
-	 * @return string String including HTML tags for the header on error
121
-	 */
122
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
123
-	{
124
-		$view = $this->getView();
125
-
126
-		if( $view->param( 'his_action', 'list' ) != 'list' ) {
127
-			return '';
128
-		}
129
-
130
-		$view = $this->setViewParams( $view, $tags, $expire );
131
-
132
-		$html = '';
133
-		foreach( $this->getSubClients() as $subclient ) {
134
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
135
-		}
136
-		$view->listsHeader = $html;
137
-
138
-		/** client/html/account/history/lists/standard/template-header
139
-		 * Relative path to the HTML header template of the account history list client.
140
-		 *
141
-		 * The template file contains the HTML code and processing instructions
142
-		 * to generate the HTML code that is inserted into the HTML page header
143
-		 * of the rendered page in the frontend. The configuration string is the
144
-		 * path to the template file relative to the templates directory (usually
145
-		 * in client/html/templates).
146
-		 *
147
-		 * You can overwrite the template file configuration in extensions and
148
-		 * provide alternative templates. These alternative templates should be
149
-		 * named like the default one but with the string "standard" replaced by
150
-		 * an unique name. You may use the name of your project for this. If
151
-		 * you've implemented an alternative client class as well, "standard"
152
-		 * should be replaced by the name of the new class.
153
-		 *
154
-		 * @param string Relative path to the template creating code for the HTML page head
155
-		 * @since 2014.03
156
-		 * @category Developer
157
-		 * @see client/html/account/history/lists/standard/template-body
158
-		 */
159
-		$tplconf = 'client/html/account/history/lists/standard/template-header';
160
-		$default = 'account/history/list-header-default.php';
161
-
162
-		return $view->render( $view->config( $tplconf, $default ) );
163
-	}
164
-
165
-
166
-	/**
167
-	 * Returns the sub-client given by its name.
168
-	 *
169
-	 * @param string $type Name of the client type
170
-	 * @param string|null $name Name of the sub-client (Default if null)
171
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
172
-	 */
173
-	public function getSubClient( $type, $name = null )
174
-	{
175
-		/** client/html/account/history/lists/decorators/excludes
176
-		 * Excludes decorators added by the "common" option from the account history list html client
177
-		 *
178
-		 * Decorators extend the functionality of a class by adding new aspects
179
-		 * (e.g. log what is currently done), executing the methods of the underlying
180
-		 * class only in certain conditions (e.g. only for logged in users) or
181
-		 * modify what is returned to the caller.
182
-		 *
183
-		 * This option allows you to remove a decorator added via
184
-		 * "client/html/common/decorators/default" before they are wrapped
185
-		 * around the html client.
186
-		 *
187
-		 *  client/html/account/history/lists/decorators/excludes = array( 'decorator1' )
188
-		 *
189
-		 * This would remove the decorator named "decorator1" from the list of
190
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
191
-		 * "client/html/common/decorators/default" to the html client.
192
-		 *
193
-		 * @param array List of decorator names
194
-		 * @since 2015.08
195
-		 * @category Developer
196
-		 * @see client/html/common/decorators/default
197
-		 * @see client/html/account/history/lists/decorators/global
198
-		 * @see client/html/account/history/lists/decorators/local
199
-		 */
200
-
201
-		/** client/html/account/history/lists/decorators/global
202
-		 * Adds a list of globally available decorators only to the account history list html client
203
-		 *
204
-		 * Decorators extend the functionality of a class by adding new aspects
205
-		 * (e.g. log what is currently done), executing the methods of the underlying
206
-		 * class only in certain conditions (e.g. only for logged in users) or
207
-		 * modify what is returned to the caller.
208
-		 *
209
-		 * This option allows you to wrap global decorators
210
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
211
-		 *
212
-		 *  client/html/account/history/lists/decorators/global = array( 'decorator1' )
213
-		 *
214
-		 * This would add the decorator named "decorator1" defined by
215
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
216
-		 *
217
-		 * @param array List of decorator names
218
-		 * @since 2015.08
219
-		 * @category Developer
220
-		 * @see client/html/common/decorators/default
221
-		 * @see client/html/account/history/lists/decorators/excludes
222
-		 * @see client/html/account/history/lists/decorators/local
223
-		 */
224
-
225
-		/** client/html/account/history/lists/decorators/local
226
-		 * Adds a list of local decorators only to the account history list html client
227
-		 *
228
-		 * Decorators extend the functionality of a class by adding new aspects
229
-		 * (e.g. log what is currently done), executing the methods of the underlying
230
-		 * class only in certain conditions (e.g. only for logged in users) or
231
-		 * modify what is returned to the caller.
232
-		 *
233
-		 * This option allows you to wrap local decorators
234
-		 * ("\Aimeos\Client\Html\Account\Decorator\*") around the html client.
235
-		 *
236
-		 *  client/html/account/history/lists/decorators/local = array( 'decorator2' )
237
-		 *
238
-		 * This would add the decorator named "decorator2" defined by
239
-		 * "\Aimeos\Client\Html\Account\Decorator\Decorator2" only to the html client.
240
-		 *
241
-		 * @param array List of decorator names
242
-		 * @since 2015.08
243
-		 * @category Developer
244
-		 * @see client/html/common/decorators/default
245
-		 * @see client/html/account/history/lists/decorators/excludes
246
-		 * @see client/html/account/history/lists/decorators/global
247
-		 */
248
-
249
-		return $this->createSubClient( 'account/history/lists/' . $type, $name );
250
-	}
251
-
252
-
253
-	/**
254
-	 * Returns the list of sub-client names configured for the client.
255
-	 *
256
-	 * @return array List of HTML client names
257
-	 */
258
-	protected function getSubClientNames()
259
-	{
260
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
261
-	}
262
-
263
-
264
-	/**
265
-	 * Sets the necessary parameter values in the view.
266
-	 *
267
-	 * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
268
-	 * @param array &$tags Result array for the list of tags that are associated to the output
269
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
270
-	 * @return \Aimeos\MW\View\Iface Modified view object
271
-	 */
272
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
273
-	{
274
-		if( !isset( $this->cache ) )
275
-		{
276
-			$context = $this->getContext();
277
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'order' );
278
-
279
-
280
-			$search = $manager->createSearch( true );
281
-			$expr = array(
282
-				$search->getConditions(),
283
-				$search->compare( '==', 'order.base.customerid', $context->getUserId() ),
284
-			);
285
-			$search->setConditions( $search->combine( '&&', $expr ) );
286
-			$search->setSortations( array( $search->sort( '-', 'order.id' ) ) );
287
-
288
-
289
-			$view->listsOrderItems = $manager->searchItems( $search );
290
-
291
-			$this->cache = $view;
292
-		}
293
-
294
-		return $this->cache;
295
-	}
25
+    /** client/html/account/history/lists/standard/subparts
26
+     * List of HTML sub-clients rendered within the account history list section
27
+     *
28
+     * The output of the frontend is composed of the code generated by the HTML
29
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
30
+     * that are responsible for rendering certain sub-parts of the output. The
31
+     * sub-clients can contain HTML clients themselves and therefore a
32
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
33
+     * the output that is placed inside the container of its parent.
34
+     *
35
+     * At first, always the HTML code generated by the parent is printed, then
36
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
37
+     * determines the order of the output of these sub-clients inside the parent
38
+     * container. If the configured list of clients is
39
+     *
40
+     *  array( "subclient1", "subclient2" )
41
+     *
42
+     * you can easily change the order of the output by reordering the subparts:
43
+     *
44
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
+     *
46
+     * You can also remove one or more parts if they shouldn't be rendered:
47
+     *
48
+     *  client/html/<clients>/subparts = array( "subclient1" )
49
+     *
50
+     * As the clients only generates structural HTML, the layout defined via CSS
51
+     * should support adding, removing or reordering content by a fluid like
52
+     * design.
53
+     *
54
+     * @param array List of sub-client names
55
+     * @since 2014.03
56
+     * @category Developer
57
+     */
58
+    private $subPartPath = 'client/html/account/history/lists/standard/subparts';
59
+    private $subPartNames = array();
60
+    private $cache;
61
+
62
+
63
+    /**
64
+     * Returns the HTML code for insertion into the body.
65
+     *
66
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
67
+     * @param array &$tags Result array for the list of tags that are associated to the output
68
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
69
+     * @return string HTML code
70
+     */
71
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
72
+    {
73
+        $view = $this->getView();
74
+
75
+        if( $view->param( 'his_action', 'list' ) != 'list' ) {
76
+            return '';
77
+        }
78
+
79
+        $view = $this->setViewParams( $view, $tags, $expire );
80
+
81
+        $html = '';
82
+        foreach( $this->getSubClients() as $subclient ) {
83
+            $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
84
+        }
85
+        $view->listsBody = $html;
86
+
87
+        /** client/html/account/history/lists/standard/template-body
88
+         * Relative path to the HTML body template of the account history list client.
89
+         *
90
+         * The template file contains the HTML code and processing instructions
91
+         * to generate the result shown in the body of the frontend. The
92
+         * configuration string is the path to the template file relative
93
+         * to the templates directory (usually in client/html/templates).
94
+         *
95
+         * You can overwrite the template file configuration in extensions and
96
+         * provide alternative templates. These alternative templates should be
97
+         * named like the default one but with the string "standard" replaced by
98
+         * an unique name. You may use the name of your project for this. If
99
+         * you've implemented an alternative client class as well, "standard"
100
+         * should be replaced by the name of the new class.
101
+         *
102
+         * @param string Relative path to the template creating code for the HTML page body
103
+         * @since 2014.03
104
+         * @category Developer
105
+         * @see client/html/account/history/lists/standard/template-header
106
+         */
107
+        $tplconf = 'client/html/account/history/lists/standard/template-body';
108
+        $default = 'account/history/list-body-default.php';
109
+
110
+        return $view->render( $view->config( $tplconf, $default ) );
111
+    }
112
+
113
+
114
+    /**
115
+     * Returns the HTML string for insertion into the header.
116
+     *
117
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
118
+     * @param array &$tags Result array for the list of tags that are associated to the output
119
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
120
+     * @return string String including HTML tags for the header on error
121
+     */
122
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
123
+    {
124
+        $view = $this->getView();
125
+
126
+        if( $view->param( 'his_action', 'list' ) != 'list' ) {
127
+            return '';
128
+        }
129
+
130
+        $view = $this->setViewParams( $view, $tags, $expire );
131
+
132
+        $html = '';
133
+        foreach( $this->getSubClients() as $subclient ) {
134
+            $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
135
+        }
136
+        $view->listsHeader = $html;
137
+
138
+        /** client/html/account/history/lists/standard/template-header
139
+         * Relative path to the HTML header template of the account history list client.
140
+         *
141
+         * The template file contains the HTML code and processing instructions
142
+         * to generate the HTML code that is inserted into the HTML page header
143
+         * of the rendered page in the frontend. The configuration string is the
144
+         * path to the template file relative to the templates directory (usually
145
+         * in client/html/templates).
146
+         *
147
+         * You can overwrite the template file configuration in extensions and
148
+         * provide alternative templates. These alternative templates should be
149
+         * named like the default one but with the string "standard" replaced by
150
+         * an unique name. You may use the name of your project for this. If
151
+         * you've implemented an alternative client class as well, "standard"
152
+         * should be replaced by the name of the new class.
153
+         *
154
+         * @param string Relative path to the template creating code for the HTML page head
155
+         * @since 2014.03
156
+         * @category Developer
157
+         * @see client/html/account/history/lists/standard/template-body
158
+         */
159
+        $tplconf = 'client/html/account/history/lists/standard/template-header';
160
+        $default = 'account/history/list-header-default.php';
161
+
162
+        return $view->render( $view->config( $tplconf, $default ) );
163
+    }
164
+
165
+
166
+    /**
167
+     * Returns the sub-client given by its name.
168
+     *
169
+     * @param string $type Name of the client type
170
+     * @param string|null $name Name of the sub-client (Default if null)
171
+     * @return \Aimeos\Client\Html\Iface Sub-client object
172
+     */
173
+    public function getSubClient( $type, $name = null )
174
+    {
175
+        /** client/html/account/history/lists/decorators/excludes
176
+         * Excludes decorators added by the "common" option from the account history list html client
177
+         *
178
+         * Decorators extend the functionality of a class by adding new aspects
179
+         * (e.g. log what is currently done), executing the methods of the underlying
180
+         * class only in certain conditions (e.g. only for logged in users) or
181
+         * modify what is returned to the caller.
182
+         *
183
+         * This option allows you to remove a decorator added via
184
+         * "client/html/common/decorators/default" before they are wrapped
185
+         * around the html client.
186
+         *
187
+         *  client/html/account/history/lists/decorators/excludes = array( 'decorator1' )
188
+         *
189
+         * This would remove the decorator named "decorator1" from the list of
190
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
191
+         * "client/html/common/decorators/default" to the html client.
192
+         *
193
+         * @param array List of decorator names
194
+         * @since 2015.08
195
+         * @category Developer
196
+         * @see client/html/common/decorators/default
197
+         * @see client/html/account/history/lists/decorators/global
198
+         * @see client/html/account/history/lists/decorators/local
199
+         */
200
+
201
+        /** client/html/account/history/lists/decorators/global
202
+         * Adds a list of globally available decorators only to the account history list html client
203
+         *
204
+         * Decorators extend the functionality of a class by adding new aspects
205
+         * (e.g. log what is currently done), executing the methods of the underlying
206
+         * class only in certain conditions (e.g. only for logged in users) or
207
+         * modify what is returned to the caller.
208
+         *
209
+         * This option allows you to wrap global decorators
210
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
211
+         *
212
+         *  client/html/account/history/lists/decorators/global = array( 'decorator1' )
213
+         *
214
+         * This would add the decorator named "decorator1" defined by
215
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
216
+         *
217
+         * @param array List of decorator names
218
+         * @since 2015.08
219
+         * @category Developer
220
+         * @see client/html/common/decorators/default
221
+         * @see client/html/account/history/lists/decorators/excludes
222
+         * @see client/html/account/history/lists/decorators/local
223
+         */
224
+
225
+        /** client/html/account/history/lists/decorators/local
226
+         * Adds a list of local decorators only to the account history list html client
227
+         *
228
+         * Decorators extend the functionality of a class by adding new aspects
229
+         * (e.g. log what is currently done), executing the methods of the underlying
230
+         * class only in certain conditions (e.g. only for logged in users) or
231
+         * modify what is returned to the caller.
232
+         *
233
+         * This option allows you to wrap local decorators
234
+         * ("\Aimeos\Client\Html\Account\Decorator\*") around the html client.
235
+         *
236
+         *  client/html/account/history/lists/decorators/local = array( 'decorator2' )
237
+         *
238
+         * This would add the decorator named "decorator2" defined by
239
+         * "\Aimeos\Client\Html\Account\Decorator\Decorator2" only to the html client.
240
+         *
241
+         * @param array List of decorator names
242
+         * @since 2015.08
243
+         * @category Developer
244
+         * @see client/html/common/decorators/default
245
+         * @see client/html/account/history/lists/decorators/excludes
246
+         * @see client/html/account/history/lists/decorators/global
247
+         */
248
+
249
+        return $this->createSubClient( 'account/history/lists/' . $type, $name );
250
+    }
251
+
252
+
253
+    /**
254
+     * Returns the list of sub-client names configured for the client.
255
+     *
256
+     * @return array List of HTML client names
257
+     */
258
+    protected function getSubClientNames()
259
+    {
260
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
261
+    }
262
+
263
+
264
+    /**
265
+     * Sets the necessary parameter values in the view.
266
+     *
267
+     * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
268
+     * @param array &$tags Result array for the list of tags that are associated to the output
269
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
270
+     * @return \Aimeos\MW\View\Iface Modified view object
271
+     */
272
+    protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
273
+    {
274
+        if( !isset( $this->cache ) )
275
+        {
276
+            $context = $this->getContext();
277
+            $manager = \Aimeos\MShop\Factory::createManager( $context, 'order' );
278
+
279
+
280
+            $search = $manager->createSearch( true );
281
+            $expr = array(
282
+                $search->getConditions(),
283
+                $search->compare( '==', 'order.base.customerid', $context->getUserId() ),
284
+            );
285
+            $search->setConditions( $search->combine( '&&', $expr ) );
286
+            $search->setSortations( array( $search->sort( '-', 'order.id' ) ) );
287
+
288
+
289
+            $view->listsOrderItems = $manager->searchItems( $search );
290
+
291
+            $this->cache = $view;
292
+        }
293
+
294
+        return $this->cache;
295
+    }
296 296
 }
297 297
\ No newline at end of file
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/History/Order/Service/Standard.php 2 patches
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -66,13 +66,13 @@  discard block
 block discarded – undo
66 66
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
67 67
 	 * @return string HTML code
68 68
 	*/
69
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
69
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
70 70
 	{
71
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
71
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
72 72
 
73 73
 		$html = '';
74
-		foreach( $this->getSubClients() as $subclient ) {
75
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
74
+		foreach ($this->getSubClients() as $subclient) {
75
+			$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
76 76
 		}
77 77
 		$view->serviceBody = $html;
78 78
 
@@ -100,7 +100,7 @@  discard block
 block discarded – undo
100 100
 		$tplconf = 'client/html/account/history/order/service/standard/template-body';
101 101
 		$default = 'common/summary/service-body-default.php';
102 102
 
103
-		return $view->render( $view->config( $tplconf, $default ) );
103
+		return $view->render($view->config($tplconf, $default));
104 104
 	}
105 105
 
106 106
 
@@ -112,13 +112,13 @@  discard block
 block discarded – undo
112 112
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
113 113
 	 * @return string|null String including HTML tags for the header on error
114 114
 	 */
115
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
115
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
116 116
 	{
117
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
117
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
118 118
 
119 119
 		$html = '';
120
-		foreach( $this->getSubClients() as $subclient ) {
121
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
120
+		foreach ($this->getSubClients() as $subclient) {
121
+			$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
122 122
 		}
123 123
 		$view->serviceHeader = $html;
124 124
 
@@ -147,7 +147,7 @@  discard block
 block discarded – undo
147 147
 		$tplconf = 'client/html/account/history/order/service/standard/template-header';
148 148
 		$default = 'common/summary/service-header-default.php';
149 149
 
150
-		return $view->render( $view->config( $tplconf, $default ) );
150
+		return $view->render($view->config($tplconf, $default));
151 151
 	}
152 152
 
153 153
 
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
 	 * @param string|null $name Name of the sub-client (Default if null)
159 159
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
160 160
 	 */
161
-	public function getSubClient( $type, $name = null )
161
+	public function getSubClient($type, $name = null)
162 162
 	{
163 163
 		/** client/html/account/history/order/service/decorators/excludes
164 164
 		 * Excludes decorators added by the "common" option from the account history order service html client
@@ -233,7 +233,7 @@  discard block
 block discarded – undo
233 233
 		 * @see client/html/account/history/order/service/decorators/excludes
234 234
 		 * @see client/html/account/history/order/service/decorators/global
235 235
 		 */
236
-		return $this->createSubClient( 'account/history/order/service/' . $type, $name );
236
+		return $this->createSubClient('account/history/order/service/'.$type, $name);
237 237
 	}
238 238
 
239 239
 
@@ -244,6 +244,6 @@  discard block
 block discarded – undo
244 244
 	 */
245 245
 	protected function getSubClientNames()
246 246
 	{
247
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
247
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
248 248
 	}
249 249
 }
250 250
\ No newline at end of file
Please login to merge, or discard this patch.
Indentation   +226 added lines, -226 removed lines patch added patch discarded remove patch
@@ -19,231 +19,231 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Summary\Service\Base
22
+    extends \Aimeos\Client\Html\Common\Summary\Service\Base
23 23
 {
24
-	/** client/html/account/history/order/service/standard/subparts
25
-	 * List of HTML sub-clients rendered within the account history order service section
26
-	 *
27
-	 * The output of the frontend is composed of the code generated by the HTML
28
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
29
-	 * that are responsible for rendering certain sub-parts of the output. The
30
-	 * sub-clients can contain HTML clients themselves and therefore a
31
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
32
-	 * the output that is placed inside the container of its parent.
33
-	 *
34
-	 * At first, always the HTML code generated by the parent is printed, then
35
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
36
-	 * determines the order of the output of these sub-clients inside the parent
37
-	 * container. If the configured list of clients is
38
-	 *
39
-	 *  array( "subclient1", "subclient2" )
40
-	 *
41
-	 * you can easily change the order of the output by reordering the subparts:
42
-	 *
43
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
44
-	 *
45
-	 * You can also remove one or more parts if they shouldn't be rendered:
46
-	 *
47
-	 *  client/html/<clients>/subparts = array( "subclient1" )
48
-	 *
49
-	 * As the clients only generates structural HTML, the layout defined via CSS
50
-	 * should support adding, removing or reordering content by a fluid like
51
-	 * design.
52
-	 *
53
-	 * @param array List of sub-client names
54
-	 * @since 2015.11
55
-	 * @category Developer
56
-	 */
57
-	private $subPartPath = 'client/html/account/history/order/service/standard/subparts';
58
-	private $subPartNames = array();
59
-
60
-
61
-	/**
62
-	 * Returns the HTML code for insertion into the body.
63
-	 *
64
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
65
-	 * @param array &$tags Result array for the list of tags that are associated to the output
66
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
67
-	 * @return string HTML code
68
-	*/
69
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
-	{
71
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
72
-
73
-		$html = '';
74
-		foreach( $this->getSubClients() as $subclient ) {
75
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
76
-		}
77
-		$view->serviceBody = $html;
78
-
79
-		/** client/html/account/history/order/service/standard/template-body
80
-		 * Relative path to the HTML body template of the account history order service client.
81
-		 *
82
-		 * The template file contains the HTML code and processing instructions
83
-		 * to generate the result shown in the body of the frontend. The
84
-		 * configuration string is the path to the template file relative
85
-		 * to the templates directory (usually in client/html/templates).
86
-		 *
87
-		 * You can overwrite the template file configuration in extensions and
88
-		 * provide alternative templates. These alternative templates should be
89
-		 * named like the default one but with the string "standard" replaced by
90
-		 * an unique name. You may use the name of your project for this. If
91
-		 * you've implemented an alternative client class as well, "standard"
92
-		 * (second one) should be replaced by the name of the new class in lower
93
-		 * case.
94
-		 *
95
-		 * @param string Relative path to the template creating code for the HTML page body
96
-		 * @since 2015.11
97
-		 * @category Developer
98
-		 * @see client/html/account/history/order/service/standard/template-header
99
-		 */
100
-		$tplconf = 'client/html/account/history/order/service/standard/template-body';
101
-		$default = 'common/summary/service-body-default.php';
102
-
103
-		return $view->render( $view->config( $tplconf, $default ) );
104
-	}
105
-
106
-
107
-	/**
108
-	 * Returns the HTML string for insertion into the header.
109
-	 *
110
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
111
-	 * @param array &$tags Result array for the list of tags that are associated to the output
112
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
113
-	 * @return string String including HTML tags for the header on error
114
-	 */
115
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
116
-	{
117
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
118
-
119
-		$html = '';
120
-		foreach( $this->getSubClients() as $subclient ) {
121
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
122
-		}
123
-		$view->serviceHeader = $html;
124
-
125
-		/** client/html/account/history/order/service/standard/template-header
126
-		 * Relative path to the HTML header template of the account history order service client.
127
-		 *
128
-		 * The template file contains the HTML code and processing instructions
129
-		 * to generate the HTML code that is inserted into the HTML page header
130
-		 * of the rendered page in the frontend. The configuration string is the
131
-		 * path to the template file relative to the templates directory (usually
132
-		 * in client/html/templates).
133
-		 *
134
-		 * You can overwrite the template file configuration in extensions and
135
-		 * provide alternative templates. These alternative templates should be
136
-		 * named like the default one but with the string "standard" replaced by
137
-		 * an unique name. You may use the name of your project for this. If
138
-		 * you've implemented an alternative client class as well, "standard"
139
-		 * (second one) should be replaced by the name of the new class in lower
140
-		 * case.
141
-		 *
142
-		 * @param string Relative path to the template creating code for the HTML page head
143
-		 * @since 2015.11
144
-		 * @category Developer
145
-		 * @see client/html/account/history/order/service/standard/template-body
146
-		 */
147
-		$tplconf = 'client/html/account/history/order/service/standard/template-header';
148
-		$default = 'common/summary/service-header-default.php';
149
-
150
-		return $view->render( $view->config( $tplconf, $default ) );
151
-	}
152
-
153
-
154
-	/**
155
-	 * Returns the sub-client given by its name.
156
-	 *
157
-	 * @param string $type Name of the client type
158
-	 * @param string|null $name Name of the sub-client (Default if null)
159
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
160
-	 */
161
-	public function getSubClient( $type, $name = null )
162
-	{
163
-		/** client/html/account/history/order/service/decorators/excludes
164
-		 * Excludes decorators added by the "common" option from the account history order service html client
165
-		 *
166
-		 * Decorators extend the functionality of a class by adding new aspects
167
-		 * (e.g. log what is currently done), executing the methods of the underlying
168
-		 * class only in certain conditions (e.g. only for logged in users) or
169
-		 * modify what is returned to the caller.
170
-		 *
171
-		 * This option allows you to remove a decorator added via
172
-		 * "client/html/common/decorators/default" before they are wrapped
173
-		 * around the html client.
174
-		 *
175
-		 *  client/html/account/history/order/service/decorators/excludes = array( 'decorator1' )
176
-		 *
177
-		 * This would remove the decorator named "decorator1" from the list of
178
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
179
-		 * "client/html/common/decorators/default" to the html client.
180
-		 *
181
-		 * @param array List of decorator names
182
-		 * @since 2015.08
183
-		 * @category Developer
184
-		 * @see client/html/common/decorators/default
185
-		 * @see client/html/account/history/order/service/decorators/global
186
-		 * @see client/html/account/history/order/service/decorators/local
187
-		 */
188
-
189
-		/** client/html/account/history/order/service/decorators/global
190
-		 * Adds a list of globally available decorators only to the account history order service html client
191
-		 *
192
-		 * Decorators extend the functionality of a class by adding new aspects
193
-		 * (e.g. log what is currently done), executing the methods of the underlying
194
-		 * class only in certain conditions (e.g. only for logged in users) or
195
-		 * modify what is returned to the caller.
196
-		 *
197
-		 * This option allows you to wrap global decorators
198
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
199
-		 *
200
-		 *  client/html/account/history/order/service/decorators/global = array( 'decorator1' )
201
-		 *
202
-		 * This would add the decorator named "decorator1" defined by
203
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
204
-		 *
205
-		 * @param array List of decorator names
206
-		 * @since 2015.08
207
-		 * @category Developer
208
-		 * @see client/html/common/decorators/default
209
-		 * @see client/html/account/history/order/service/decorators/excludes
210
-		 * @see client/html/account/history/order/service/decorators/local
211
-		 */
212
-
213
-		/** client/html/account/history/order/service/decorators/local
214
-		 * Adds a list of local decorators only to the account history order service html client
215
-		 *
216
-		 * Decorators extend the functionality of a class by adding new aspects
217
-		 * (e.g. log what is currently done), executing the methods of the underlying
218
-		 * class only in certain conditions (e.g. only for logged in users) or
219
-		 * modify what is returned to the caller.
220
-		 *
221
-		 * This option allows you to wrap local decorators
222
-		 * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
223
-		 *
224
-		 *  client/html/account/history/order/service/decorators/local = array( 'decorator2' )
225
-		 *
226
-		 * This would add the decorator named "decorator2" defined by
227
-		 * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
228
-		 *
229
-		 * @param array List of decorator names
230
-		 * @since 2015.08
231
-		 * @category Developer
232
-		 * @see client/html/common/decorators/default
233
-		 * @see client/html/account/history/order/service/decorators/excludes
234
-		 * @see client/html/account/history/order/service/decorators/global
235
-		 */
236
-		return $this->createSubClient( 'account/history/order/service/' . $type, $name );
237
-	}
238
-
239
-
240
-	/**
241
-	 * Returns the list of sub-client names configured for the client.
242
-	 *
243
-	 * @return array List of HTML client names
244
-	 */
245
-	protected function getSubClientNames()
246
-	{
247
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
248
-	}
24
+    /** client/html/account/history/order/service/standard/subparts
25
+     * List of HTML sub-clients rendered within the account history order service section
26
+     *
27
+     * The output of the frontend is composed of the code generated by the HTML
28
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
29
+     * that are responsible for rendering certain sub-parts of the output. The
30
+     * sub-clients can contain HTML clients themselves and therefore a
31
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
32
+     * the output that is placed inside the container of its parent.
33
+     *
34
+     * At first, always the HTML code generated by the parent is printed, then
35
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
36
+     * determines the order of the output of these sub-clients inside the parent
37
+     * container. If the configured list of clients is
38
+     *
39
+     *  array( "subclient1", "subclient2" )
40
+     *
41
+     * you can easily change the order of the output by reordering the subparts:
42
+     *
43
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
44
+     *
45
+     * You can also remove one or more parts if they shouldn't be rendered:
46
+     *
47
+     *  client/html/<clients>/subparts = array( "subclient1" )
48
+     *
49
+     * As the clients only generates structural HTML, the layout defined via CSS
50
+     * should support adding, removing or reordering content by a fluid like
51
+     * design.
52
+     *
53
+     * @param array List of sub-client names
54
+     * @since 2015.11
55
+     * @category Developer
56
+     */
57
+    private $subPartPath = 'client/html/account/history/order/service/standard/subparts';
58
+    private $subPartNames = array();
59
+
60
+
61
+    /**
62
+     * Returns the HTML code for insertion into the body.
63
+     *
64
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
65
+     * @param array &$tags Result array for the list of tags that are associated to the output
66
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
67
+     * @return string HTML code
68
+     */
69
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
+    {
71
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
72
+
73
+        $html = '';
74
+        foreach( $this->getSubClients() as $subclient ) {
75
+            $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
76
+        }
77
+        $view->serviceBody = $html;
78
+
79
+        /** client/html/account/history/order/service/standard/template-body
80
+         * Relative path to the HTML body template of the account history order service client.
81
+         *
82
+         * The template file contains the HTML code and processing instructions
83
+         * to generate the result shown in the body of the frontend. The
84
+         * configuration string is the path to the template file relative
85
+         * to the templates directory (usually in client/html/templates).
86
+         *
87
+         * You can overwrite the template file configuration in extensions and
88
+         * provide alternative templates. These alternative templates should be
89
+         * named like the default one but with the string "standard" replaced by
90
+         * an unique name. You may use the name of your project for this. If
91
+         * you've implemented an alternative client class as well, "standard"
92
+         * (second one) should be replaced by the name of the new class in lower
93
+         * case.
94
+         *
95
+         * @param string Relative path to the template creating code for the HTML page body
96
+         * @since 2015.11
97
+         * @category Developer
98
+         * @see client/html/account/history/order/service/standard/template-header
99
+         */
100
+        $tplconf = 'client/html/account/history/order/service/standard/template-body';
101
+        $default = 'common/summary/service-body-default.php';
102
+
103
+        return $view->render( $view->config( $tplconf, $default ) );
104
+    }
105
+
106
+
107
+    /**
108
+     * Returns the HTML string for insertion into the header.
109
+     *
110
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
111
+     * @param array &$tags Result array for the list of tags that are associated to the output
112
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
113
+     * @return string String including HTML tags for the header on error
114
+     */
115
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
116
+    {
117
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
118
+
119
+        $html = '';
120
+        foreach( $this->getSubClients() as $subclient ) {
121
+            $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
122
+        }
123
+        $view->serviceHeader = $html;
124
+
125
+        /** client/html/account/history/order/service/standard/template-header
126
+         * Relative path to the HTML header template of the account history order service client.
127
+         *
128
+         * The template file contains the HTML code and processing instructions
129
+         * to generate the HTML code that is inserted into the HTML page header
130
+         * of the rendered page in the frontend. The configuration string is the
131
+         * path to the template file relative to the templates directory (usually
132
+         * in client/html/templates).
133
+         *
134
+         * You can overwrite the template file configuration in extensions and
135
+         * provide alternative templates. These alternative templates should be
136
+         * named like the default one but with the string "standard" replaced by
137
+         * an unique name. You may use the name of your project for this. If
138
+         * you've implemented an alternative client class as well, "standard"
139
+         * (second one) should be replaced by the name of the new class in lower
140
+         * case.
141
+         *
142
+         * @param string Relative path to the template creating code for the HTML page head
143
+         * @since 2015.11
144
+         * @category Developer
145
+         * @see client/html/account/history/order/service/standard/template-body
146
+         */
147
+        $tplconf = 'client/html/account/history/order/service/standard/template-header';
148
+        $default = 'common/summary/service-header-default.php';
149
+
150
+        return $view->render( $view->config( $tplconf, $default ) );
151
+    }
152
+
153
+
154
+    /**
155
+     * Returns the sub-client given by its name.
156
+     *
157
+     * @param string $type Name of the client type
158
+     * @param string|null $name Name of the sub-client (Default if null)
159
+     * @return \Aimeos\Client\Html\Iface Sub-client object
160
+     */
161
+    public function getSubClient( $type, $name = null )
162
+    {
163
+        /** client/html/account/history/order/service/decorators/excludes
164
+         * Excludes decorators added by the "common" option from the account history order service html client
165
+         *
166
+         * Decorators extend the functionality of a class by adding new aspects
167
+         * (e.g. log what is currently done), executing the methods of the underlying
168
+         * class only in certain conditions (e.g. only for logged in users) or
169
+         * modify what is returned to the caller.
170
+         *
171
+         * This option allows you to remove a decorator added via
172
+         * "client/html/common/decorators/default" before they are wrapped
173
+         * around the html client.
174
+         *
175
+         *  client/html/account/history/order/service/decorators/excludes = array( 'decorator1' )
176
+         *
177
+         * This would remove the decorator named "decorator1" from the list of
178
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
179
+         * "client/html/common/decorators/default" to the html client.
180
+         *
181
+         * @param array List of decorator names
182
+         * @since 2015.08
183
+         * @category Developer
184
+         * @see client/html/common/decorators/default
185
+         * @see client/html/account/history/order/service/decorators/global
186
+         * @see client/html/account/history/order/service/decorators/local
187
+         */
188
+
189
+        /** client/html/account/history/order/service/decorators/global
190
+         * Adds a list of globally available decorators only to the account history order service html client
191
+         *
192
+         * Decorators extend the functionality of a class by adding new aspects
193
+         * (e.g. log what is currently done), executing the methods of the underlying
194
+         * class only in certain conditions (e.g. only for logged in users) or
195
+         * modify what is returned to the caller.
196
+         *
197
+         * This option allows you to wrap global decorators
198
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
199
+         *
200
+         *  client/html/account/history/order/service/decorators/global = array( 'decorator1' )
201
+         *
202
+         * This would add the decorator named "decorator1" defined by
203
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
204
+         *
205
+         * @param array List of decorator names
206
+         * @since 2015.08
207
+         * @category Developer
208
+         * @see client/html/common/decorators/default
209
+         * @see client/html/account/history/order/service/decorators/excludes
210
+         * @see client/html/account/history/order/service/decorators/local
211
+         */
212
+
213
+        /** client/html/account/history/order/service/decorators/local
214
+         * Adds a list of local decorators only to the account history order service html client
215
+         *
216
+         * Decorators extend the functionality of a class by adding new aspects
217
+         * (e.g. log what is currently done), executing the methods of the underlying
218
+         * class only in certain conditions (e.g. only for logged in users) or
219
+         * modify what is returned to the caller.
220
+         *
221
+         * This option allows you to wrap local decorators
222
+         * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
223
+         *
224
+         *  client/html/account/history/order/service/decorators/local = array( 'decorator2' )
225
+         *
226
+         * This would add the decorator named "decorator2" defined by
227
+         * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
228
+         *
229
+         * @param array List of decorator names
230
+         * @since 2015.08
231
+         * @category Developer
232
+         * @see client/html/common/decorators/default
233
+         * @see client/html/account/history/order/service/decorators/excludes
234
+         * @see client/html/account/history/order/service/decorators/global
235
+         */
236
+        return $this->createSubClient( 'account/history/order/service/' . $type, $name );
237
+    }
238
+
239
+
240
+    /**
241
+     * Returns the list of sub-client names configured for the client.
242
+     *
243
+     * @return array List of HTML client names
244
+     */
245
+    protected function getSubClientNames()
246
+    {
247
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
248
+    }
249 249
 }
250 250
\ No newline at end of file
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/History/Order/Coupon/Standard.php 2 patches
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -66,13 +66,13 @@  discard block
 block discarded – undo
66 66
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
67 67
 	 * @return string HTML code
68 68
 	*/
69
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
69
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
70 70
 	{
71
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
71
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
72 72
 
73 73
 		$html = '';
74
-		foreach( $this->getSubClients() as $subclient ) {
75
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
74
+		foreach ($this->getSubClients() as $subclient) {
75
+			$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
76 76
 		}
77 77
 		$view->couponBody = $html;
78 78
 
@@ -100,7 +100,7 @@  discard block
 block discarded – undo
100 100
 		$tplconf = 'client/html/account/history/order/coupon/standard/template-body';
101 101
 		$default = 'common/summary/coupon-body-default.php';
102 102
 
103
-		return $view->render( $view->config( $tplconf, $default ) );
103
+		return $view->render($view->config($tplconf, $default));
104 104
 	}
105 105
 
106 106
 
@@ -112,13 +112,13 @@  discard block
 block discarded – undo
112 112
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
113 113
 	 * @return string|null String including HTML tags for the header on error
114 114
 	 */
115
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
115
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
116 116
 	{
117
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
117
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
118 118
 
119 119
 		$html = '';
120
-		foreach( $this->getSubClients() as $subclient ) {
121
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
120
+		foreach ($this->getSubClients() as $subclient) {
121
+			$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
122 122
 		}
123 123
 		$view->couponHeader = $html;
124 124
 
@@ -147,7 +147,7 @@  discard block
 block discarded – undo
147 147
 		$tplconf = 'client/html/account/history/order/coupon/standard/template-header';
148 148
 		$default = 'common/summary/coupon-header-default.php';
149 149
 
150
-		return $view->render( $view->config( $tplconf, $default ) );
150
+		return $view->render($view->config($tplconf, $default));
151 151
 	}
152 152
 
153 153
 
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
 	 * @param string|null $name Name of the sub-client (Default if null)
159 159
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
160 160
 	 */
161
-	public function getSubClient( $type, $name = null )
161
+	public function getSubClient($type, $name = null)
162 162
 	{
163 163
 		/** client/html/account/history/order/coupon/decorators/excludes
164 164
 		 * Excludes decorators added by the "common" option from the account history order coupon html client
@@ -233,7 +233,7 @@  discard block
 block discarded – undo
233 233
 		 * @see client/html/account/history/order/coupon/decorators/excludes
234 234
 		 * @see client/html/account/history/order/coupon/decorators/global
235 235
 		 */
236
-		return $this->createSubClient( 'account/history/order/coupon/' . $type, $name );
236
+		return $this->createSubClient('account/history/order/coupon/'.$type, $name);
237 237
 	}
238 238
 
239 239
 
@@ -244,6 +244,6 @@  discard block
 block discarded – undo
244 244
 	 */
245 245
 	protected function getSubClientNames()
246 246
 	{
247
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
247
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
248 248
 	}
249 249
 }
250 250
\ No newline at end of file
Please login to merge, or discard this patch.
Indentation   +226 added lines, -226 removed lines patch added patch discarded remove patch
@@ -19,231 +19,231 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Summary\Coupon\Base
22
+    extends \Aimeos\Client\Html\Common\Summary\Coupon\Base
23 23
 {
24
-	/** client/html/account/history/order/coupon/standard/subparts
25
-	 * List of HTML sub-clients rendered within the account history order coupon section
26
-	 *
27
-	 * The output of the frontend is composed of the code generated by the HTML
28
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
29
-	 * that are responsible for rendering certain sub-parts of the output. The
30
-	 * sub-clients can contain HTML clients themselves and therefore a
31
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
32
-	 * the output that is placed inside the container of its parent.
33
-	 *
34
-	 * At first, always the HTML code generated by the parent is printed, then
35
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
36
-	 * determines the order of the output of these sub-clients inside the parent
37
-	 * container. If the configured list of clients is
38
-	 *
39
-	 *  array( "subclient1", "subclient2" )
40
-	 *
41
-	 * you can easily change the order of the output by reordering the subparts:
42
-	 *
43
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
44
-	 *
45
-	 * You can also remove one or more parts if they shouldn't be rendered:
46
-	 *
47
-	 *  client/html/<clients>/subparts = array( "subclient1" )
48
-	 *
49
-	 * As the clients only generates structural HTML, the layout defined via CSS
50
-	 * should support adding, removing or reordering content by a fluid like
51
-	 * design.
52
-	 *
53
-	 * @param array List of sub-client names
54
-	 * @since 2015.11
55
-	 * @category Developer
56
-	 */
57
-	private $subPartPath = 'client/html/account/history/order/coupon/standard/subparts';
58
-	private $subPartNames = array();
59
-
60
-
61
-	/**
62
-	 * Returns the HTML code for insertion into the body.
63
-	 *
64
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
65
-	 * @param array &$tags Result array for the list of tags that are associated to the output
66
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
67
-	 * @return string HTML code
68
-	*/
69
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
-	{
71
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
72
-
73
-		$html = '';
74
-		foreach( $this->getSubClients() as $subclient ) {
75
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
76
-		}
77
-		$view->couponBody = $html;
78
-
79
-		/** client/html/account/history/order/coupon/standard/template-body
80
-		 * Relative path to the HTML body template of the account history order coupon client.
81
-		 *
82
-		 * The template file contains the HTML code and processing instructions
83
-		 * to generate the result shown in the body of the frontend. The
84
-		 * configuration string is the path to the template file relative
85
-		 * to the templates directory (usually in client/html/templates).
86
-		 *
87
-		 * You can overwrite the template file configuration in extensions and
88
-		 * provide alternative templates. These alternative templates should be
89
-		 * named like the default one but with the string "standard" replaced by
90
-		 * an unique name. You may use the name of your project for this. If
91
-		 * you've implemented an alternative client class as well, "standard"
92
-		 * (second one) should be replaced by the name of the new class in lower
93
-		 * case.
94
-		 *
95
-		 * @param string Relative path to the template creating code for the HTML page body
96
-		 * @since 2015.11
97
-		 * @category Developer
98
-		 * @see client/html/account/history/order/coupon/standard/template-header
99
-		 */
100
-		$tplconf = 'client/html/account/history/order/coupon/standard/template-body';
101
-		$default = 'common/summary/coupon-body-default.php';
102
-
103
-		return $view->render( $view->config( $tplconf, $default ) );
104
-	}
105
-
106
-
107
-	/**
108
-	 * Returns the HTML string for insertion into the header.
109
-	 *
110
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
111
-	 * @param array &$tags Result array for the list of tags that are associated to the output
112
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
113
-	 * @return string String including HTML tags for the header on error
114
-	 */
115
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
116
-	{
117
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
118
-
119
-		$html = '';
120
-		foreach( $this->getSubClients() as $subclient ) {
121
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
122
-		}
123
-		$view->couponHeader = $html;
124
-
125
-		/** client/html/account/history/order/coupon/standard/template-header
126
-		 * Relative path to the HTML header template of the account history order coupon client.
127
-		 *
128
-		 * The template file contains the HTML code and processing instructions
129
-		 * to generate the HTML code that is inserted into the HTML page header
130
-		 * of the rendered page in the frontend. The configuration string is the
131
-		 * path to the template file relative to the templates directory (usually
132
-		 * in client/html/templates).
133
-		 *
134
-		 * You can overwrite the template file configuration in extensions and
135
-		 * provide alternative templates. These alternative templates should be
136
-		 * named like the default one but with the string "standard" replaced by
137
-		 * an unique name. You may use the name of your project for this. If
138
-		 * you've implemented an alternative client class as well, "standard"
139
-		 * (second one) should be replaced by the name of the new class in lower
140
-		 * case.
141
-		 *
142
-		 * @param string Relative path to the template creating code for the HTML page head
143
-		 * @since 2015.11
144
-		 * @category Developer
145
-		 * @see client/html/account/history/order/coupon/standard/template-body
146
-		 */
147
-		$tplconf = 'client/html/account/history/order/coupon/standard/template-header';
148
-		$default = 'common/summary/coupon-header-default.php';
149
-
150
-		return $view->render( $view->config( $tplconf, $default ) );
151
-	}
152
-
153
-
154
-	/**
155
-	 * Returns the sub-client given by its name.
156
-	 *
157
-	 * @param string $type Name of the client type
158
-	 * @param string|null $name Name of the sub-client (Default if null)
159
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
160
-	 */
161
-	public function getSubClient( $type, $name = null )
162
-	{
163
-		/** client/html/account/history/order/coupon/decorators/excludes
164
-		 * Excludes decorators added by the "common" option from the account history order coupon html client
165
-		 *
166
-		 * Decorators extend the functionality of a class by adding new aspects
167
-		 * (e.g. log what is currently done), executing the methods of the underlying
168
-		 * class only in certain conditions (e.g. only for logged in users) or
169
-		 * modify what is returned to the caller.
170
-		 *
171
-		 * This option allows you to remove a decorator added via
172
-		 * "client/html/common/decorators/default" before they are wrapped
173
-		 * around the html client.
174
-		 *
175
-		 *  client/html/account/history/order/coupon/decorators/excludes = array( 'decorator1' )
176
-		 *
177
-		 * This would remove the decorator named "decorator1" from the list of
178
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
179
-		 * "client/html/common/decorators/default" to the html client.
180
-		 *
181
-		 * @param array List of decorator names
182
-		 * @since 2015.08
183
-		 * @category Developer
184
-		 * @see client/html/common/decorators/default
185
-		 * @see client/html/account/history/order/coupon/decorators/global
186
-		 * @see client/html/account/history/order/coupon/decorators/local
187
-		 */
188
-
189
-		/** client/html/account/history/order/coupon/decorators/global
190
-		 * Adds a list of globally available decorators only to the account history order coupon html client
191
-		 *
192
-		 * Decorators extend the functionality of a class by adding new aspects
193
-		 * (e.g. log what is currently done), executing the methods of the underlying
194
-		 * class only in certain conditions (e.g. only for logged in users) or
195
-		 * modify what is returned to the caller.
196
-		 *
197
-		 * This option allows you to wrap global decorators
198
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
199
-		 *
200
-		 *  client/html/account/history/order/coupon/decorators/global = array( 'decorator1' )
201
-		 *
202
-		 * This would add the decorator named "decorator1" defined by
203
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
204
-		 *
205
-		 * @param array List of decorator names
206
-		 * @since 2015.08
207
-		 * @category Developer
208
-		 * @see client/html/common/decorators/default
209
-		 * @see client/html/account/history/order/coupon/decorators/excludes
210
-		 * @see client/html/account/history/order/coupon/decorators/local
211
-		 */
212
-
213
-		/** client/html/account/history/order/coupon/decorators/local
214
-		 * Adds a list of local decorators only to the account history order coupon html client
215
-		 *
216
-		 * Decorators extend the functionality of a class by adding new aspects
217
-		 * (e.g. log what is currently done), executing the methods of the underlying
218
-		 * class only in certain conditions (e.g. only for logged in users) or
219
-		 * modify what is returned to the caller.
220
-		 *
221
-		 * This option allows you to wrap local decorators
222
-		 * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
223
-		 *
224
-		 *  client/html/account/history/order/coupon/decorators/local = array( 'decorator2' )
225
-		 *
226
-		 * This would add the decorator named "decorator2" defined by
227
-		 * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
228
-		 *
229
-		 * @param array List of decorator names
230
-		 * @since 2015.08
231
-		 * @category Developer
232
-		 * @see client/html/common/decorators/default
233
-		 * @see client/html/account/history/order/coupon/decorators/excludes
234
-		 * @see client/html/account/history/order/coupon/decorators/global
235
-		 */
236
-		return $this->createSubClient( 'account/history/order/coupon/' . $type, $name );
237
-	}
238
-
239
-
240
-	/**
241
-	 * Returns the list of sub-client names configured for the client.
242
-	 *
243
-	 * @return array List of HTML client names
244
-	 */
245
-	protected function getSubClientNames()
246
-	{
247
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
248
-	}
24
+    /** client/html/account/history/order/coupon/standard/subparts
25
+     * List of HTML sub-clients rendered within the account history order coupon section
26
+     *
27
+     * The output of the frontend is composed of the code generated by the HTML
28
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
29
+     * that are responsible for rendering certain sub-parts of the output. The
30
+     * sub-clients can contain HTML clients themselves and therefore a
31
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
32
+     * the output that is placed inside the container of its parent.
33
+     *
34
+     * At first, always the HTML code generated by the parent is printed, then
35
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
36
+     * determines the order of the output of these sub-clients inside the parent
37
+     * container. If the configured list of clients is
38
+     *
39
+     *  array( "subclient1", "subclient2" )
40
+     *
41
+     * you can easily change the order of the output by reordering the subparts:
42
+     *
43
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
44
+     *
45
+     * You can also remove one or more parts if they shouldn't be rendered:
46
+     *
47
+     *  client/html/<clients>/subparts = array( "subclient1" )
48
+     *
49
+     * As the clients only generates structural HTML, the layout defined via CSS
50
+     * should support adding, removing or reordering content by a fluid like
51
+     * design.
52
+     *
53
+     * @param array List of sub-client names
54
+     * @since 2015.11
55
+     * @category Developer
56
+     */
57
+    private $subPartPath = 'client/html/account/history/order/coupon/standard/subparts';
58
+    private $subPartNames = array();
59
+
60
+
61
+    /**
62
+     * Returns the HTML code for insertion into the body.
63
+     *
64
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
65
+     * @param array &$tags Result array for the list of tags that are associated to the output
66
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
67
+     * @return string HTML code
68
+     */
69
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
+    {
71
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
72
+
73
+        $html = '';
74
+        foreach( $this->getSubClients() as $subclient ) {
75
+            $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
76
+        }
77
+        $view->couponBody = $html;
78
+
79
+        /** client/html/account/history/order/coupon/standard/template-body
80
+         * Relative path to the HTML body template of the account history order coupon client.
81
+         *
82
+         * The template file contains the HTML code and processing instructions
83
+         * to generate the result shown in the body of the frontend. The
84
+         * configuration string is the path to the template file relative
85
+         * to the templates directory (usually in client/html/templates).
86
+         *
87
+         * You can overwrite the template file configuration in extensions and
88
+         * provide alternative templates. These alternative templates should be
89
+         * named like the default one but with the string "standard" replaced by
90
+         * an unique name. You may use the name of your project for this. If
91
+         * you've implemented an alternative client class as well, "standard"
92
+         * (second one) should be replaced by the name of the new class in lower
93
+         * case.
94
+         *
95
+         * @param string Relative path to the template creating code for the HTML page body
96
+         * @since 2015.11
97
+         * @category Developer
98
+         * @see client/html/account/history/order/coupon/standard/template-header
99
+         */
100
+        $tplconf = 'client/html/account/history/order/coupon/standard/template-body';
101
+        $default = 'common/summary/coupon-body-default.php';
102
+
103
+        return $view->render( $view->config( $tplconf, $default ) );
104
+    }
105
+
106
+
107
+    /**
108
+     * Returns the HTML string for insertion into the header.
109
+     *
110
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
111
+     * @param array &$tags Result array for the list of tags that are associated to the output
112
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
113
+     * @return string String including HTML tags for the header on error
114
+     */
115
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
116
+    {
117
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
118
+
119
+        $html = '';
120
+        foreach( $this->getSubClients() as $subclient ) {
121
+            $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
122
+        }
123
+        $view->couponHeader = $html;
124
+
125
+        /** client/html/account/history/order/coupon/standard/template-header
126
+         * Relative path to the HTML header template of the account history order coupon client.
127
+         *
128
+         * The template file contains the HTML code and processing instructions
129
+         * to generate the HTML code that is inserted into the HTML page header
130
+         * of the rendered page in the frontend. The configuration string is the
131
+         * path to the template file relative to the templates directory (usually
132
+         * in client/html/templates).
133
+         *
134
+         * You can overwrite the template file configuration in extensions and
135
+         * provide alternative templates. These alternative templates should be
136
+         * named like the default one but with the string "standard" replaced by
137
+         * an unique name. You may use the name of your project for this. If
138
+         * you've implemented an alternative client class as well, "standard"
139
+         * (second one) should be replaced by the name of the new class in lower
140
+         * case.
141
+         *
142
+         * @param string Relative path to the template creating code for the HTML page head
143
+         * @since 2015.11
144
+         * @category Developer
145
+         * @see client/html/account/history/order/coupon/standard/template-body
146
+         */
147
+        $tplconf = 'client/html/account/history/order/coupon/standard/template-header';
148
+        $default = 'common/summary/coupon-header-default.php';
149
+
150
+        return $view->render( $view->config( $tplconf, $default ) );
151
+    }
152
+
153
+
154
+    /**
155
+     * Returns the sub-client given by its name.
156
+     *
157
+     * @param string $type Name of the client type
158
+     * @param string|null $name Name of the sub-client (Default if null)
159
+     * @return \Aimeos\Client\Html\Iface Sub-client object
160
+     */
161
+    public function getSubClient( $type, $name = null )
162
+    {
163
+        /** client/html/account/history/order/coupon/decorators/excludes
164
+         * Excludes decorators added by the "common" option from the account history order coupon html client
165
+         *
166
+         * Decorators extend the functionality of a class by adding new aspects
167
+         * (e.g. log what is currently done), executing the methods of the underlying
168
+         * class only in certain conditions (e.g. only for logged in users) or
169
+         * modify what is returned to the caller.
170
+         *
171
+         * This option allows you to remove a decorator added via
172
+         * "client/html/common/decorators/default" before they are wrapped
173
+         * around the html client.
174
+         *
175
+         *  client/html/account/history/order/coupon/decorators/excludes = array( 'decorator1' )
176
+         *
177
+         * This would remove the decorator named "decorator1" from the list of
178
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
179
+         * "client/html/common/decorators/default" to the html client.
180
+         *
181
+         * @param array List of decorator names
182
+         * @since 2015.08
183
+         * @category Developer
184
+         * @see client/html/common/decorators/default
185
+         * @see client/html/account/history/order/coupon/decorators/global
186
+         * @see client/html/account/history/order/coupon/decorators/local
187
+         */
188
+
189
+        /** client/html/account/history/order/coupon/decorators/global
190
+         * Adds a list of globally available decorators only to the account history order coupon html client
191
+         *
192
+         * Decorators extend the functionality of a class by adding new aspects
193
+         * (e.g. log what is currently done), executing the methods of the underlying
194
+         * class only in certain conditions (e.g. only for logged in users) or
195
+         * modify what is returned to the caller.
196
+         *
197
+         * This option allows you to wrap global decorators
198
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
199
+         *
200
+         *  client/html/account/history/order/coupon/decorators/global = array( 'decorator1' )
201
+         *
202
+         * This would add the decorator named "decorator1" defined by
203
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
204
+         *
205
+         * @param array List of decorator names
206
+         * @since 2015.08
207
+         * @category Developer
208
+         * @see client/html/common/decorators/default
209
+         * @see client/html/account/history/order/coupon/decorators/excludes
210
+         * @see client/html/account/history/order/coupon/decorators/local
211
+         */
212
+
213
+        /** client/html/account/history/order/coupon/decorators/local
214
+         * Adds a list of local decorators only to the account history order coupon html client
215
+         *
216
+         * Decorators extend the functionality of a class by adding new aspects
217
+         * (e.g. log what is currently done), executing the methods of the underlying
218
+         * class only in certain conditions (e.g. only for logged in users) or
219
+         * modify what is returned to the caller.
220
+         *
221
+         * This option allows you to wrap local decorators
222
+         * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
223
+         *
224
+         *  client/html/account/history/order/coupon/decorators/local = array( 'decorator2' )
225
+         *
226
+         * This would add the decorator named "decorator2" defined by
227
+         * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
228
+         *
229
+         * @param array List of decorator names
230
+         * @since 2015.08
231
+         * @category Developer
232
+         * @see client/html/common/decorators/default
233
+         * @see client/html/account/history/order/coupon/decorators/excludes
234
+         * @see client/html/account/history/order/coupon/decorators/global
235
+         */
236
+        return $this->createSubClient( 'account/history/order/coupon/' . $type, $name );
237
+    }
238
+
239
+
240
+    /**
241
+     * Returns the list of sub-client names configured for the client.
242
+     *
243
+     * @return array List of HTML client names
244
+     */
245
+    protected function getSubClientNames()
246
+    {
247
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
248
+    }
249 249
 }
250 250
\ No newline at end of file
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/History/Order/Detail/Standard.php 2 patches
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -67,13 +67,13 @@  discard block
 block discarded – undo
67 67
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68 68
 	 * @return string HTML code
69 69
 	*/
70
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
71 71
 	{
72
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
72
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
73 73
 
74 74
 		$html = '';
75
-		foreach( $this->getSubClients() as $subclient ) {
76
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
75
+		foreach ($this->getSubClients() as $subclient) {
76
+			$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
77 77
 		}
78 78
 		$view->detailBody = $html;
79 79
 
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 		$tplconf = 'client/html/account/history/order/detail/standard/template-body';
102 102
 		$default = 'common/summary/detail-body-default.php';
103 103
 
104
-		return $view->render( $view->config( $tplconf, $default ) );
104
+		return $view->render($view->config($tplconf, $default));
105 105
 	}
106 106
 
107 107
 
@@ -113,13 +113,13 @@  discard block
 block discarded – undo
113 113
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114 114
 	 * @return string|null String including HTML tags for the header on error
115 115
 	 */
116
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
116
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
117 117
 	{
118
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
118
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
119 119
 
120 120
 		$html = '';
121
-		foreach( $this->getSubClients() as $subclient ) {
122
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
121
+		foreach ($this->getSubClients() as $subclient) {
122
+			$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
123 123
 		}
124 124
 		$view->detailHeader = $html;
125 125
 
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
 		$tplconf = 'client/html/account/history/order/detail/standard/template-header';
149 149
 		$default = 'common/summary/detail-header-default.php';
150 150
 
151
-		return $view->render( $view->config( $tplconf, $default ) );
151
+		return $view->render($view->config($tplconf, $default));
152 152
 	}
153 153
 
154 154
 
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 	 * @param string|null $name Name of the sub-client (Default if null)
160 160
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
161 161
 	 */
162
-	public function getSubClient( $type, $name = null )
162
+	public function getSubClient($type, $name = null)
163 163
 	{
164 164
 		/** client/html/account/history/order/detail/decorators/excludes
165 165
 		 * Excludes decorators added by the "common" option from the account history order detail html client
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
 		 * @see client/html/account/history/order/detail/decorators/excludes
235 235
 		 * @see client/html/account/history/order/detail/decorators/global
236 236
 		 */
237
-		return $this->createSubClient( 'account/history/order/detail/' . $type, $name );
237
+		return $this->createSubClient('account/history/order/detail/'.$type, $name);
238 238
 	}
239 239
 
240 240
 
@@ -245,7 +245,7 @@  discard block
 block discarded – undo
245 245
 	 */
246 246
 	protected function getSubClientNames()
247 247
 	{
248
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
248
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
249 249
 	}
250 250
 
251 251
 
@@ -257,17 +257,17 @@  discard block
 block discarded – undo
257 257
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
258 258
 	 * @return \Aimeos\MW\View\Iface Modified view object
259 259
 	 */
260
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
260
+	protected function setViewParams(\Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null)
261 261
 	{
262
-		if( !isset( $this->cache ) )
262
+		if (!isset($this->cache))
263 263
 		{
264
-			$view = parent::setViewParams( $view );
264
+			$view = parent::setViewParams($view);
265 265
 
266
-			if( $view->orderItem->getPaymentStatus() >= $this->getDownloadPaymentStatus() ) {
266
+			if ($view->orderItem->getPaymentStatus() >= $this->getDownloadPaymentStatus()) {
267 267
 				$view->summaryShowDownloadAttributes = true;
268 268
 			}
269 269
 
270
-			$view->summaryTaxRates = $this->getTaxRates( $view->summaryBasket );
270
+			$view->summaryTaxRates = $this->getTaxRates($view->summaryBasket);
271 271
 
272 272
 			$this->cache = $view;
273 273
 		}
Please login to merge, or discard this patch.
Indentation   +232 added lines, -232 removed lines patch added patch discarded remove patch
@@ -19,259 +19,259 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Summary\Detail\Base
22
+    extends \Aimeos\Client\Html\Common\Summary\Detail\Base
23 23
 {
24
-	/** client/html/account/history/order/detail/standard/subparts
25
-	 * List of HTML sub-clients rendered within the account history order detail section
26
-	 *
27
-	 * The output of the frontend is composed of the code generated by the HTML
28
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
29
-	 * that are responsible for rendering certain sub-parts of the output. The
30
-	 * sub-clients can contain HTML clients themselves and therefore a
31
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
32
-	 * the output that is placed inside the container of its parent.
33
-	 *
34
-	 * At first, always the HTML code generated by the parent is printed, then
35
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
36
-	 * determines the order of the output of these sub-clients inside the parent
37
-	 * container. If the configured list of clients is
38
-	 *
39
-	 *  array( "subclient1", "subclient2" )
40
-	 *
41
-	 * you can easily change the order of the output by reordering the subparts:
42
-	 *
43
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
44
-	 *
45
-	 * You can also remove one or more parts if they shouldn't be rendered:
46
-	 *
47
-	 *  client/html/<clients>/subparts = array( "subclient1" )
48
-	 *
49
-	 * As the clients only generates structural HTML, the layout defined via CSS
50
-	 * should support adding, removing or reordering content by a fluid like
51
-	 * design.
52
-	 *
53
-	 * @param array List of sub-client names
54
-	 * @since 2015.11
55
-	 * @category Developer
56
-	 */
57
-	private $subPartPath = 'client/html/account/history/order/detail/standard/subparts';
58
-	private $subPartNames = array();
59
-	private $cache;
24
+    /** client/html/account/history/order/detail/standard/subparts
25
+     * List of HTML sub-clients rendered within the account history order detail section
26
+     *
27
+     * The output of the frontend is composed of the code generated by the HTML
28
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
29
+     * that are responsible for rendering certain sub-parts of the output. The
30
+     * sub-clients can contain HTML clients themselves and therefore a
31
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
32
+     * the output that is placed inside the container of its parent.
33
+     *
34
+     * At first, always the HTML code generated by the parent is printed, then
35
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
36
+     * determines the order of the output of these sub-clients inside the parent
37
+     * container. If the configured list of clients is
38
+     *
39
+     *  array( "subclient1", "subclient2" )
40
+     *
41
+     * you can easily change the order of the output by reordering the subparts:
42
+     *
43
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
44
+     *
45
+     * You can also remove one or more parts if they shouldn't be rendered:
46
+     *
47
+     *  client/html/<clients>/subparts = array( "subclient1" )
48
+     *
49
+     * As the clients only generates structural HTML, the layout defined via CSS
50
+     * should support adding, removing or reordering content by a fluid like
51
+     * design.
52
+     *
53
+     * @param array List of sub-client names
54
+     * @since 2015.11
55
+     * @category Developer
56
+     */
57
+    private $subPartPath = 'client/html/account/history/order/detail/standard/subparts';
58
+    private $subPartNames = array();
59
+    private $cache;
60 60
 
61 61
 
62
-	/**
63
-	 * Returns the HTML code for insertion into the body.
64
-	 *
65
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
66
-	 * @param array &$tags Result array for the list of tags that are associated to the output
67
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68
-	 * @return string HTML code
69
-	*/
70
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
-	{
72
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
62
+    /**
63
+     * Returns the HTML code for insertion into the body.
64
+     *
65
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
66
+     * @param array &$tags Result array for the list of tags that are associated to the output
67
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68
+     * @return string HTML code
69
+     */
70
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
+    {
72
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
73 73
 
74
-		$html = '';
75
-		foreach( $this->getSubClients() as $subclient ) {
76
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
77
-		}
78
-		$view->detailBody = $html;
74
+        $html = '';
75
+        foreach( $this->getSubClients() as $subclient ) {
76
+            $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
77
+        }
78
+        $view->detailBody = $html;
79 79
 
80
-		/** client/html/account/history/order/detail/standard/template-body
81
-		 * Relative path to the HTML body template of the account history order detail client.
82
-		 *
83
-		 * The template file contains the HTML code and processing instructions
84
-		 * to generate the result shown in the body of the frontend. The
85
-		 * configuration string is the path to the template file relative
86
-		 * to the templates directory (usually in client/html/templates).
87
-		 *
88
-		 * You can overwrite the template file configuration in extensions and
89
-		 * provide alternative templates. These alternative templates should be
90
-		 * named like the default one but with the string "standard" replaced by
91
-		 * an unique name. You may use the name of your project for this. If
92
-		 * you've implemented an alternative client class as well, "standard"
93
-		 * (second one) should be replaced by the name of the new class in lower
94
-		 * case.
95
-		 *
96
-		 * @param string Relative path to the template creating code for the HTML page body
97
-		 * @since 2015.11
98
-		 * @category Developer
99
-		 * @see client/html/account/history/order/detail/standard/template-header
100
-		 */
101
-		$tplconf = 'client/html/account/history/order/detail/standard/template-body';
102
-		$default = 'common/summary/detail-body-default.php';
80
+        /** client/html/account/history/order/detail/standard/template-body
81
+         * Relative path to the HTML body template of the account history order detail client.
82
+         *
83
+         * The template file contains the HTML code and processing instructions
84
+         * to generate the result shown in the body of the frontend. The
85
+         * configuration string is the path to the template file relative
86
+         * to the templates directory (usually in client/html/templates).
87
+         *
88
+         * You can overwrite the template file configuration in extensions and
89
+         * provide alternative templates. These alternative templates should be
90
+         * named like the default one but with the string "standard" replaced by
91
+         * an unique name. You may use the name of your project for this. If
92
+         * you've implemented an alternative client class as well, "standard"
93
+         * (second one) should be replaced by the name of the new class in lower
94
+         * case.
95
+         *
96
+         * @param string Relative path to the template creating code for the HTML page body
97
+         * @since 2015.11
98
+         * @category Developer
99
+         * @see client/html/account/history/order/detail/standard/template-header
100
+         */
101
+        $tplconf = 'client/html/account/history/order/detail/standard/template-body';
102
+        $default = 'common/summary/detail-body-default.php';
103 103
 
104
-		return $view->render( $view->config( $tplconf, $default ) );
105
-	}
104
+        return $view->render( $view->config( $tplconf, $default ) );
105
+    }
106 106
 
107 107
 
108
-	/**
109
-	 * Returns the HTML string for insertion into the header.
110
-	 *
111
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
112
-	 * @param array &$tags Result array for the list of tags that are associated to the output
113
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114
-	 * @return string String including HTML tags for the header on error
115
-	 */
116
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
117
-	{
118
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
108
+    /**
109
+     * Returns the HTML string for insertion into the header.
110
+     *
111
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
112
+     * @param array &$tags Result array for the list of tags that are associated to the output
113
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114
+     * @return string String including HTML tags for the header on error
115
+     */
116
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
117
+    {
118
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
119 119
 
120
-		$html = '';
121
-		foreach( $this->getSubClients() as $subclient ) {
122
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
123
-		}
124
-		$view->detailHeader = $html;
120
+        $html = '';
121
+        foreach( $this->getSubClients() as $subclient ) {
122
+            $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
123
+        }
124
+        $view->detailHeader = $html;
125 125
 
126
-		/** client/html/account/history/order/detail/standard/template-header
127
-		 * Relative path to the HTML header template of the account history order detail client.
128
-		 *
129
-		 * The template file contains the HTML code and processing instructions
130
-		 * to generate the HTML code that is inserted into the HTML page header
131
-		 * of the rendered page in the frontend. The configuration string is the
132
-		 * path to the template file relative to the templates directory (usually
133
-		 * in client/html/templates).
134
-		 *
135
-		 * You can overwrite the template file configuration in extensions and
136
-		 * provide alternative templates. These alternative templates should be
137
-		 * named like the default one but with the string "standard" replaced by
138
-		 * an unique name. You may use the name of your project for this. If
139
-		 * you've implemented an alternative client class as well, "standard"
140
-		 * (second one) should be replaced by the name of the new class in lower
141
-		 * case.
142
-		 *
143
-		 * @param string Relative path to the template creating code for the HTML page head
144
-		 * @since 2015.11
145
-		 * @category Developer
146
-		 * @see client/html/account/history/order/detail/standard/template-body
147
-		 */
148
-		$tplconf = 'client/html/account/history/order/detail/standard/template-header';
149
-		$default = 'common/summary/detail-header-default.php';
126
+        /** client/html/account/history/order/detail/standard/template-header
127
+         * Relative path to the HTML header template of the account history order detail client.
128
+         *
129
+         * The template file contains the HTML code and processing instructions
130
+         * to generate the HTML code that is inserted into the HTML page header
131
+         * of the rendered page in the frontend. The configuration string is the
132
+         * path to the template file relative to the templates directory (usually
133
+         * in client/html/templates).
134
+         *
135
+         * You can overwrite the template file configuration in extensions and
136
+         * provide alternative templates. These alternative templates should be
137
+         * named like the default one but with the string "standard" replaced by
138
+         * an unique name. You may use the name of your project for this. If
139
+         * you've implemented an alternative client class as well, "standard"
140
+         * (second one) should be replaced by the name of the new class in lower
141
+         * case.
142
+         *
143
+         * @param string Relative path to the template creating code for the HTML page head
144
+         * @since 2015.11
145
+         * @category Developer
146
+         * @see client/html/account/history/order/detail/standard/template-body
147
+         */
148
+        $tplconf = 'client/html/account/history/order/detail/standard/template-header';
149
+        $default = 'common/summary/detail-header-default.php';
150 150
 
151
-		return $view->render( $view->config( $tplconf, $default ) );
152
-	}
151
+        return $view->render( $view->config( $tplconf, $default ) );
152
+    }
153 153
 
154 154
 
155
-	/**
156
-	 * Returns the sub-client given by its name.
157
-	 *
158
-	 * @param string $type Name of the client type
159
-	 * @param string|null $name Name of the sub-client (Default if null)
160
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
161
-	 */
162
-	public function getSubClient( $type, $name = null )
163
-	{
164
-		/** client/html/account/history/order/detail/decorators/excludes
165
-		 * Excludes decorators added by the "common" option from the account history order detail html client
166
-		 *
167
-		 * Decorators extend the functionality of a class by adding new aspects
168
-		 * (e.g. log what is currently done), executing the methods of the underlying
169
-		 * class only in certain conditions (e.g. only for logged in users) or
170
-		 * modify what is returned to the caller.
171
-		 *
172
-		 * This option allows you to remove a decorator added via
173
-		 * "client/html/common/decorators/default" before they are wrapped
174
-		 * around the html client.
175
-		 *
176
-		 *  client/html/account/history/order/detail/decorators/excludes = array( 'decorator1' )
177
-		 *
178
-		 * This would remove the decorator named "decorator1" from the list of
179
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
180
-		 * "client/html/common/decorators/default" to the html client.
181
-		 *
182
-		 * @param array List of decorator names
183
-		 * @since 2015.08
184
-		 * @category Developer
185
-		 * @see client/html/common/decorators/default
186
-		 * @see client/html/account/history/order/detail/decorators/global
187
-		 * @see client/html/account/history/order/detail/decorators/local
188
-		 */
155
+    /**
156
+     * Returns the sub-client given by its name.
157
+     *
158
+     * @param string $type Name of the client type
159
+     * @param string|null $name Name of the sub-client (Default if null)
160
+     * @return \Aimeos\Client\Html\Iface Sub-client object
161
+     */
162
+    public function getSubClient( $type, $name = null )
163
+    {
164
+        /** client/html/account/history/order/detail/decorators/excludes
165
+         * Excludes decorators added by the "common" option from the account history order detail html client
166
+         *
167
+         * Decorators extend the functionality of a class by adding new aspects
168
+         * (e.g. log what is currently done), executing the methods of the underlying
169
+         * class only in certain conditions (e.g. only for logged in users) or
170
+         * modify what is returned to the caller.
171
+         *
172
+         * This option allows you to remove a decorator added via
173
+         * "client/html/common/decorators/default" before they are wrapped
174
+         * around the html client.
175
+         *
176
+         *  client/html/account/history/order/detail/decorators/excludes = array( 'decorator1' )
177
+         *
178
+         * This would remove the decorator named "decorator1" from the list of
179
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
180
+         * "client/html/common/decorators/default" to the html client.
181
+         *
182
+         * @param array List of decorator names
183
+         * @since 2015.08
184
+         * @category Developer
185
+         * @see client/html/common/decorators/default
186
+         * @see client/html/account/history/order/detail/decorators/global
187
+         * @see client/html/account/history/order/detail/decorators/local
188
+         */
189 189
 
190
-		/** client/html/account/history/order/detail/decorators/global
191
-		 * Adds a list of globally available decorators only to the account history order detail html client
192
-		 *
193
-		 * Decorators extend the functionality of a class by adding new aspects
194
-		 * (e.g. log what is currently done), executing the methods of the underlying
195
-		 * class only in certain conditions (e.g. only for logged in users) or
196
-		 * modify what is returned to the caller.
197
-		 *
198
-		 * This option allows you to wrap global decorators
199
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
200
-		 *
201
-		 *  client/html/account/history/order/detail/decorators/global = array( 'decorator1' )
202
-		 *
203
-		 * This would add the decorator named "decorator1" defined by
204
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
205
-		 *
206
-		 * @param array List of decorator names
207
-		 * @since 2015.08
208
-		 * @category Developer
209
-		 * @see client/html/common/decorators/default
210
-		 * @see client/html/account/history/order/detail/decorators/excludes
211
-		 * @see client/html/account/history/order/detail/decorators/local
212
-		 */
190
+        /** client/html/account/history/order/detail/decorators/global
191
+         * Adds a list of globally available decorators only to the account history order detail html client
192
+         *
193
+         * Decorators extend the functionality of a class by adding new aspects
194
+         * (e.g. log what is currently done), executing the methods of the underlying
195
+         * class only in certain conditions (e.g. only for logged in users) or
196
+         * modify what is returned to the caller.
197
+         *
198
+         * This option allows you to wrap global decorators
199
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
200
+         *
201
+         *  client/html/account/history/order/detail/decorators/global = array( 'decorator1' )
202
+         *
203
+         * This would add the decorator named "decorator1" defined by
204
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
205
+         *
206
+         * @param array List of decorator names
207
+         * @since 2015.08
208
+         * @category Developer
209
+         * @see client/html/common/decorators/default
210
+         * @see client/html/account/history/order/detail/decorators/excludes
211
+         * @see client/html/account/history/order/detail/decorators/local
212
+         */
213 213
 
214
-		/** client/html/account/history/order/detail/decorators/local
215
-		 * Adds a list of local decorators only to the account history order detail html client
216
-		 *
217
-		 * Decorators extend the functionality of a class by adding new aspects
218
-		 * (e.g. log what is currently done), executing the methods of the underlying
219
-		 * class only in certain conditions (e.g. only for logged in users) or
220
-		 * modify what is returned to the caller.
221
-		 *
222
-		 * This option allows you to wrap local decorators
223
-		 * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
224
-		 *
225
-		 *  client/html/account/history/order/detail/decorators/local = array( 'decorator2' )
226
-		 *
227
-		 * This would add the decorator named "decorator2" defined by
228
-		 * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
229
-		 *
230
-		 * @param array List of decorator names
231
-		 * @since 2015.08
232
-		 * @category Developer
233
-		 * @see client/html/common/decorators/default
234
-		 * @see client/html/account/history/order/detail/decorators/excludes
235
-		 * @see client/html/account/history/order/detail/decorators/global
236
-		 */
237
-		return $this->createSubClient( 'account/history/order/detail/' . $type, $name );
238
-	}
214
+        /** client/html/account/history/order/detail/decorators/local
215
+         * Adds a list of local decorators only to the account history order detail html client
216
+         *
217
+         * Decorators extend the functionality of a class by adding new aspects
218
+         * (e.g. log what is currently done), executing the methods of the underlying
219
+         * class only in certain conditions (e.g. only for logged in users) or
220
+         * modify what is returned to the caller.
221
+         *
222
+         * This option allows you to wrap local decorators
223
+         * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
224
+         *
225
+         *  client/html/account/history/order/detail/decorators/local = array( 'decorator2' )
226
+         *
227
+         * This would add the decorator named "decorator2" defined by
228
+         * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
229
+         *
230
+         * @param array List of decorator names
231
+         * @since 2015.08
232
+         * @category Developer
233
+         * @see client/html/common/decorators/default
234
+         * @see client/html/account/history/order/detail/decorators/excludes
235
+         * @see client/html/account/history/order/detail/decorators/global
236
+         */
237
+        return $this->createSubClient( 'account/history/order/detail/' . $type, $name );
238
+    }
239 239
 
240 240
 
241
-	/**
242
-	 * Returns the list of sub-client names configured for the client.
243
-	 *
244
-	 * @return array List of HTML client names
245
-	 */
246
-	protected function getSubClientNames()
247
-	{
248
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
249
-	}
241
+    /**
242
+     * Returns the list of sub-client names configured for the client.
243
+     *
244
+     * @return array List of HTML client names
245
+     */
246
+    protected function getSubClientNames()
247
+    {
248
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
249
+    }
250 250
 
251 251
 
252
-	/**
253
-	 * Sets the necessary parameter values in the view.
254
-	 *
255
-	 * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
256
-	 * @param array &$tags Result array for the list of tags that are associated to the output
257
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
258
-	 * @return \Aimeos\MW\View\Iface Modified view object
259
-	 */
260
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
261
-	{
262
-		if( !isset( $this->cache ) )
263
-		{
264
-			$view = parent::setViewParams( $view );
252
+    /**
253
+     * Sets the necessary parameter values in the view.
254
+     *
255
+     * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
256
+     * @param array &$tags Result array for the list of tags that are associated to the output
257
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
258
+     * @return \Aimeos\MW\View\Iface Modified view object
259
+     */
260
+    protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
261
+    {
262
+        if( !isset( $this->cache ) )
263
+        {
264
+            $view = parent::setViewParams( $view );
265 265
 
266
-			if( $view->orderItem->getPaymentStatus() >= $this->getDownloadPaymentStatus() ) {
267
-				$view->summaryShowDownloadAttributes = true;
268
-			}
266
+            if( $view->orderItem->getPaymentStatus() >= $this->getDownloadPaymentStatus() ) {
267
+                $view->summaryShowDownloadAttributes = true;
268
+            }
269 269
 
270
-			$view->summaryTaxRates = $this->getTaxRates( $view->summaryBasket );
270
+            $view->summaryTaxRates = $this->getTaxRates( $view->summaryBasket );
271 271
 
272
-			$this->cache = $view;
273
-		}
272
+            $this->cache = $view;
273
+        }
274 274
 
275
-		return $this->cache;
276
-	}
275
+        return $this->cache;
276
+    }
277 277
 }
278 278
\ No newline at end of file
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/History/Order/Standard.php 2 patches
Spacing   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -100,7 +100,7 @@  discard block
 block discarded – undo
100 100
 	 * @since 2015.02
101 101
 	 * @category Developer
102 102
 	 */
103
-	private $subPartNames = array( 'address', 'service', 'coupon', 'detail' );
103
+	private $subPartNames = array('address', 'service', 'coupon', 'detail');
104 104
 
105 105
 	private $cache;
106 106
 
@@ -113,19 +113,19 @@  discard block
 block discarded – undo
113 113
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114 114
 	 * @return string HTML code
115 115
 	 */
116
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
116
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
117 117
 	{
118 118
 		$view = $this->getView();
119 119
 
120
-		if( $view->param( 'his_action' ) != 'order' ) {
120
+		if ($view->param('his_action') != 'order') {
121 121
 			return '';
122 122
 		}
123 123
 
124
-		$view = $this->setViewParams( $view, $tags, $expire );
124
+		$view = $this->setViewParams($view, $tags, $expire);
125 125
 
126 126
 		$html = '';
127
-		foreach( $this->getSubClients() as $subclient ) {
128
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
127
+		foreach ($this->getSubClients() as $subclient) {
128
+			$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
129 129
 		}
130 130
 		$view->orderBody = $html;
131 131
 
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
 		$tplconf = 'client/html/account/history/order/standard/template-body';
153 153
 		$default = 'account/history/order-body-default.php';
154 154
 
155
-		return $view->render( $view->config( $tplconf, $default ) );
155
+		return $view->render($view->config($tplconf, $default));
156 156
 	}
157 157
 
158 158
 
@@ -164,19 +164,19 @@  discard block
 block discarded – undo
164 164
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
165 165
 	 * @return string|null String including HTML tags for the header on error
166 166
 	 */
167
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
167
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
168 168
 	{
169 169
 		$view = $this->getView();
170 170
 
171
-		if( $view->param( 'his_action' ) != 'order' ) {
171
+		if ($view->param('his_action') != 'order') {
172 172
 			return '';
173 173
 		}
174 174
 
175
-		$view = $this->setViewParams( $view, $tags, $expire );
175
+		$view = $this->setViewParams($view, $tags, $expire);
176 176
 
177 177
 		$html = '';
178
-		foreach( $this->getSubClients() as $subclient ) {
179
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
178
+		foreach ($this->getSubClients() as $subclient) {
179
+			$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
180 180
 		}
181 181
 		$view->orderHeader = $html;
182 182
 
@@ -204,7 +204,7 @@  discard block
 block discarded – undo
204 204
 		$tplconf = 'client/html/account/history/order/standard/template-header';
205 205
 		$default = 'account/history/order-header-default.php';
206 206
 
207
-		return $view->render( $view->config( $tplconf, $default ) );
207
+		return $view->render($view->config($tplconf, $default));
208 208
 	}
209 209
 
210 210
 
@@ -215,7 +215,7 @@  discard block
 block discarded – undo
215 215
 	 * @param string|null $name Name of the sub-client (Default if null)
216 216
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
217 217
 	 */
218
-	public function getSubClient( $type, $name = null )
218
+	public function getSubClient($type, $name = null)
219 219
 	{
220 220
 		/** client/html/account/history/order/decorators/excludes
221 221
 		 * Excludes decorators added by the "common" option from the account history order html client
@@ -291,7 +291,7 @@  discard block
 block discarded – undo
291 291
 		 * @see client/html/account/history/order/decorators/global
292 292
 		 */
293 293
 
294
-		return $this->createSubClient( 'account/history/order/' . $type, $name );
294
+		return $this->createSubClient('account/history/order/'.$type, $name);
295 295
 	}
296 296
 
297 297
 
@@ -302,7 +302,7 @@  discard block
 block discarded – undo
302 302
 	 */
303 303
 	protected function getSubClientNames()
304 304
 	{
305
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
305
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
306 306
 	}
307 307
 
308 308
 
@@ -314,35 +314,35 @@  discard block
 block discarded – undo
314 314
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
315 315
 	 * @return \Aimeos\MW\View\Iface Modified view object
316 316
 	 */
317
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
317
+	protected function setViewParams(\Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null)
318 318
 	{
319
-		if( !isset( $this->cache ) )
319
+		if (!isset($this->cache))
320 320
 		{
321 321
 			$context = $this->getContext();
322
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'order' );
322
+			$manager = \Aimeos\MShop\Factory::createManager($context, 'order');
323 323
 
324
-			$orderId = $view->param( 'his_id', null );
324
+			$orderId = $view->param('his_id', null);
325 325
 
326
-			if( $orderId !== null )
326
+			if ($orderId !== null)
327 327
 			{
328
-				$search = $manager->createSearch( true );
328
+				$search = $manager->createSearch(true);
329 329
 				$expr = array(
330 330
 					$search->getConditions(),
331
-					$search->compare( '==', 'order.id', $orderId ),
332
-					$search->compare( '==', 'order.base.customerid', $context->getUserId() ),
331
+					$search->compare('==', 'order.id', $orderId),
332
+					$search->compare('==', 'order.base.customerid', $context->getUserId()),
333 333
 				);
334
-				$search->setConditions( $search->combine( '&&', $expr ) );
334
+				$search->setConditions($search->combine('&&', $expr));
335 335
 
336
-				$orderItems = $manager->searchItems( $search );
336
+				$orderItems = $manager->searchItems($search);
337 337
 
338
-				if( ( $orderItem = reset( $orderItems ) ) === false )
338
+				if (($orderItem = reset($orderItems)) === false)
339 339
 				{
340
-					$msg = $view->translate( 'client', 'Order with ID "%1$s" not found' );
341
-					throw new \Aimeos\Client\Html\Exception( sprintf( $msg, $orderId ) );
340
+					$msg = $view->translate('client', 'Order with ID "%1$s" not found');
341
+					throw new \Aimeos\Client\Html\Exception(sprintf($msg, $orderId));
342 342
 				}
343 343
 
344
-				$baseManager = \Aimeos\MShop\Factory::createManager( $context, 'order/base' );
345
-				$view->summaryBasket = $baseManager->load( $orderItem->getBaseId() );
344
+				$baseManager = \Aimeos\MShop\Factory::createManager($context, 'order/base');
345
+				$view->summaryBasket = $baseManager->load($orderItem->getBaseId());
346 346
 				$view->orderItem = $orderItem;
347 347
 			}
348 348
 
Please login to merge, or discard this patch.
Indentation   +331 added lines, -331 removed lines patch added patch discarded remove patch
@@ -19,336 +19,336 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
-	implements \Aimeos\Client\Html\Common\Client\Factory\Iface
22
+    extends \Aimeos\Client\Html\Common\Client\Factory\Base
23
+    implements \Aimeos\Client\Html\Common\Client\Factory\Iface
24 24
 {
25
-	/** client/html/account/history/order/standard/subparts
26
-	 * List of HTML sub-clients rendered within the account history order section
27
-	 *
28
-	 * The output of the frontend is composed of the code generated by the HTML
29
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
30
-	 * that are responsible for rendering certain sub-parts of the output. The
31
-	 * sub-clients can contain HTML clients themselves and therefore a
32
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
33
-	 * the output that is placed inside the container of its parent.
34
-	 *
35
-	 * At first, always the HTML code generated by the parent is printed, then
36
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
37
-	 * determines the order of the output of these sub-clients inside the parent
38
-	 * container. If the configured list of clients is
39
-	 *
40
-	 *  array( "subclient1", "subclient2" )
41
-	 *
42
-	 * you can easily change the order of the output by reordering the subparts:
43
-	 *
44
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
-	 *
46
-	 * You can also remove one or more parts if they shouldn't be rendered:
47
-	 *
48
-	 *  client/html/<clients>/subparts = array( "subclient1" )
49
-	 *
50
-	 * As the clients only generates structural HTML, the layout defined via CSS
51
-	 * should support adding, removing or reordering content by a fluid like
52
-	 * design.
53
-	 *
54
-	 * @param array List of sub-client names
55
-	 * @since 2015.02
56
-	 * @category Developer
57
-	 */
58
-	private $subPartPath = 'client/html/account/history/order/standard/subparts';
59
-
60
-	/** client/html/account/history/order/address/name
61
-	 * Name of the address part used by the account history order client implementation
62
-	 *
63
-	 * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Address\Myname".
64
-	 * The name is case-sensitive and you should avoid camel case names like "MyName".
65
-	 *
66
-	 * @param string Last part of the client class name
67
-	 * @since 2015.02
68
-	 * @category Developer
69
-	 */
70
-
71
-	/** client/html/account/history/order/service/name
72
-	 * Name of the service part used by the account history order client implementation
73
-	 *
74
-	 * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Service\Myname".
75
-	 * The name is case-sensitive and you should avoid camel case names like "MyName".
76
-	 *
77
-	 * @param string Last part of the client class name
78
-	 * @since 2015.02
79
-	 * @category Developer
80
-	 */
81
-
82
-	/** client/html/account/history/order/coupon/name
83
-	 * Name of the coupon part used by the account history order client implementation
84
-	 *
85
-	 * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Coupon\Myname".
86
-	 * The name is case-sensitive and you should avoid camel case names like "MyName".
87
-	 *
88
-	 * @param string Last part of the client class name
89
-	 * @since 2015.02
90
-	 * @category Developer
91
-	 */
92
-
93
-	/** client/html/account/history/order/detail/name
94
-	 * Name of the detail part used by the account history order client implementation
95
-	 *
96
-	 * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Detail\Myname".
97
-	 * The name is case-sensitive and you should avoid camel case names like "MyName".
98
-	 *
99
-	 * @param string Last part of the client class name
100
-	 * @since 2015.02
101
-	 * @category Developer
102
-	 */
103
-	private $subPartNames = array( 'address', 'service', 'coupon', 'detail' );
104
-
105
-	private $cache;
106
-
107
-
108
-	/**
109
-	 * Returns the HTML code for insertion into the body.
110
-	 *
111
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
112
-	 * @param array &$tags Result array for the list of tags that are associated to the output
113
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114
-	 * @return string HTML code
115
-	 */
116
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
117
-	{
118
-		$view = $this->getView();
119
-
120
-		if( $view->param( 'his_action' ) != 'order' ) {
121
-			return '';
122
-		}
123
-
124
-		$view = $this->setViewParams( $view, $tags, $expire );
125
-
126
-		$html = '';
127
-		foreach( $this->getSubClients() as $subclient ) {
128
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
129
-		}
130
-		$view->orderBody = $html;
131
-
132
-		/** client/html/account/history/order/standard/template-body
133
-		 * Relative path to the HTML body template of the account history order client.
134
-		 *
135
-		 * The template file contains the HTML code and processing instructions
136
-		 * to generate the result shown in the body of the frontend. The
137
-		 * configuration string is the path to the template file relative
138
-		 * to the templates directory (usually in client/html/templates).
139
-		 *
140
-		 * You can overwrite the template file configuration in extensions and
141
-		 * provide alternative templates. These alternative templates should be
142
-		 * named like the default one but with the string "standard" replaced by
143
-		 * an unique name. You may use the name of your project for this. If
144
-		 * you've implemented an alternative client class as well, "standard"
145
-		 * should be replaced by the name of the new class.
146
-		 *
147
-		 * @param string Relative path to the template creating code for the HTML page body
148
-		 * @since 2015.02
149
-		 * @category Developer
150
-		 * @see client/html/account/history/order/standard/template-header
151
-		 */
152
-		$tplconf = 'client/html/account/history/order/standard/template-body';
153
-		$default = 'account/history/order-body-default.php';
154
-
155
-		return $view->render( $view->config( $tplconf, $default ) );
156
-	}
157
-
158
-
159
-	/**
160
-	 * Returns the HTML string for insertion into the header.
161
-	 *
162
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
163
-	 * @param array &$tags Result array for the list of tags that are associated to the output
164
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
165
-	 * @return string String including HTML tags for the header on error
166
-	 */
167
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
168
-	{
169
-		$view = $this->getView();
170
-
171
-		if( $view->param( 'his_action' ) != 'order' ) {
172
-			return '';
173
-		}
174
-
175
-		$view = $this->setViewParams( $view, $tags, $expire );
176
-
177
-		$html = '';
178
-		foreach( $this->getSubClients() as $subclient ) {
179
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
180
-		}
181
-		$view->orderHeader = $html;
182
-
183
-		/** client/html/account/history/order/standard/template-header
184
-		 * Relative path to the HTML header template of the account history order client.
185
-		 *
186
-		 * The template file contains the HTML code and processing instructions
187
-		 * to generate the HTML code that is inserted into the HTML page header
188
-		 * of the rendered page in the frontend. The configuration string is the
189
-		 * path to the template file relative to the templates directory (usually
190
-		 * in client/html/templates).
191
-		 *
192
-		 * You can overwrite the template file configuration in extensions and
193
-		 * provide alternative templates. These alternative templates should be
194
-		 * named like the default one but with the string "standard" replaced by
195
-		 * an unique name. You may use the name of your project for this. If
196
-		 * you've implemented an alternative client class as well, "standard"
197
-		 * should be replaced by the name of the new class.
198
-		 *
199
-		 * @param string Relative path to the template creating code for the HTML page head
200
-		 * @since 2015.02
201
-		 * @category Developer
202
-		 * @see client/html/account/history/order/standard/template-body
203
-		 */
204
-		$tplconf = 'client/html/account/history/order/standard/template-header';
205
-		$default = 'account/history/order-header-default.php';
206
-
207
-		return $view->render( $view->config( $tplconf, $default ) );
208
-	}
209
-
210
-
211
-	/**
212
-	 * Returns the sub-client given by its name.
213
-	 *
214
-	 * @param string $type Name of the client type
215
-	 * @param string|null $name Name of the sub-client (Default if null)
216
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
217
-	 */
218
-	public function getSubClient( $type, $name = null )
219
-	{
220
-		/** client/html/account/history/order/decorators/excludes
221
-		 * Excludes decorators added by the "common" option from the account history order html client
222
-		 *
223
-		 * Decorators extend the functionality of a class by adding new aspects
224
-		 * (e.g. log what is currently done), executing the methods of the underlying
225
-		 * class only in certain conditions (e.g. only for logged in users) or
226
-		 * modify what is returned to the caller.
227
-		 *
228
-		 * This option allows you to remove a decorator added via
229
-		 * "client/html/common/decorators/default" before they are wrapped
230
-		 * around the html client.
231
-		 *
232
-		 *  client/html/account/history/order/decorators/excludes = array( 'decorator1' )
233
-		 *
234
-		 * This would remove the decorator named "decorator1" from the list of
235
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
236
-		 * "client/html/common/decorators/default" to the html client.
237
-		 *
238
-		 * @param array List of decorator names
239
-		 * @since 2015.08
240
-		 * @category Developer
241
-		 * @see client/html/common/decorators/default
242
-		 * @see client/html/account/history/order/decorators/global
243
-		 * @see client/html/account/history/order/decorators/local
244
-		 */
245
-
246
-		/** client/html/account/history/order/decorators/global
247
-		 * Adds a list of globally available decorators only to the account history order html client
248
-		 *
249
-		 * Decorators extend the functionality of a class by adding new aspects
250
-		 * (e.g. log what is currently done), executing the methods of the underlying
251
-		 * class only in certain conditions (e.g. only for logged in users) or
252
-		 * modify what is returned to the caller.
253
-		 *
254
-		 * This option allows you to wrap global decorators
255
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
256
-		 *
257
-		 *  client/html/account/history/order/decorators/global = array( 'decorator1' )
258
-		 *
259
-		 * This would add the decorator named "decorator1" defined by
260
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
261
-		 *
262
-		 * @param array List of decorator names
263
-		 * @since 2015.08
264
-		 * @category Developer
265
-		 * @see client/html/common/decorators/default
266
-		 * @see client/html/account/history/order/decorators/excludes
267
-		 * @see client/html/account/history/order/decorators/local
268
-		 */
269
-
270
-		/** client/html/account/history/order/decorators/local
271
-		 * Adds a list of local decorators only to the account history order html client
272
-		 *
273
-		 * Decorators extend the functionality of a class by adding new aspects
274
-		 * (e.g. log what is currently done), executing the methods of the underlying
275
-		 * class only in certain conditions (e.g. only for logged in users) or
276
-		 * modify what is returned to the caller.
277
-		 *
278
-		 * This option allows you to wrap local decorators
279
-		 * ("\Aimeos\Client\Html\Account\Decorator\*") around the html client.
280
-		 *
281
-		 *  client/html/account/history/order/decorators/local = array( 'decorator2' )
282
-		 *
283
-		 * This would add the decorator named "decorator2" defined by
284
-		 * "\Aimeos\Client\Html\Account\Decorator\Decorator2" only to the html client.
285
-		 *
286
-		 * @param array List of decorator names
287
-		 * @since 2015.08
288
-		 * @category Developer
289
-		 * @see client/html/common/decorators/default
290
-		 * @see client/html/account/history/order/decorators/excludes
291
-		 * @see client/html/account/history/order/decorators/global
292
-		 */
293
-
294
-		return $this->createSubClient( 'account/history/order/' . $type, $name );
295
-	}
296
-
297
-
298
-	/**
299
-	 * Returns the list of sub-client names configured for the client.
300
-	 *
301
-	 * @return array List of HTML client names
302
-	 */
303
-	protected function getSubClientNames()
304
-	{
305
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
306
-	}
307
-
308
-
309
-	/**
310
-	 * Sets the necessary parameter values in the view.
311
-	 *
312
-	 * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
313
-	 * @param array &$tags Result array for the list of tags that are associated to the output
314
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
315
-	 * @return \Aimeos\MW\View\Iface Modified view object
316
-	 */
317
-	protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
318
-	{
319
-		if( !isset( $this->cache ) )
320
-		{
321
-			$context = $this->getContext();
322
-			$manager = \Aimeos\MShop\Factory::createManager( $context, 'order' );
323
-
324
-			$orderId = $view->param( 'his_id', null );
325
-
326
-			if( $orderId !== null )
327
-			{
328
-				$search = $manager->createSearch( true );
329
-				$expr = array(
330
-					$search->getConditions(),
331
-					$search->compare( '==', 'order.id', $orderId ),
332
-					$search->compare( '==', 'order.base.customerid', $context->getUserId() ),
333
-				);
334
-				$search->setConditions( $search->combine( '&&', $expr ) );
335
-
336
-				$orderItems = $manager->searchItems( $search );
337
-
338
-				if( ( $orderItem = reset( $orderItems ) ) === false )
339
-				{
340
-					$msg = $view->translate( 'client', 'Order with ID "%1$s" not found' );
341
-					throw new \Aimeos\Client\Html\Exception( sprintf( $msg, $orderId ) );
342
-				}
343
-
344
-				$baseManager = \Aimeos\MShop\Factory::createManager( $context, 'order/base' );
345
-				$view->summaryBasket = $baseManager->load( $orderItem->getBaseId() );
346
-				$view->orderItem = $orderItem;
347
-			}
348
-
349
-			$this->cache = $view;
350
-		}
351
-
352
-		return $this->cache;
353
-	}
25
+    /** client/html/account/history/order/standard/subparts
26
+     * List of HTML sub-clients rendered within the account history order section
27
+     *
28
+     * The output of the frontend is composed of the code generated by the HTML
29
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
30
+     * that are responsible for rendering certain sub-parts of the output. The
31
+     * sub-clients can contain HTML clients themselves and therefore a
32
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
33
+     * the output that is placed inside the container of its parent.
34
+     *
35
+     * At first, always the HTML code generated by the parent is printed, then
36
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
37
+     * determines the order of the output of these sub-clients inside the parent
38
+     * container. If the configured list of clients is
39
+     *
40
+     *  array( "subclient1", "subclient2" )
41
+     *
42
+     * you can easily change the order of the output by reordering the subparts:
43
+     *
44
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
+     *
46
+     * You can also remove one or more parts if they shouldn't be rendered:
47
+     *
48
+     *  client/html/<clients>/subparts = array( "subclient1" )
49
+     *
50
+     * As the clients only generates structural HTML, the layout defined via CSS
51
+     * should support adding, removing or reordering content by a fluid like
52
+     * design.
53
+     *
54
+     * @param array List of sub-client names
55
+     * @since 2015.02
56
+     * @category Developer
57
+     */
58
+    private $subPartPath = 'client/html/account/history/order/standard/subparts';
59
+
60
+    /** client/html/account/history/order/address/name
61
+     * Name of the address part used by the account history order client implementation
62
+     *
63
+     * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Address\Myname".
64
+     * The name is case-sensitive and you should avoid camel case names like "MyName".
65
+     *
66
+     * @param string Last part of the client class name
67
+     * @since 2015.02
68
+     * @category Developer
69
+     */
70
+
71
+    /** client/html/account/history/order/service/name
72
+     * Name of the service part used by the account history order client implementation
73
+     *
74
+     * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Service\Myname".
75
+     * The name is case-sensitive and you should avoid camel case names like "MyName".
76
+     *
77
+     * @param string Last part of the client class name
78
+     * @since 2015.02
79
+     * @category Developer
80
+     */
81
+
82
+    /** client/html/account/history/order/coupon/name
83
+     * Name of the coupon part used by the account history order client implementation
84
+     *
85
+     * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Coupon\Myname".
86
+     * The name is case-sensitive and you should avoid camel case names like "MyName".
87
+     *
88
+     * @param string Last part of the client class name
89
+     * @since 2015.02
90
+     * @category Developer
91
+     */
92
+
93
+    /** client/html/account/history/order/detail/name
94
+     * Name of the detail part used by the account history order client implementation
95
+     *
96
+     * Use "Myname" if your class is named "\Aimeos\Client\Html\Account\History\Order\Detail\Myname".
97
+     * The name is case-sensitive and you should avoid camel case names like "MyName".
98
+     *
99
+     * @param string Last part of the client class name
100
+     * @since 2015.02
101
+     * @category Developer
102
+     */
103
+    private $subPartNames = array( 'address', 'service', 'coupon', 'detail' );
104
+
105
+    private $cache;
106
+
107
+
108
+    /**
109
+     * Returns the HTML code for insertion into the body.
110
+     *
111
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
112
+     * @param array &$tags Result array for the list of tags that are associated to the output
113
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114
+     * @return string HTML code
115
+     */
116
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
117
+    {
118
+        $view = $this->getView();
119
+
120
+        if( $view->param( 'his_action' ) != 'order' ) {
121
+            return '';
122
+        }
123
+
124
+        $view = $this->setViewParams( $view, $tags, $expire );
125
+
126
+        $html = '';
127
+        foreach( $this->getSubClients() as $subclient ) {
128
+            $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
129
+        }
130
+        $view->orderBody = $html;
131
+
132
+        /** client/html/account/history/order/standard/template-body
133
+         * Relative path to the HTML body template of the account history order client.
134
+         *
135
+         * The template file contains the HTML code and processing instructions
136
+         * to generate the result shown in the body of the frontend. The
137
+         * configuration string is the path to the template file relative
138
+         * to the templates directory (usually in client/html/templates).
139
+         *
140
+         * You can overwrite the template file configuration in extensions and
141
+         * provide alternative templates. These alternative templates should be
142
+         * named like the default one but with the string "standard" replaced by
143
+         * an unique name. You may use the name of your project for this. If
144
+         * you've implemented an alternative client class as well, "standard"
145
+         * should be replaced by the name of the new class.
146
+         *
147
+         * @param string Relative path to the template creating code for the HTML page body
148
+         * @since 2015.02
149
+         * @category Developer
150
+         * @see client/html/account/history/order/standard/template-header
151
+         */
152
+        $tplconf = 'client/html/account/history/order/standard/template-body';
153
+        $default = 'account/history/order-body-default.php';
154
+
155
+        return $view->render( $view->config( $tplconf, $default ) );
156
+    }
157
+
158
+
159
+    /**
160
+     * Returns the HTML string for insertion into the header.
161
+     *
162
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
163
+     * @param array &$tags Result array for the list of tags that are associated to the output
164
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
165
+     * @return string String including HTML tags for the header on error
166
+     */
167
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
168
+    {
169
+        $view = $this->getView();
170
+
171
+        if( $view->param( 'his_action' ) != 'order' ) {
172
+            return '';
173
+        }
174
+
175
+        $view = $this->setViewParams( $view, $tags, $expire );
176
+
177
+        $html = '';
178
+        foreach( $this->getSubClients() as $subclient ) {
179
+            $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
180
+        }
181
+        $view->orderHeader = $html;
182
+
183
+        /** client/html/account/history/order/standard/template-header
184
+         * Relative path to the HTML header template of the account history order client.
185
+         *
186
+         * The template file contains the HTML code and processing instructions
187
+         * to generate the HTML code that is inserted into the HTML page header
188
+         * of the rendered page in the frontend. The configuration string is the
189
+         * path to the template file relative to the templates directory (usually
190
+         * in client/html/templates).
191
+         *
192
+         * You can overwrite the template file configuration in extensions and
193
+         * provide alternative templates. These alternative templates should be
194
+         * named like the default one but with the string "standard" replaced by
195
+         * an unique name. You may use the name of your project for this. If
196
+         * you've implemented an alternative client class as well, "standard"
197
+         * should be replaced by the name of the new class.
198
+         *
199
+         * @param string Relative path to the template creating code for the HTML page head
200
+         * @since 2015.02
201
+         * @category Developer
202
+         * @see client/html/account/history/order/standard/template-body
203
+         */
204
+        $tplconf = 'client/html/account/history/order/standard/template-header';
205
+        $default = 'account/history/order-header-default.php';
206
+
207
+        return $view->render( $view->config( $tplconf, $default ) );
208
+    }
209
+
210
+
211
+    /**
212
+     * Returns the sub-client given by its name.
213
+     *
214
+     * @param string $type Name of the client type
215
+     * @param string|null $name Name of the sub-client (Default if null)
216
+     * @return \Aimeos\Client\Html\Iface Sub-client object
217
+     */
218
+    public function getSubClient( $type, $name = null )
219
+    {
220
+        /** client/html/account/history/order/decorators/excludes
221
+         * Excludes decorators added by the "common" option from the account history order html client
222
+         *
223
+         * Decorators extend the functionality of a class by adding new aspects
224
+         * (e.g. log what is currently done), executing the methods of the underlying
225
+         * class only in certain conditions (e.g. only for logged in users) or
226
+         * modify what is returned to the caller.
227
+         *
228
+         * This option allows you to remove a decorator added via
229
+         * "client/html/common/decorators/default" before they are wrapped
230
+         * around the html client.
231
+         *
232
+         *  client/html/account/history/order/decorators/excludes = array( 'decorator1' )
233
+         *
234
+         * This would remove the decorator named "decorator1" from the list of
235
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
236
+         * "client/html/common/decorators/default" to the html client.
237
+         *
238
+         * @param array List of decorator names
239
+         * @since 2015.08
240
+         * @category Developer
241
+         * @see client/html/common/decorators/default
242
+         * @see client/html/account/history/order/decorators/global
243
+         * @see client/html/account/history/order/decorators/local
244
+         */
245
+
246
+        /** client/html/account/history/order/decorators/global
247
+         * Adds a list of globally available decorators only to the account history order html client
248
+         *
249
+         * Decorators extend the functionality of a class by adding new aspects
250
+         * (e.g. log what is currently done), executing the methods of the underlying
251
+         * class only in certain conditions (e.g. only for logged in users) or
252
+         * modify what is returned to the caller.
253
+         *
254
+         * This option allows you to wrap global decorators
255
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
256
+         *
257
+         *  client/html/account/history/order/decorators/global = array( 'decorator1' )
258
+         *
259
+         * This would add the decorator named "decorator1" defined by
260
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
261
+         *
262
+         * @param array List of decorator names
263
+         * @since 2015.08
264
+         * @category Developer
265
+         * @see client/html/common/decorators/default
266
+         * @see client/html/account/history/order/decorators/excludes
267
+         * @see client/html/account/history/order/decorators/local
268
+         */
269
+
270
+        /** client/html/account/history/order/decorators/local
271
+         * Adds a list of local decorators only to the account history order html client
272
+         *
273
+         * Decorators extend the functionality of a class by adding new aspects
274
+         * (e.g. log what is currently done), executing the methods of the underlying
275
+         * class only in certain conditions (e.g. only for logged in users) or
276
+         * modify what is returned to the caller.
277
+         *
278
+         * This option allows you to wrap local decorators
279
+         * ("\Aimeos\Client\Html\Account\Decorator\*") around the html client.
280
+         *
281
+         *  client/html/account/history/order/decorators/local = array( 'decorator2' )
282
+         *
283
+         * This would add the decorator named "decorator2" defined by
284
+         * "\Aimeos\Client\Html\Account\Decorator\Decorator2" only to the html client.
285
+         *
286
+         * @param array List of decorator names
287
+         * @since 2015.08
288
+         * @category Developer
289
+         * @see client/html/common/decorators/default
290
+         * @see client/html/account/history/order/decorators/excludes
291
+         * @see client/html/account/history/order/decorators/global
292
+         */
293
+
294
+        return $this->createSubClient( 'account/history/order/' . $type, $name );
295
+    }
296
+
297
+
298
+    /**
299
+     * Returns the list of sub-client names configured for the client.
300
+     *
301
+     * @return array List of HTML client names
302
+     */
303
+    protected function getSubClientNames()
304
+    {
305
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
306
+    }
307
+
308
+
309
+    /**
310
+     * Sets the necessary parameter values in the view.
311
+     *
312
+     * @param \Aimeos\MW\View\Iface $view The view object which generates the HTML output
313
+     * @param array &$tags Result array for the list of tags that are associated to the output
314
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
315
+     * @return \Aimeos\MW\View\Iface Modified view object
316
+     */
317
+    protected function setViewParams( \Aimeos\MW\View\Iface $view, array &$tags = array(), &$expire = null )
318
+    {
319
+        if( !isset( $this->cache ) )
320
+        {
321
+            $context = $this->getContext();
322
+            $manager = \Aimeos\MShop\Factory::createManager( $context, 'order' );
323
+
324
+            $orderId = $view->param( 'his_id', null );
325
+
326
+            if( $orderId !== null )
327
+            {
328
+                $search = $manager->createSearch( true );
329
+                $expr = array(
330
+                    $search->getConditions(),
331
+                    $search->compare( '==', 'order.id', $orderId ),
332
+                    $search->compare( '==', 'order.base.customerid', $context->getUserId() ),
333
+                );
334
+                $search->setConditions( $search->combine( '&&', $expr ) );
335
+
336
+                $orderItems = $manager->searchItems( $search );
337
+
338
+                if( ( $orderItem = reset( $orderItems ) ) === false )
339
+                {
340
+                    $msg = $view->translate( 'client', 'Order with ID "%1$s" not found' );
341
+                    throw new \Aimeos\Client\Html\Exception( sprintf( $msg, $orderId ) );
342
+                }
343
+
344
+                $baseManager = \Aimeos\MShop\Factory::createManager( $context, 'order/base' );
345
+                $view->summaryBasket = $baseManager->load( $orderItem->getBaseId() );
346
+                $view->orderItem = $orderItem;
347
+            }
348
+
349
+            $this->cache = $view;
350
+        }
351
+
352
+        return $this->cache;
353
+    }
354 354
 }
355 355
\ No newline at end of file
Please login to merge, or discard this patch.
client/html/src/Client/Html/Account/History/Order/Address/Standard.php 2 patches
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -67,13 +67,13 @@  discard block
 block discarded – undo
67 67
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68 68
 	 * @return string HTML code
69 69
 	*/
70
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
70
+	public function getBody($uid = '', array &$tags = array(), &$expire = null)
71 71
 	{
72
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
72
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
73 73
 
74 74
 		$html = '';
75
-		foreach( $this->getSubClients() as $subclient ) {
76
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
75
+		foreach ($this->getSubClients() as $subclient) {
76
+			$html .= $subclient->setView($view)->getBody($uid, $tags, $expire);
77 77
 		}
78 78
 		$view->addressBody = $html;
79 79
 
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 		$tplconf = 'client/html/account/history/order/address/standard/template-body';
102 102
 		$default = 'common/summary/address-body-default.php';
103 103
 
104
-		return $view->render( $view->config( $tplconf, $default ) );
104
+		return $view->render($view->config($tplconf, $default));
105 105
 	}
106 106
 
107 107
 
@@ -113,13 +113,13 @@  discard block
 block discarded – undo
113 113
 	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114 114
 	 * @return string|null String including HTML tags for the header on error
115 115
 	 */
116
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
116
+	public function getHeader($uid = '', array &$tags = array(), &$expire = null)
117 117
 	{
118
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
118
+		$view = $this->setViewParams($this->getView(), $tags, $expire);
119 119
 
120 120
 		$html = '';
121
-		foreach( $this->getSubClients() as $subclient ) {
122
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
121
+		foreach ($this->getSubClients() as $subclient) {
122
+			$html .= $subclient->setView($view)->getHeader($uid, $tags, $expire);
123 123
 		}
124 124
 		$view->addressHeader = $html;
125 125
 
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
 		$tplconf = 'client/html/account/history/order/address/standard/template-header';
149 149
 		$default = 'common/summary/address-header-default.php';
150 150
 
151
-		return $view->render( $view->config( $tplconf, $default ) );
151
+		return $view->render($view->config($tplconf, $default));
152 152
 	}
153 153
 
154 154
 
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 	 * @param string|null $name Name of the sub-client (Default if null)
160 160
 	 * @return \Aimeos\Client\Html\Iface Sub-client object
161 161
 	 */
162
-	public function getSubClient( $type, $name = null )
162
+	public function getSubClient($type, $name = null)
163 163
 	{
164 164
 		/** client/html/account/history/order/address/decorators/excludes
165 165
 		 * Excludes decorators added by the "common" option from the account history order address html client
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
 		 * @see client/html/account/history/order/address/decorators/excludes
235 235
 		 * @see client/html/account/history/order/address/decorators/global
236 236
 		 */
237
-		return $this->createSubClient( 'account/history/order/address/' . $type, $name );
237
+		return $this->createSubClient('account/history/order/address/'.$type, $name);
238 238
 	}
239 239
 
240 240
 
@@ -245,6 +245,6 @@  discard block
 block discarded – undo
245 245
 	 */
246 246
 	protected function getSubClientNames()
247 247
 	{
248
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
248
+		return $this->getContext()->getConfig()->get($this->subPartPath, $this->subPartNames);
249 249
 	}
250 250
 }
251 251
\ No newline at end of file
Please login to merge, or discard this patch.
Indentation   +227 added lines, -227 removed lines patch added patch discarded remove patch
@@ -19,232 +19,232 @@
 block discarded – undo
19 19
  * @subpackage Html
20 20
  */
21 21
 class Standard
22
-	extends \Aimeos\Client\Html\Common\Summary\Address\Base
23
-	implements \Aimeos\Client\Html\Common\Client\Factory\Iface
22
+    extends \Aimeos\Client\Html\Common\Summary\Address\Base
23
+    implements \Aimeos\Client\Html\Common\Client\Factory\Iface
24 24
 {
25
-	/** client/html/account/history/order/address/standard/subparts
26
-	 * List of HTML sub-clients rendered within the account history order address section
27
-	 *
28
-	 * The output of the frontend is composed of the code generated by the HTML
29
-	 * clients. Each HTML client can consist of serveral (or none) sub-clients
30
-	 * that are responsible for rendering certain sub-parts of the output. The
31
-	 * sub-clients can contain HTML clients themselves and therefore a
32
-	 * hierarchical tree of HTML clients is composed. Each HTML client creates
33
-	 * the output that is placed inside the container of its parent.
34
-	 *
35
-	 * At first, always the HTML code generated by the parent is printed, then
36
-	 * the HTML code of its sub-clients. The order of the HTML sub-clients
37
-	 * determines the order of the output of these sub-clients inside the parent
38
-	 * container. If the configured list of clients is
39
-	 *
40
-	 *  array( "subclient1", "subclient2" )
41
-	 *
42
-	 * you can easily change the order of the output by reordering the subparts:
43
-	 *
44
-	 *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
-	 *
46
-	 * You can also remove one or more parts if they shouldn't be rendered:
47
-	 *
48
-	 *  client/html/<clients>/subparts = array( "subclient1" )
49
-	 *
50
-	 * As the clients only generates structural HTML, the layout defined via CSS
51
-	 * should support adding, removing or reordering content by a fluid like
52
-	 * design.
53
-	 *
54
-	 * @param array List of sub-client names
55
-	 * @since 2015.11
56
-	 * @category Developer
57
-	 */
58
-	private $subPartPath = 'client/html/account/history/order/address/standard/subparts';
59
-	private $subPartNames = array();
60
-
61
-
62
-	/**
63
-	 * Returns the HTML code for insertion into the body.
64
-	 *
65
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
66
-	 * @param array &$tags Result array for the list of tags that are associated to the output
67
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68
-	 * @return string HTML code
69
-	*/
70
-	public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
-	{
72
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
73
-
74
-		$html = '';
75
-		foreach( $this->getSubClients() as $subclient ) {
76
-			$html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
77
-		}
78
-		$view->addressBody = $html;
79
-
80
-		/** client/html/account/history/order/address/standard/template-body
81
-		 * Relative path to the HTML body template of the account history order address client.
82
-		 *
83
-		 * The template file contains the HTML code and processing instructions
84
-		 * to generate the result shown in the body of the frontend. The
85
-		 * configuration string is the path to the template file relative
86
-		 * to the templates directory (usually in client/html/templates).
87
-		 *
88
-		 * You can overwrite the template file configuration in extensions and
89
-		 * provide alternative templates. These alternative templates should be
90
-		 * named like the default one but with the string "standard" replaced by
91
-		 * an unique name. You may use the name of your project for this. If
92
-		 * you've implemented an alternative client class as well, "standard"
93
-		 * (second one) should be replaced by the name of the new class in lower
94
-		 * case.
95
-		 *
96
-		 * @param string Relative path to the template creating code for the HTML page body
97
-		 * @since 2015.11
98
-		 * @category Developer
99
-		 * @see client/html/account/history/order/address/standard/template-header
100
-		 */
101
-		$tplconf = 'client/html/account/history/order/address/standard/template-body';
102
-		$default = 'common/summary/address-body-default.php';
103
-
104
-		return $view->render( $view->config( $tplconf, $default ) );
105
-	}
106
-
107
-
108
-	/**
109
-	 * Returns the HTML string for insertion into the header.
110
-	 *
111
-	 * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
112
-	 * @param array &$tags Result array for the list of tags that are associated to the output
113
-	 * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114
-	 * @return string String including HTML tags for the header on error
115
-	 */
116
-	public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
117
-	{
118
-		$view = $this->setViewParams( $this->getView(), $tags, $expire );
119
-
120
-		$html = '';
121
-		foreach( $this->getSubClients() as $subclient ) {
122
-			$html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
123
-		}
124
-		$view->addressHeader = $html;
125
-
126
-		/** client/html/account/history/order/address/standard/template-header
127
-		 * Relative path to the HTML header template of the account history order address client.
128
-		 *
129
-		 * The template file contains the HTML code and processing instructions
130
-		 * to generate the HTML code that is inserted into the HTML page header
131
-		 * of the rendered page in the frontend. The configuration string is the
132
-		 * path to the template file relative to the templates directory (usually
133
-		 * in client/html/templates).
134
-		 *
135
-		 * You can overwrite the template file configuration in extensions and
136
-		 * provide alternative templates. These alternative templates should be
137
-		 * named like the default one but with the string "standard" replaced by
138
-		 * an unique name. You may use the name of your project for this. If
139
-		 * you've implemented an alternative client class as well, "standard"
140
-		 * (second one) should be replaced by the name of the new class in lower
141
-		 * case.
142
-		 *
143
-		 * @param string Relative path to the template creating code for the HTML page head
144
-		 * @since 2015.11
145
-		 * @category Developer
146
-		 * @see client/html/account/history/order/address/standard/template-body
147
-		 */
148
-		$tplconf = 'client/html/account/history/order/address/standard/template-header';
149
-		$default = 'common/summary/address-header-default.php';
150
-
151
-		return $view->render( $view->config( $tplconf, $default ) );
152
-	}
153
-
154
-
155
-	/**
156
-	 * Returns the sub-client given by its name.
157
-	 *
158
-	 * @param string $type Name of the client type
159
-	 * @param string|null $name Name of the sub-client (Default if null)
160
-	 * @return \Aimeos\Client\Html\Iface Sub-client object
161
-	 */
162
-	public function getSubClient( $type, $name = null )
163
-	{
164
-		/** client/html/account/history/order/address/decorators/excludes
165
-		 * Excludes decorators added by the "common" option from the account history order address html client
166
-		 *
167
-		 * Decorators extend the functionality of a class by adding new aspects
168
-		 * (e.g. log what is currently done), executing the methods of the underlying
169
-		 * class only in certain conditions (e.g. only for logged in users) or
170
-		 * modify what is returned to the caller.
171
-		 *
172
-		 * This option allows you to remove a decorator added via
173
-		 * "client/html/common/decorators/default" before they are wrapped
174
-		 * around the html client.
175
-		 *
176
-		 *  client/html/account/history/order/address/decorators/excludes = array( 'decorator1' )
177
-		 *
178
-		 * This would remove the decorator named "decorator1" from the list of
179
-		 * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
180
-		 * "client/html/common/decorators/default" to the html client.
181
-		 *
182
-		 * @param array List of decorator names
183
-		 * @since 2015.08
184
-		 * @category Developer
185
-		 * @see client/html/common/decorators/default
186
-		 * @see client/html/account/history/order/address/decorators/global
187
-		 * @see client/html/account/history/order/address/decorators/local
188
-		 */
189
-
190
-		/** client/html/account/history/order/address/decorators/global
191
-		 * Adds a list of globally available decorators only to the account history order address html client
192
-		 *
193
-		 * Decorators extend the functionality of a class by adding new aspects
194
-		 * (e.g. log what is currently done), executing the methods of the underlying
195
-		 * class only in certain conditions (e.g. only for logged in users) or
196
-		 * modify what is returned to the caller.
197
-		 *
198
-		 * This option allows you to wrap global decorators
199
-		 * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
200
-		 *
201
-		 *  client/html/account/history/order/address/decorators/global = array( 'decorator1' )
202
-		 *
203
-		 * This would add the decorator named "decorator1" defined by
204
-		 * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
205
-		 *
206
-		 * @param array List of decorator names
207
-		 * @since 2015.08
208
-		 * @category Developer
209
-		 * @see client/html/common/decorators/default
210
-		 * @see client/html/account/history/order/address/decorators/excludes
211
-		 * @see client/html/account/history/order/address/decorators/local
212
-		 */
213
-
214
-		/** client/html/account/history/order/address/decorators/local
215
-		 * Adds a list of local decorators only to the account history order address html client
216
-		 *
217
-		 * Decorators extend the functionality of a class by adding new aspects
218
-		 * (e.g. log what is currently done), executing the methods of the underlying
219
-		 * class only in certain conditions (e.g. only for logged in users) or
220
-		 * modify what is returned to the caller.
221
-		 *
222
-		 * This option allows you to wrap local decorators
223
-		 * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
224
-		 *
225
-		 *  client/html/account/history/order/address/decorators/local = array( 'decorator2' )
226
-		 *
227
-		 * This would add the decorator named "decorator2" defined by
228
-		 * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
229
-		 *
230
-		 * @param array List of decorator names
231
-		 * @since 2015.08
232
-		 * @category Developer
233
-		 * @see client/html/common/decorators/default
234
-		 * @see client/html/account/history/order/address/decorators/excludes
235
-		 * @see client/html/account/history/order/address/decorators/global
236
-		 */
237
-		return $this->createSubClient( 'account/history/order/address/' . $type, $name );
238
-	}
239
-
240
-
241
-	/**
242
-	 * Returns the list of sub-client names configured for the client.
243
-	 *
244
-	 * @return array List of HTML client names
245
-	 */
246
-	protected function getSubClientNames()
247
-	{
248
-		return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
249
-	}
25
+    /** client/html/account/history/order/address/standard/subparts
26
+     * List of HTML sub-clients rendered within the account history order address section
27
+     *
28
+     * The output of the frontend is composed of the code generated by the HTML
29
+     * clients. Each HTML client can consist of serveral (or none) sub-clients
30
+     * that are responsible for rendering certain sub-parts of the output. The
31
+     * sub-clients can contain HTML clients themselves and therefore a
32
+     * hierarchical tree of HTML clients is composed. Each HTML client creates
33
+     * the output that is placed inside the container of its parent.
34
+     *
35
+     * At first, always the HTML code generated by the parent is printed, then
36
+     * the HTML code of its sub-clients. The order of the HTML sub-clients
37
+     * determines the order of the output of these sub-clients inside the parent
38
+     * container. If the configured list of clients is
39
+     *
40
+     *  array( "subclient1", "subclient2" )
41
+     *
42
+     * you can easily change the order of the output by reordering the subparts:
43
+     *
44
+     *  client/html/<clients>/subparts = array( "subclient1", "subclient2" )
45
+     *
46
+     * You can also remove one or more parts if they shouldn't be rendered:
47
+     *
48
+     *  client/html/<clients>/subparts = array( "subclient1" )
49
+     *
50
+     * As the clients only generates structural HTML, the layout defined via CSS
51
+     * should support adding, removing or reordering content by a fluid like
52
+     * design.
53
+     *
54
+     * @param array List of sub-client names
55
+     * @since 2015.11
56
+     * @category Developer
57
+     */
58
+    private $subPartPath = 'client/html/account/history/order/address/standard/subparts';
59
+    private $subPartNames = array();
60
+
61
+
62
+    /**
63
+     * Returns the HTML code for insertion into the body.
64
+     *
65
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
66
+     * @param array &$tags Result array for the list of tags that are associated to the output
67
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
68
+     * @return string HTML code
69
+     */
70
+    public function getBody( $uid = '', array &$tags = array(), &$expire = null )
71
+    {
72
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
73
+
74
+        $html = '';
75
+        foreach( $this->getSubClients() as $subclient ) {
76
+            $html .= $subclient->setView( $view )->getBody( $uid, $tags, $expire );
77
+        }
78
+        $view->addressBody = $html;
79
+
80
+        /** client/html/account/history/order/address/standard/template-body
81
+         * Relative path to the HTML body template of the account history order address client.
82
+         *
83
+         * The template file contains the HTML code and processing instructions
84
+         * to generate the result shown in the body of the frontend. The
85
+         * configuration string is the path to the template file relative
86
+         * to the templates directory (usually in client/html/templates).
87
+         *
88
+         * You can overwrite the template file configuration in extensions and
89
+         * provide alternative templates. These alternative templates should be
90
+         * named like the default one but with the string "standard" replaced by
91
+         * an unique name. You may use the name of your project for this. If
92
+         * you've implemented an alternative client class as well, "standard"
93
+         * (second one) should be replaced by the name of the new class in lower
94
+         * case.
95
+         *
96
+         * @param string Relative path to the template creating code for the HTML page body
97
+         * @since 2015.11
98
+         * @category Developer
99
+         * @see client/html/account/history/order/address/standard/template-header
100
+         */
101
+        $tplconf = 'client/html/account/history/order/address/standard/template-body';
102
+        $default = 'common/summary/address-body-default.php';
103
+
104
+        return $view->render( $view->config( $tplconf, $default ) );
105
+    }
106
+
107
+
108
+    /**
109
+     * Returns the HTML string for insertion into the header.
110
+     *
111
+     * @param string $uid Unique identifier for the output if the content is placed more than once on the same page
112
+     * @param array &$tags Result array for the list of tags that are associated to the output
113
+     * @param string|null &$expire Result variable for the expiration date of the output (null for no expiry)
114
+     * @return string String including HTML tags for the header on error
115
+     */
116
+    public function getHeader( $uid = '', array &$tags = array(), &$expire = null )
117
+    {
118
+        $view = $this->setViewParams( $this->getView(), $tags, $expire );
119
+
120
+        $html = '';
121
+        foreach( $this->getSubClients() as $subclient ) {
122
+            $html .= $subclient->setView( $view )->getHeader( $uid, $tags, $expire );
123
+        }
124
+        $view->addressHeader = $html;
125
+
126
+        /** client/html/account/history/order/address/standard/template-header
127
+         * Relative path to the HTML header template of the account history order address client.
128
+         *
129
+         * The template file contains the HTML code and processing instructions
130
+         * to generate the HTML code that is inserted into the HTML page header
131
+         * of the rendered page in the frontend. The configuration string is the
132
+         * path to the template file relative to the templates directory (usually
133
+         * in client/html/templates).
134
+         *
135
+         * You can overwrite the template file configuration in extensions and
136
+         * provide alternative templates. These alternative templates should be
137
+         * named like the default one but with the string "standard" replaced by
138
+         * an unique name. You may use the name of your project for this. If
139
+         * you've implemented an alternative client class as well, "standard"
140
+         * (second one) should be replaced by the name of the new class in lower
141
+         * case.
142
+         *
143
+         * @param string Relative path to the template creating code for the HTML page head
144
+         * @since 2015.11
145
+         * @category Developer
146
+         * @see client/html/account/history/order/address/standard/template-body
147
+         */
148
+        $tplconf = 'client/html/account/history/order/address/standard/template-header';
149
+        $default = 'common/summary/address-header-default.php';
150
+
151
+        return $view->render( $view->config( $tplconf, $default ) );
152
+    }
153
+
154
+
155
+    /**
156
+     * Returns the sub-client given by its name.
157
+     *
158
+     * @param string $type Name of the client type
159
+     * @param string|null $name Name of the sub-client (Default if null)
160
+     * @return \Aimeos\Client\Html\Iface Sub-client object
161
+     */
162
+    public function getSubClient( $type, $name = null )
163
+    {
164
+        /** client/html/account/history/order/address/decorators/excludes
165
+         * Excludes decorators added by the "common" option from the account history order address html client
166
+         *
167
+         * Decorators extend the functionality of a class by adding new aspects
168
+         * (e.g. log what is currently done), executing the methods of the underlying
169
+         * class only in certain conditions (e.g. only for logged in users) or
170
+         * modify what is returned to the caller.
171
+         *
172
+         * This option allows you to remove a decorator added via
173
+         * "client/html/common/decorators/default" before they are wrapped
174
+         * around the html client.
175
+         *
176
+         *  client/html/account/history/order/address/decorators/excludes = array( 'decorator1' )
177
+         *
178
+         * This would remove the decorator named "decorator1" from the list of
179
+         * common decorators ("\Aimeos\Client\Html\Common\Decorator\*") added via
180
+         * "client/html/common/decorators/default" to the html client.
181
+         *
182
+         * @param array List of decorator names
183
+         * @since 2015.08
184
+         * @category Developer
185
+         * @see client/html/common/decorators/default
186
+         * @see client/html/account/history/order/address/decorators/global
187
+         * @see client/html/account/history/order/address/decorators/local
188
+         */
189
+
190
+        /** client/html/account/history/order/address/decorators/global
191
+         * Adds a list of globally available decorators only to the account history order address html client
192
+         *
193
+         * Decorators extend the functionality of a class by adding new aspects
194
+         * (e.g. log what is currently done), executing the methods of the underlying
195
+         * class only in certain conditions (e.g. only for logged in users) or
196
+         * modify what is returned to the caller.
197
+         *
198
+         * This option allows you to wrap global decorators
199
+         * ("\Aimeos\Client\Html\Common\Decorator\*") around the html client.
200
+         *
201
+         *  client/html/account/history/order/address/decorators/global = array( 'decorator1' )
202
+         *
203
+         * This would add the decorator named "decorator1" defined by
204
+         * "\Aimeos\Client\Html\Common\Decorator\Decorator1" only to the html client.
205
+         *
206
+         * @param array List of decorator names
207
+         * @since 2015.08
208
+         * @category Developer
209
+         * @see client/html/common/decorators/default
210
+         * @see client/html/account/history/order/address/decorators/excludes
211
+         * @see client/html/account/history/order/address/decorators/local
212
+         */
213
+
214
+        /** client/html/account/history/order/address/decorators/local
215
+         * Adds a list of local decorators only to the account history order address html client
216
+         *
217
+         * Decorators extend the functionality of a class by adding new aspects
218
+         * (e.g. log what is currently done), executing the methods of the underlying
219
+         * class only in certain conditions (e.g. only for logged in users) or
220
+         * modify what is returned to the caller.
221
+         *
222
+         * This option allows you to wrap local decorators
223
+         * ("\Aimeos\Client\Html\Basket\Decorator\*") around the html client.
224
+         *
225
+         *  client/html/account/history/order/address/decorators/local = array( 'decorator2' )
226
+         *
227
+         * This would add the decorator named "decorator2" defined by
228
+         * "\Aimeos\Client\Html\Basket\Decorator\Decorator2" only to the html client.
229
+         *
230
+         * @param array List of decorator names
231
+         * @since 2015.08
232
+         * @category Developer
233
+         * @see client/html/common/decorators/default
234
+         * @see client/html/account/history/order/address/decorators/excludes
235
+         * @see client/html/account/history/order/address/decorators/global
236
+         */
237
+        return $this->createSubClient( 'account/history/order/address/' . $type, $name );
238
+    }
239
+
240
+
241
+    /**
242
+     * Returns the list of sub-client names configured for the client.
243
+     *
244
+     * @return array List of HTML client names
245
+     */
246
+    protected function getSubClientNames()
247
+    {
248
+        return $this->getContext()->getConfig()->get( $this->subPartPath, $this->subPartNames );
249
+    }
250 250
 }
251 251
\ No newline at end of file
Please login to merge, or discard this patch.