@@ -18,31 +18,31 @@ |
||
18 | 18 | { |
19 | 19 | $context = \TestHelperFrontend::getContext(); |
20 | 20 | |
21 | - $this->object = $this->getMockBuilder( \Aimeos\Controller\Frontend\Base::class ) |
|
22 | - ->setConstructorArgs( [$context] ) |
|
21 | + $this->object = $this->getMockBuilder(\Aimeos\Controller\Frontend\Base::class) |
|
22 | + ->setConstructorArgs([$context]) |
|
23 | 23 | ->getMockForAbstractClass(); |
24 | 24 | } |
25 | 25 | |
26 | 26 | |
27 | 27 | protected function tearDown() |
28 | 28 | { |
29 | - unset( $this->object ); |
|
29 | + unset($this->object); |
|
30 | 30 | } |
31 | 31 | |
32 | 32 | |
33 | 33 | public function testGetContext() |
34 | 34 | { |
35 | - $result = $this->access( 'getContext' )->invokeArgs( $this->object, [] ); |
|
35 | + $result = $this->access('getContext')->invokeArgs($this->object, []); |
|
36 | 36 | |
37 | - $this->assertInstanceOf( \Aimeos\MShop\Context\Item\Iface::class, $result ); |
|
37 | + $this->assertInstanceOf(\Aimeos\MShop\Context\Item\Iface::class, $result); |
|
38 | 38 | } |
39 | 39 | |
40 | 40 | |
41 | - protected function access( $name ) |
|
41 | + protected function access($name) |
|
42 | 42 | { |
43 | - $class = new \ReflectionClass( \Aimeos\Controller\Frontend\Base::class ); |
|
44 | - $method = $class->getMethod( $name ); |
|
45 | - $method->setAccessible( true ); |
|
43 | + $class = new \ReflectionClass(\Aimeos\Controller\Frontend\Base::class); |
|
44 | + $method = $class->getMethod($name); |
|
45 | + $method->setAccessible(true); |
|
46 | 46 | |
47 | 47 | return $method; |
48 | 48 | } |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | * @return \Aimeos\MW\Criteria\Iface Criteria object containing the conditions for searching |
31 | 31 | * @since 2017.03 |
32 | 32 | */ |
33 | - public function addFilterAttribute( \Aimeos\MW\Criteria\Iface $filter, array $attrIds, array $optIds, array $oneIds ); |
|
33 | + public function addFilterAttribute(\Aimeos\MW\Criteria\Iface $filter, array $attrIds, array $optIds, array $oneIds); |
|
34 | 34 | |
35 | 35 | |
36 | 36 | /** |
@@ -43,8 +43,8 @@ discard block |
||
43 | 43 | * @return \Aimeos\MW\Criteria\Iface Criteria object containing the conditions for searching |
44 | 44 | * @since 2017.03 |
45 | 45 | */ |
46 | - public function addFilterCategory( \Aimeos\MW\Criteria\Iface $filter, $catIds, $listtype = 'default', |
|
47 | - $level = \Aimeos\MW\Tree\Manager\Base::LEVEL_ONE ); |
|
46 | + public function addFilterCategory(\Aimeos\MW\Criteria\Iface $filter, $catIds, $listtype = 'default', |
|
47 | + $level = \Aimeos\MW\Tree\Manager\Base::LEVEL_ONE); |
|
48 | 48 | |
49 | 49 | |
50 | 50 | /** |
@@ -56,7 +56,7 @@ discard block |
||
56 | 56 | * @return \Aimeos\MW\Criteria\Iface Criteria object containing the conditions for searching |
57 | 57 | * @since 2018.07 |
58 | 58 | */ |
59 | - public function addFilterSupplier( \Aimeos\MW\Criteria\Iface $filter, $supIds, $listtype = 'default' ); |
|
59 | + public function addFilterSupplier(\Aimeos\MW\Criteria\Iface $filter, $supIds, $listtype = 'default'); |
|
60 | 60 | |
61 | 61 | |
62 | 62 | /** |
@@ -67,7 +67,7 @@ discard block |
||
67 | 67 | * @return \Aimeos\MW\Criteria\Iface Criteria object containing the conditions for searching |
68 | 68 | * @since 2017.03 |
69 | 69 | */ |
70 | - public function addFilterText( \Aimeos\MW\Criteria\Iface $filter, $input ); |
|
70 | + public function addFilterText(\Aimeos\MW\Criteria\Iface $filter, $input); |
|
71 | 71 | |
72 | 72 | |
73 | 73 | /** |
@@ -78,7 +78,7 @@ discard block |
||
78 | 78 | * @return array Associative list of key values as key and the product count for this key as value |
79 | 79 | * @since 2017.03 |
80 | 80 | */ |
81 | - public function aggregate( \Aimeos\MW\Criteria\Iface $filter, $key ); |
|
81 | + public function aggregate(\Aimeos\MW\Criteria\Iface $filter, $key); |
|
82 | 82 | |
83 | 83 | |
84 | 84 | /** |
@@ -91,7 +91,7 @@ discard block |
||
91 | 91 | * @return \Aimeos\MW\Criteria\Iface Criteria object containing the conditions for searching |
92 | 92 | * @since 2017.03 |
93 | 93 | */ |
94 | - public function createFilter( $sort = null, $direction = '+', $start = 0, $size = 100 ); |
|
94 | + public function createFilter($sort = null, $direction = '+', $start = 0, $size = 100); |
|
95 | 95 | |
96 | 96 | |
97 | 97 | /** |
@@ -102,7 +102,7 @@ discard block |
||
102 | 102 | * @return \Aimeos\MShop\Product\Item\Iface Product item including the referenced domains items |
103 | 103 | * @since 2017.03 |
104 | 104 | */ |
105 | - public function getItem( $productId, array $domains = array( 'attribute', 'media', 'price', 'product', 'product/property', 'text' ) ); |
|
105 | + public function getItem($productId, array $domains = array('attribute', 'media', 'price', 'product', 'product/property', 'text')); |
|
106 | 106 | |
107 | 107 | |
108 | 108 | /** |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | * @return \Aimeos\MShop\Product\Item\Iface[] Associative list of product IDs as keys and product items as values |
114 | 114 | * @since 2017.03 |
115 | 115 | */ |
116 | - public function getItems( array $productIds, array $domains = array( 'media', 'price', 'text' ) ); |
|
116 | + public function getItems(array $productIds, array $domains = array('media', 'price', 'text')); |
|
117 | 117 | |
118 | 118 | |
119 | 119 | /** |
@@ -125,5 +125,5 @@ discard block |
||
125 | 125 | * @return array Ordered list of product items implementing \Aimeos\MShop\Product\Item\Iface |
126 | 126 | * @since 2017.03 |
127 | 127 | */ |
128 | - public function searchItems( \Aimeos\MW\Criteria\Iface $filter, array $domains = array( 'media', 'price', 'text' ), &$total = null ); |
|
128 | + public function searchItems(\Aimeos\MW\Criteria\Iface $filter, array $domains = array('media', 'price', 'text'), &$total = null); |
|
129 | 129 | } |
@@ -26,9 +26,9 @@ discard block |
||
26 | 26 | * @return \Aimeos\Controller\Frontend\Iface New frontend controller |
27 | 27 | * @throws \Aimeos\Controller\Frontend\Exception If the given path is invalid or the manager wasn't found |
28 | 28 | */ |
29 | - static public function createController( \Aimeos\MShop\Context\Item\Iface $context, $path ) |
|
29 | + static public function createController(\Aimeos\MShop\Context\Item\Iface $context, $path) |
|
30 | 30 | { |
31 | - return self::create( $context, $path ); |
|
31 | + return self::create($context, $path); |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | |
@@ -38,8 +38,8 @@ discard block |
||
38 | 38 | * @param boolean $value True to enable caching, false to disable it. |
39 | 39 | * @return boolean Previous cache setting |
40 | 40 | */ |
41 | - static public function setCache( $value ) |
|
41 | + static public function setCache($value) |
|
42 | 42 | { |
43 | - return self::cache( $value ); |
|
43 | + return self::cache($value); |
|
44 | 44 | } |
45 | 45 | } |
@@ -27,7 +27,7 @@ discard block |
||
27 | 27 | * @param boolean $value True to enable caching, false to disable it. |
28 | 28 | * @return boolean Previous cache setting |
29 | 29 | */ |
30 | - static public function cache( $value ) |
|
30 | + static public function cache($value) |
|
31 | 31 | { |
32 | 32 | $old = self::$cache; |
33 | 33 | self::$cache = (boolean) $value; |
@@ -44,11 +44,11 @@ discard block |
||
44 | 44 | * @param integer $id Context ID the objects have been created with (string of \Aimeos\MShop\Context\Item\Iface) |
45 | 45 | * @param string $path Path describing the controller to clear, e.g. "basket" |
46 | 46 | */ |
47 | - static public function clear( $id = null, $path = null ) |
|
47 | + static public function clear($id = null, $path = null) |
|
48 | 48 | { |
49 | - if( $id !== null ) |
|
49 | + if ($id !== null) |
|
50 | 50 | { |
51 | - if( $path !== null ) { |
|
51 | + if ($path !== null) { |
|
52 | 52 | self::$controllers[$id][$path] = null; |
53 | 53 | } else { |
54 | 54 | self::$controllers[$id] = []; |
@@ -76,37 +76,37 @@ discard block |
||
76 | 76 | * @return \Aimeos\Controller\Frontend\Iface New frontend controller |
77 | 77 | * @throws \Aimeos\Controller\Frontend\Exception If the given path is invalid or the manager wasn't found |
78 | 78 | */ |
79 | - static public function create( \Aimeos\MShop\Context\Item\Iface $context, $path ) |
|
79 | + static public function create(\Aimeos\MShop\Context\Item\Iface $context, $path) |
|
80 | 80 | { |
81 | - if( empty( $path ) ) { |
|
82 | - throw new \Aimeos\Controller\Frontend\Exception( sprintf( 'Controller path is empty' ) ); |
|
81 | + if (empty($path)) { |
|
82 | + throw new \Aimeos\Controller\Frontend\Exception(sprintf('Controller path is empty')); |
|
83 | 83 | } |
84 | 84 | |
85 | 85 | $id = (string) $context; |
86 | 86 | |
87 | - if( self::$cache === false || !isset( self::$controllers[$id][$path] ) ) |
|
87 | + if (self::$cache === false || !isset(self::$controllers[$id][$path])) |
|
88 | 88 | { |
89 | - $parts = explode( '/', $path ); |
|
89 | + $parts = explode('/', $path); |
|
90 | 90 | |
91 | - foreach( $parts as $key => $part ) |
|
91 | + foreach ($parts as $key => $part) |
|
92 | 92 | { |
93 | - if( ctype_alnum( $part ) === false ) { |
|
94 | - throw new \Aimeos\Controller\Frontend\Exception( sprintf( 'Invalid characters in controller name "%1$s" in "%2$s"', $part, $path ) ); |
|
93 | + if (ctype_alnum($part) === false) { |
|
94 | + throw new \Aimeos\Controller\Frontend\Exception(sprintf('Invalid characters in controller name "%1$s" in "%2$s"', $part, $path)); |
|
95 | 95 | } |
96 | 96 | |
97 | - $parts[$key] = ucwords( $part ); |
|
97 | + $parts[$key] = ucwords($part); |
|
98 | 98 | } |
99 | 99 | |
100 | - $factory = '\\Aimeos\\Controller\\Frontend\\' . join( '\\', $parts ) . '\\Factory'; |
|
100 | + $factory = '\\Aimeos\\Controller\\Frontend\\' . join('\\', $parts) . '\\Factory'; |
|
101 | 101 | |
102 | - if( class_exists( $factory ) === false ) { |
|
103 | - throw new \Aimeos\Controller\Frontend\Exception( sprintf( 'Class "%1$s" not available', $factory ) ); |
|
102 | + if (class_exists($factory) === false) { |
|
103 | + throw new \Aimeos\Controller\Frontend\Exception(sprintf('Class "%1$s" not available', $factory)); |
|
104 | 104 | } |
105 | 105 | |
106 | - $manager = call_user_func_array( array( $factory, 'createController' ), array( $context ) ); |
|
106 | + $manager = call_user_func_array(array($factory, 'createController'), array($context)); |
|
107 | 107 | |
108 | - if( $manager === false ) { |
|
109 | - throw new \Aimeos\Controller\Frontend\Exception( sprintf( 'Invalid factory "%1$s"', $factory ) ); |
|
108 | + if ($manager === false) { |
|
109 | + throw new \Aimeos\Controller\Frontend\Exception(sprintf('Invalid factory "%1$s"', $factory)); |
|
110 | 110 | } |
111 | 111 | |
112 | 112 | self::$controllers[$id][$path] = $manager; |
@@ -13,94 +13,94 @@ |
||
13 | 13 | { |
14 | 14 | public function testCreateController() |
15 | 15 | { |
16 | - $controller = \Aimeos\Controller\Frontend::create( \TestHelperFrontend::getContext(), 'basket' ); |
|
17 | - $this->assertInstanceOf( '\\Aimeos\\Controller\\Frontend\\Iface', $controller ); |
|
16 | + $controller = \Aimeos\Controller\Frontend::create(\TestHelperFrontend::getContext(), 'basket'); |
|
17 | + $this->assertInstanceOf('\\Aimeos\\Controller\\Frontend\\Iface', $controller); |
|
18 | 18 | } |
19 | 19 | |
20 | 20 | |
21 | 21 | public function testCreateControllerEmpty() |
22 | 22 | { |
23 | - $this->setExpectedException( '\\Aimeos\\Controller\\Frontend\\Exception' ); |
|
24 | - \Aimeos\Controller\Frontend::create( \TestHelperFrontend::getContext(), '' ); |
|
23 | + $this->setExpectedException('\\Aimeos\\Controller\\Frontend\\Exception'); |
|
24 | + \Aimeos\Controller\Frontend::create(\TestHelperFrontend::getContext(), ''); |
|
25 | 25 | } |
26 | 26 | |
27 | 27 | |
28 | 28 | public function testCreateControllerInvalidName() |
29 | 29 | { |
30 | - $this->setExpectedException( '\\Aimeos\\Controller\\Frontend\\Exception' ); |
|
31 | - \Aimeos\Controller\Frontend::create( \TestHelperFrontend::getContext(), '%^' ); |
|
30 | + $this->setExpectedException('\\Aimeos\\Controller\\Frontend\\Exception'); |
|
31 | + \Aimeos\Controller\Frontend::create(\TestHelperFrontend::getContext(), '%^'); |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | |
35 | 35 | public function testCreateControllerNotExisting() |
36 | 36 | { |
37 | - $this->setExpectedException( '\\Aimeos\\Controller\\Frontend\\Exception' ); |
|
38 | - \Aimeos\Controller\Frontend::create( \TestHelperFrontend::getContext(), 'notexist' ); |
|
37 | + $this->setExpectedException('\\Aimeos\\Controller\\Frontend\\Exception'); |
|
38 | + \Aimeos\Controller\Frontend::create(\TestHelperFrontend::getContext(), 'notexist'); |
|
39 | 39 | } |
40 | 40 | |
41 | 41 | |
42 | 42 | public function testCreateSubControllerNotExisting() |
43 | 43 | { |
44 | - $this->setExpectedException( '\\Aimeos\\Controller\\Frontend\\Exception' ); |
|
45 | - \Aimeos\Controller\Frontend::create( \TestHelperFrontend::getContext(), 'basket/notexist' ); |
|
44 | + $this->setExpectedException('\\Aimeos\\Controller\\Frontend\\Exception'); |
|
45 | + \Aimeos\Controller\Frontend::create(\TestHelperFrontend::getContext(), 'basket/notexist'); |
|
46 | 46 | } |
47 | 47 | |
48 | 48 | |
49 | 49 | public function testClear() |
50 | 50 | { |
51 | - $cache = \Aimeos\Controller\Frontend::cache( true ); |
|
51 | + $cache = \Aimeos\Controller\Frontend::cache(true); |
|
52 | 52 | |
53 | 53 | $context = \TestHelperFrontend::getContext(); |
54 | 54 | |
55 | - $controller1 = \Aimeos\Controller\Frontend::create( $context, 'basket' ); |
|
55 | + $controller1 = \Aimeos\Controller\Frontend::create($context, 'basket'); |
|
56 | 56 | \Aimeos\Controller\Frontend::clear(); |
57 | - $controller2 = \Aimeos\Controller\Frontend::create( $context, 'basket' ); |
|
57 | + $controller2 = \Aimeos\Controller\Frontend::create($context, 'basket'); |
|
58 | 58 | |
59 | - \Aimeos\Controller\Frontend::cache( $cache ); |
|
59 | + \Aimeos\Controller\Frontend::cache($cache); |
|
60 | 60 | |
61 | - $this->assertNotSame( $controller1, $controller2 ); |
|
61 | + $this->assertNotSame($controller1, $controller2); |
|
62 | 62 | } |
63 | 63 | |
64 | 64 | |
65 | 65 | public function testClearSite() |
66 | 66 | { |
67 | - $cache = \Aimeos\Controller\Frontend::cache( true ); |
|
67 | + $cache = \Aimeos\Controller\Frontend::cache(true); |
|
68 | 68 | |
69 | 69 | $context = \TestHelperFrontend::getContext(); |
70 | 70 | |
71 | - $basket1 = \Aimeos\Controller\Frontend::create( $context, 'basket' ); |
|
72 | - $catalog1 = \Aimeos\Controller\Frontend::create( $context, 'catalog' ); |
|
71 | + $basket1 = \Aimeos\Controller\Frontend::create($context, 'basket'); |
|
72 | + $catalog1 = \Aimeos\Controller\Frontend::create($context, 'catalog'); |
|
73 | 73 | |
74 | - \Aimeos\Controller\Frontend::clear( (string) $context ); |
|
74 | + \Aimeos\Controller\Frontend::clear((string) $context); |
|
75 | 75 | |
76 | - $basket2 = \Aimeos\Controller\Frontend::create( $context, 'basket' ); |
|
77 | - $catalog2 = \Aimeos\Controller\Frontend::create( $context, 'catalog' ); |
|
76 | + $basket2 = \Aimeos\Controller\Frontend::create($context, 'basket'); |
|
77 | + $catalog2 = \Aimeos\Controller\Frontend::create($context, 'catalog'); |
|
78 | 78 | |
79 | - \Aimeos\Controller\Frontend::cache( $cache ); |
|
79 | + \Aimeos\Controller\Frontend::cache($cache); |
|
80 | 80 | |
81 | - $this->assertNotSame( $basket1, $basket2 ); |
|
82 | - $this->assertNotSame( $catalog1, $catalog2 ); |
|
81 | + $this->assertNotSame($basket1, $basket2); |
|
82 | + $this->assertNotSame($catalog1, $catalog2); |
|
83 | 83 | } |
84 | 84 | |
85 | 85 | |
86 | 86 | public function testClearSpecific() |
87 | 87 | { |
88 | - $cache = \Aimeos\Controller\Frontend::cache( true ); |
|
88 | + $cache = \Aimeos\Controller\Frontend::cache(true); |
|
89 | 89 | |
90 | 90 | $context = \TestHelperFrontend::getContext(); |
91 | 91 | |
92 | - $basket1 = \Aimeos\Controller\Frontend::create( $context, 'basket' ); |
|
93 | - $catalog1 = \Aimeos\Controller\Frontend::create( $context, 'catalog' ); |
|
92 | + $basket1 = \Aimeos\Controller\Frontend::create($context, 'basket'); |
|
93 | + $catalog1 = \Aimeos\Controller\Frontend::create($context, 'catalog'); |
|
94 | 94 | |
95 | - \Aimeos\Controller\Frontend::clear( (string) $context, 'basket' ); |
|
95 | + \Aimeos\Controller\Frontend::clear((string) $context, 'basket'); |
|
96 | 96 | |
97 | - $basket2 = \Aimeos\Controller\Frontend::create( $context, 'basket' ); |
|
98 | - $catalog2 = \Aimeos\Controller\Frontend::create( $context, 'catalog' ); |
|
97 | + $basket2 = \Aimeos\Controller\Frontend::create($context, 'basket'); |
|
98 | + $catalog2 = \Aimeos\Controller\Frontend::create($context, 'catalog'); |
|
99 | 99 | |
100 | - \Aimeos\Controller\Frontend::cache( $cache ); |
|
100 | + \Aimeos\Controller\Frontend::cache($cache); |
|
101 | 101 | |
102 | - $this->assertNotSame( $basket1, $basket2 ); |
|
103 | - $this->assertSame( $catalog1, $catalog2 ); |
|
102 | + $this->assertNotSame($basket1, $basket2); |
|
103 | + $this->assertSame($catalog1, $catalog2); |
|
104 | 104 | } |
105 | 105 | |
106 | 106 | } |
107 | 107 | \ No newline at end of file |
@@ -27,13 +27,13 @@ discard block |
||
27 | 27 | * @param string $id Unique subscription ID |
28 | 28 | * @return \Aimeos\MShop\Subscription\Item\Iface Canceled subscription item |
29 | 29 | */ |
30 | - public function cancel( $id ) |
|
30 | + public function cancel($id) |
|
31 | 31 | { |
32 | - $item = $this->getItem( $id ); |
|
33 | - $item->setDateEnd( $item->getDateNext() ); |
|
34 | - $item->setReason( \Aimeos\MShop\Subscription\Item\Iface::REASON_CANCEL ); |
|
32 | + $item = $this->getItem($id); |
|
33 | + $item->setDateEnd($item->getDateNext()); |
|
34 | + $item->setReason(\Aimeos\MShop\Subscription\Item\Iface::REASON_CANCEL); |
|
35 | 35 | |
36 | - return $this->saveItem( $item ); |
|
36 | + return $this->saveItem($item); |
|
37 | 37 | } |
38 | 38 | |
39 | 39 | |
@@ -44,7 +44,7 @@ discard block |
||
44 | 44 | */ |
45 | 45 | public function createFilter() |
46 | 46 | { |
47 | - return \Aimeos\MShop::create( $this->getContext(), 'subscription' )->createSearch(); |
|
47 | + return \Aimeos\MShop::create($this->getContext(), 'subscription')->createSearch(); |
|
48 | 48 | } |
49 | 49 | |
50 | 50 | |
@@ -54,25 +54,25 @@ discard block |
||
54 | 54 | * @param string $id Unique subscription ID |
55 | 55 | * @return \Aimeos\MShop\Subscription\Item\Iface Subscription object |
56 | 56 | */ |
57 | - public function getItem( $id ) |
|
57 | + public function getItem($id) |
|
58 | 58 | { |
59 | 59 | $context = $this->getContext(); |
60 | - $manager = \Aimeos\MShop::create( $context, 'subscription' ); |
|
60 | + $manager = \Aimeos\MShop::create($context, 'subscription'); |
|
61 | 61 | |
62 | 62 | $filter = $manager->createSearch(); |
63 | 63 | $expr = [ |
64 | - $filter->compare( '==', 'subscription.id', $id ), |
|
65 | - $filter->compare( '==', 'order.base.customerid', $context->getUserId() ), |
|
64 | + $filter->compare('==', 'subscription.id', $id), |
|
65 | + $filter->compare('==', 'order.base.customerid', $context->getUserId()), |
|
66 | 66 | $filter->getConditions(), |
67 | 67 | ]; |
68 | - $filter->setConditions( $filter->combine( '&&', $expr ) ); |
|
68 | + $filter->setConditions($filter->combine('&&', $expr)); |
|
69 | 69 | |
70 | - $items = $this->searchItems( $filter ); |
|
70 | + $items = $this->searchItems($filter); |
|
71 | 71 | |
72 | - if( ( $item = reset( $items ) ) === false ) |
|
72 | + if (($item = reset($items)) === false) |
|
73 | 73 | { |
74 | 74 | $msg = 'Invalid subscription ID "%1$s" for customer ID "%2$s"'; |
75 | - throw new \Aimeos\Controller\Frontend\Subscription\Exception( sprintf( $msg, $id, $context->getUserId() ) ); |
|
75 | + throw new \Aimeos\Controller\Frontend\Subscription\Exception(sprintf($msg, $id, $context->getUserId())); |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | return $item; |
@@ -87,18 +87,18 @@ discard block |
||
87 | 87 | public function getIntervals() |
88 | 88 | { |
89 | 89 | $intervals = []; |
90 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'attribute' ); |
|
90 | + $manager = \Aimeos\MShop::create($this->getContext(), 'attribute'); |
|
91 | 91 | |
92 | - $search = $manager->createSearch( true ); |
|
92 | + $search = $manager->createSearch(true); |
|
93 | 93 | $expr = array( |
94 | 94 | $search->getConditions(), |
95 | - $search->compare( '==', 'attribute.domain', 'product' ), |
|
96 | - $search->compare( '==', 'attribute.type', 'interval' ), |
|
95 | + $search->compare('==', 'attribute.domain', 'product'), |
|
96 | + $search->compare('==', 'attribute.type', 'interval'), |
|
97 | 97 | ); |
98 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
99 | - $search->setSlice( 0, 0x7fffffff ); |
|
98 | + $search->setConditions($search->combine('&&', $expr)); |
|
99 | + $search->setSlice(0, 0x7fffffff); |
|
100 | 100 | |
101 | - foreach( $manager->searchItems( $search, ['text'] ) as $attrItem ) { |
|
101 | + foreach ($manager->searchItems($search, ['text']) as $attrItem) { |
|
102 | 102 | $intervals[$attrItem->getCode()] = $attrItem; |
103 | 103 | } |
104 | 104 | |
@@ -111,9 +111,9 @@ discard block |
||
111 | 111 | * @param \Aimeos\MShop\Subscription\Item\Iface $item Subscription object |
112 | 112 | * @return \Aimeos\MShop\Subscription\Item\Iface Saved subscription item |
113 | 113 | */ |
114 | - public function saveItem( \Aimeos\MShop\Subscription\Item\Iface $item ) |
|
114 | + public function saveItem(\Aimeos\MShop\Subscription\Item\Iface $item) |
|
115 | 115 | { |
116 | - return \Aimeos\MShop::create( $this->getContext(), 'subscription' )->saveItem( $item ); |
|
116 | + return \Aimeos\MShop::create($this->getContext(), 'subscription')->saveItem($item); |
|
117 | 117 | } |
118 | 118 | |
119 | 119 | |
@@ -124,17 +124,17 @@ discard block |
||
124 | 124 | * @param integer &$total|null Variable that will contain the total number of available items |
125 | 125 | * @return \Aimeos\MShop\Subscription\Item\Iface[] Associative list of IDs as keys and subscription objects as values |
126 | 126 | */ |
127 | - public function searchItems( \Aimeos\MW\Criteria\Iface $filter, &$total = null ) |
|
127 | + public function searchItems(\Aimeos\MW\Criteria\Iface $filter, &$total = null) |
|
128 | 128 | { |
129 | 129 | $context = $this->getContext(); |
130 | - $manager = \Aimeos\MShop::create( $context, 'subscription' ); |
|
130 | + $manager = \Aimeos\MShop::create($context, 'subscription'); |
|
131 | 131 | |
132 | 132 | $expr = [ |
133 | - $filter->compare( '==', 'order.base.customerid', $context->getUserId() ), |
|
133 | + $filter->compare('==', 'order.base.customerid', $context->getUserId()), |
|
134 | 134 | $filter->getConditions(), |
135 | 135 | ]; |
136 | - $filter->setConditions( $filter->combine( '&&', $expr ) ); |
|
136 | + $filter->setConditions($filter->combine('&&', $expr)); |
|
137 | 137 | |
138 | - return $manager->searchItems( $filter, [], $total ); |
|
138 | + return $manager->searchItems($filter, [], $total); |
|
139 | 139 | } |
140 | 140 | } |
@@ -35,14 +35,14 @@ discard block |
||
35 | 35 | * @param string[] $attributes List of attribute codes as keys and strings entered by the customer as value |
36 | 36 | * @return string[] List of attributes codes as keys and error messages as values for invalid or missing values |
37 | 37 | */ |
38 | - public function checkAttributes( $serviceId, array $attributes ) |
|
38 | + public function checkAttributes($serviceId, array $attributes) |
|
39 | 39 | { |
40 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'service' ); |
|
40 | + $manager = \Aimeos\MShop::create($this->getContext(), 'service'); |
|
41 | 41 | |
42 | - $item = $manager->getItem( $serviceId, [], true ); |
|
43 | - $provider = $manager->getProvider( $item, $item->getType() ); |
|
42 | + $item = $manager->getItem($serviceId, [], true); |
|
43 | + $provider = $manager->getProvider($item, $item->getType()); |
|
44 | 44 | |
45 | - return array_filter( $provider->checkConfigFE( $attributes ) ); |
|
45 | + return array_filter($provider->checkConfigFE($attributes)); |
|
46 | 46 | } |
47 | 47 | |
48 | 48 | |
@@ -53,12 +53,12 @@ discard block |
||
53 | 53 | * @param string[] $ref List of domain names whose items should be fetched too |
54 | 54 | * @return \Aimeos\MShop\Service\Provider\Iface Service provider object |
55 | 55 | */ |
56 | - public function getProvider( $serviceId, $ref = ['media', 'price', 'text'] ) |
|
56 | + public function getProvider($serviceId, $ref = ['media', 'price', 'text']) |
|
57 | 57 | { |
58 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'service' ); |
|
59 | - $item = $manager->getItem( $serviceId, $ref, true ); |
|
58 | + $manager = \Aimeos\MShop::create($this->getContext(), 'service'); |
|
59 | + $item = $manager->getItem($serviceId, $ref, true); |
|
60 | 60 | |
61 | - return $manager->getProvider( $item, $item->getType() ); |
|
61 | + return $manager->getProvider($item, $item->getType()); |
|
62 | 62 | } |
63 | 63 | |
64 | 64 | |
@@ -69,25 +69,25 @@ discard block |
||
69 | 69 | * @param string[] $ref List of domain names whose items should be fetched too |
70 | 70 | * @return \Aimeos\MShop\Service\Provider\Iface[] List of service IDs as keys and service provider objects as values |
71 | 71 | */ |
72 | - public function getProviders( $type = null, $ref = ['media', 'price', 'text'] ) |
|
72 | + public function getProviders($type = null, $ref = ['media', 'price', 'text']) |
|
73 | 73 | { |
74 | 74 | $list = []; |
75 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'service' ); |
|
75 | + $manager = \Aimeos\MShop::create($this->getContext(), 'service'); |
|
76 | 76 | |
77 | - $search = $manager->createSearch( true ); |
|
78 | - $search->setSortations( [$search->sort( '+', 'service.position' )] ); |
|
77 | + $search = $manager->createSearch(true); |
|
78 | + $search->setSortations([$search->sort('+', 'service.position')]); |
|
79 | 79 | |
80 | - if( $type != null ) |
|
80 | + if ($type != null) |
|
81 | 81 | { |
82 | 82 | $expr = array( |
83 | 83 | $search->getConditions(), |
84 | - $search->compare( '==', 'service.type', $type ), |
|
84 | + $search->compare('==', 'service.type', $type), |
|
85 | 85 | ); |
86 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
86 | + $search->setConditions($search->combine('&&', $expr)); |
|
87 | 87 | } |
88 | 88 | |
89 | - foreach( $manager->searchItems( $search, $ref ) as $id => $item ) { |
|
90 | - $list[$id] = $manager->getProvider( $item, $item->getType() ); |
|
89 | + foreach ($manager->searchItems($search, $ref) as $id => $item) { |
|
90 | + $list[$id] = $manager->getProvider($item, $item->getType()); |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | return $list; |
@@ -105,15 +105,15 @@ discard block |
||
105 | 105 | * @return \Aimeos\MShop\Common\Item\Helper\Form\Iface|null Form object with URL, parameters, etc. |
106 | 106 | * or null if no form data is required |
107 | 107 | */ |
108 | - public function process( \Aimeos\MShop\Order\Item\Iface $orderItem, $serviceId, array $urls, array $params ) |
|
108 | + public function process(\Aimeos\MShop\Order\Item\Iface $orderItem, $serviceId, array $urls, array $params) |
|
109 | 109 | { |
110 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'service' ); |
|
111 | - $item = $manager->getItem( $serviceId, [], true ); |
|
110 | + $manager = \Aimeos\MShop::create($this->getContext(), 'service'); |
|
111 | + $item = $manager->getItem($serviceId, [], true); |
|
112 | 112 | |
113 | - $provider = $manager->getProvider( $item, $item->getType() ); |
|
114 | - $provider->injectGlobalConfigBE( $urls ); |
|
113 | + $provider = $manager->getProvider($item, $item->getType()); |
|
114 | + $provider->injectGlobalConfigBE($urls); |
|
115 | 115 | |
116 | - return $provider->process( $orderItem, $params ); |
|
116 | + return $provider->process($orderItem, $params); |
|
117 | 117 | } |
118 | 118 | |
119 | 119 | |
@@ -125,14 +125,14 @@ discard block |
||
125 | 125 | * @param string $code Unique code of the service used for the current order |
126 | 126 | * @return \Psr\Http\Message\ResponseInterface Response object |
127 | 127 | */ |
128 | - public function updatePush( ServerRequestInterface $request, ResponseInterface $response, $code ) |
|
128 | + public function updatePush(ServerRequestInterface $request, ResponseInterface $response, $code) |
|
129 | 129 | { |
130 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'service' ); |
|
131 | - $item = $manager->findItem( $code ); |
|
130 | + $manager = \Aimeos\MShop::create($this->getContext(), 'service'); |
|
131 | + $item = $manager->findItem($code); |
|
132 | 132 | |
133 | - $provider = $manager->getProvider( $item, $item->getType() ); |
|
133 | + $provider = $manager->getProvider($item, $item->getType()); |
|
134 | 134 | |
135 | - return $provider->updatePush( $request, $response ); |
|
135 | + return $provider->updatePush($request, $response); |
|
136 | 136 | } |
137 | 137 | |
138 | 138 | |
@@ -144,24 +144,24 @@ discard block |
||
144 | 144 | * @param string $orderid ID of the order whose payment status should be updated |
145 | 145 | * @return \Aimeos\MShop\Order\Item\Iface $orderItem Order item that has been updated |
146 | 146 | */ |
147 | - public function updateSync( ServerRequestInterface $request, $code, $orderid ) |
|
147 | + public function updateSync(ServerRequestInterface $request, $code, $orderid) |
|
148 | 148 | { |
149 | 149 | $context = $this->getContext(); |
150 | - $orderManager = \Aimeos\MShop::create( $context, 'order' ); |
|
151 | - $serviceManager = \Aimeos\MShop::create( $context, 'service' ); |
|
150 | + $orderManager = \Aimeos\MShop::create($context, 'order'); |
|
151 | + $serviceManager = \Aimeos\MShop::create($context, 'service'); |
|
152 | 152 | |
153 | - $orderItem = $orderManager->getItem( $orderid ); |
|
154 | - $serviceItem = $serviceManager->findItem( $code ); |
|
153 | + $orderItem = $orderManager->getItem($orderid); |
|
154 | + $serviceItem = $serviceManager->findItem($code); |
|
155 | 155 | |
156 | - $provider = $serviceManager->getProvider( $serviceItem, $serviceItem->getType() ); |
|
156 | + $provider = $serviceManager->getProvider($serviceItem, $serviceItem->getType()); |
|
157 | 157 | |
158 | 158 | |
159 | - if( ( $orderItem = $provider->updateSync( $request, $orderItem ) ) !== null ) |
|
159 | + if (($orderItem = $provider->updateSync($request, $orderItem)) !== null) |
|
160 | 160 | { |
161 | - if( $orderItem->getPaymentStatus() === \Aimeos\MShop\Order\Item\Base::PAY_UNFINISHED |
|
162 | - && $provider->isImplemented( \Aimeos\MShop\Service\Provider\Payment\Base::FEAT_QUERY ) |
|
161 | + if ($orderItem->getPaymentStatus() === \Aimeos\MShop\Order\Item\Base::PAY_UNFINISHED |
|
162 | + && $provider->isImplemented(\Aimeos\MShop\Service\Provider\Payment\Base::FEAT_QUERY) |
|
163 | 163 | ) { |
164 | - $provider->query( $orderItem ); |
|
164 | + $provider->query($orderItem); |
|
165 | 165 | } |
166 | 166 | } |
167 | 167 |
@@ -29,11 +29,11 @@ discard block |
||
29 | 29 | * @param string $type Arbitrary order type (max. eight chars) |
30 | 30 | * @return \Aimeos\MShop\Order\Item\Iface Created order object |
31 | 31 | */ |
32 | - public function addItem( $baseId, $type ) |
|
32 | + public function addItem($baseId, $type) |
|
33 | 33 | { |
34 | 34 | $total = 0; |
35 | 35 | $context = $this->getContext(); |
36 | - $manager = \Aimeos\MShop::create( $context, 'order' ); |
|
36 | + $manager = \Aimeos\MShop::create($context, 'order'); |
|
37 | 37 | |
38 | 38 | /** controller/frontend/order/limit-seconds |
39 | 39 | * Order limitation time frame in seconds |
@@ -51,24 +51,24 @@ discard block |
||
51 | 51 | * @see controller/frontend/basket/limit-count |
52 | 52 | * @see controller/frontend/basket/limit-seconds |
53 | 53 | */ |
54 | - $seconds = $context->getConfig()->get( 'controller/frontend/order/limit-seconds', 300 ); |
|
54 | + $seconds = $context->getConfig()->get('controller/frontend/order/limit-seconds', 300); |
|
55 | 55 | |
56 | 56 | $search = $manager->createSearch(); |
57 | 57 | $expr = [ |
58 | - $search->compare( '==', 'order.baseid', $baseId ), |
|
59 | - $search->compare( '>=', 'order.ctime', date( 'Y-m-d H:i:s', time() - $seconds ) ), |
|
58 | + $search->compare('==', 'order.baseid', $baseId), |
|
59 | + $search->compare('>=', 'order.ctime', date('Y-m-d H:i:s', time() - $seconds)), |
|
60 | 60 | ]; |
61 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
62 | - $search->setSlice( 0, 0 ); |
|
61 | + $search->setConditions($search->combine('&&', $expr)); |
|
62 | + $search->setSlice(0, 0); |
|
63 | 63 | |
64 | - $manager->searchItems( $search, [], $total ); |
|
64 | + $manager->searchItems($search, [], $total); |
|
65 | 65 | |
66 | - if( $total > 0 ) { |
|
67 | - throw new \Aimeos\Controller\Frontend\Order\Exception( sprintf( 'The order has already been created' ) ); |
|
66 | + if ($total > 0) { |
|
67 | + throw new \Aimeos\Controller\Frontend\Order\Exception(sprintf('The order has already been created')); |
|
68 | 68 | } |
69 | 69 | |
70 | - $item = $manager->createItem()->setBaseId( $baseId )->setType( $type ); |
|
71 | - return $manager->saveItem( $item ); |
|
70 | + $item = $manager->createItem()->setBaseId($baseId)->setType($type); |
|
71 | + return $manager->saveItem($item); |
|
72 | 72 | } |
73 | 73 | |
74 | 74 | |
@@ -79,7 +79,7 @@ discard block |
||
79 | 79 | */ |
80 | 80 | public function createFilter() |
81 | 81 | { |
82 | - return \Aimeos\MShop::create( $this->getContext(), 'order' )->createSearch( true ); |
|
82 | + return \Aimeos\MShop::create($this->getContext(), 'order')->createSearch(true); |
|
83 | 83 | } |
84 | 84 | |
85 | 85 | |
@@ -90,30 +90,30 @@ discard block |
||
90 | 90 | * @param boolean $default Use default criteria to limit orders |
91 | 91 | * @return \Aimeos\MShop\Order\Item\Iface Order object |
92 | 92 | */ |
93 | - public function getItem( $id, $default = true ) |
|
93 | + public function getItem($id, $default = true) |
|
94 | 94 | { |
95 | 95 | $context = $this->getContext(); |
96 | - $manager = \Aimeos\MShop::create( $context, 'order' ); |
|
96 | + $manager = \Aimeos\MShop::create($context, 'order'); |
|
97 | 97 | |
98 | - $search = $manager->createSearch( true ); |
|
98 | + $search = $manager->createSearch(true); |
|
99 | 99 | $expr = [ |
100 | - $search->compare( '==', 'order.id', $id ), |
|
100 | + $search->compare('==', 'order.id', $id), |
|
101 | 101 | $search->getConditions(), |
102 | 102 | ]; |
103 | 103 | |
104 | - if( $default !== false ) { |
|
105 | - $expr[] = $search->compare( '==', 'order.editor', $context->getEditor() ); |
|
104 | + if ($default !== false) { |
|
105 | + $expr[] = $search->compare('==', 'order.editor', $context->getEditor()); |
|
106 | 106 | } |
107 | 107 | |
108 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
108 | + $search->setConditions($search->combine('&&', $expr)); |
|
109 | 109 | |
110 | - $items = $manager->searchItems( $search ); |
|
110 | + $items = $manager->searchItems($search); |
|
111 | 111 | |
112 | - if( ( $item = reset( $items ) ) !== false ) { |
|
112 | + if (($item = reset($items)) !== false) { |
|
113 | 113 | return $item; |
114 | 114 | } |
115 | 115 | |
116 | - throw new \Aimeos\Controller\Frontend\Order\Exception( sprintf( 'No order item for ID "%1$s" found', $id ) ); |
|
116 | + throw new \Aimeos\Controller\Frontend\Order\Exception(sprintf('No order item for ID "%1$s" found', $id)); |
|
117 | 117 | } |
118 | 118 | |
119 | 119 | |
@@ -123,10 +123,10 @@ discard block |
||
123 | 123 | * @param \Aimeos\MShop\Order\Item\Iface $item Order object |
124 | 124 | * @return \Aimeos\MShop\Order\Item\Iface Saved order item |
125 | 125 | */ |
126 | - public function saveItem( \Aimeos\MShop\Order\Item\Iface $item ) |
|
126 | + public function saveItem(\Aimeos\MShop\Order\Item\Iface $item) |
|
127 | 127 | { |
128 | - $manager = \Aimeos\MShop::create( $this->getContext(), 'order' ); |
|
129 | - return $manager->saveItem( $item ); |
|
128 | + $manager = \Aimeos\MShop::create($this->getContext(), 'order'); |
|
129 | + return $manager->saveItem($item); |
|
130 | 130 | } |
131 | 131 | |
132 | 132 | |
@@ -137,18 +137,18 @@ discard block |
||
137 | 137 | * @param integer|null &$total Variable that will contain the total number of available items |
138 | 138 | * @return \Aimeos\MShop\Order\Item\Iface[] Associative list of IDs as keys and order objects as values |
139 | 139 | */ |
140 | - public function searchItems( \Aimeos\MW\Criteria\Iface $filter, &$total = null ) |
|
140 | + public function searchItems(\Aimeos\MW\Criteria\Iface $filter, &$total = null) |
|
141 | 141 | { |
142 | 142 | $context = $this->getContext(); |
143 | - $manager = \Aimeos\MShop::create( $context, 'order' ); |
|
143 | + $manager = \Aimeos\MShop::create($context, 'order'); |
|
144 | 144 | |
145 | 145 | $expr = [ |
146 | 146 | $filter->getConditions(), |
147 | - $filter->compare( '==', 'order.base.customerid', $context->getUserId() ), |
|
147 | + $filter->compare('==', 'order.base.customerid', $context->getUserId()), |
|
148 | 148 | ]; |
149 | - $filter->setConditions( $filter->combine( '&&', $expr ) ); |
|
149 | + $filter->setConditions($filter->combine('&&', $expr)); |
|
150 | 150 | |
151 | - return $manager->searchItems( $filter, [], $total ); |
|
151 | + return $manager->searchItems($filter, [], $total); |
|
152 | 152 | } |
153 | 153 | |
154 | 154 | |
@@ -170,9 +170,9 @@ discard block |
||
170 | 170 | * |
171 | 171 | * @param \Aimeos\MShop\Order\Item\Iface $orderItem Order item object |
172 | 172 | */ |
173 | - public function block( \Aimeos\MShop\Order\Item\Iface $orderItem ) |
|
173 | + public function block(\Aimeos\MShop\Order\Item\Iface $orderItem) |
|
174 | 174 | { |
175 | - \Aimeos\Controller\Common\Order\Factory::createController( $this->getContext() )->block( $orderItem ); |
|
175 | + \Aimeos\Controller\Common\Order\Factory::createController($this->getContext())->block($orderItem); |
|
176 | 176 | } |
177 | 177 | |
178 | 178 | |
@@ -194,9 +194,9 @@ discard block |
||
194 | 194 | * |
195 | 195 | * @param \Aimeos\MShop\Order\Item\Iface $orderItem Order item object |
196 | 196 | */ |
197 | - public function unblock( \Aimeos\MShop\Order\Item\Iface $orderItem ) |
|
197 | + public function unblock(\Aimeos\MShop\Order\Item\Iface $orderItem) |
|
198 | 198 | { |
199 | - \Aimeos\Controller\Common\Order\Factory::createController( $this->getContext() )->unblock( $orderItem ); |
|
199 | + \Aimeos\Controller\Common\Order\Factory::createController($this->getContext())->unblock($orderItem); |
|
200 | 200 | } |
201 | 201 | |
202 | 202 | |
@@ -214,8 +214,8 @@ discard block |
||
214 | 214 | * |
215 | 215 | * @param \Aimeos\MShop\Order\Item\Iface $orderItem Order item object |
216 | 216 | */ |
217 | - public function update( \Aimeos\MShop\Order\Item\Iface $orderItem ) |
|
217 | + public function update(\Aimeos\MShop\Order\Item\Iface $orderItem) |
|
218 | 218 | { |
219 | - \Aimeos\Controller\Common\Order\Factory::createController( $this->getContext() )->update( $orderItem ); |
|
219 | + \Aimeos\Controller\Common\Order\Factory::createController($this->getContext())->update($orderItem); |
|
220 | 220 | } |
221 | 221 | } |
@@ -31,15 +31,15 @@ discard block |
||
31 | 31 | public function createFilter() |
32 | 32 | { |
33 | 33 | $context = $this->getContext(); |
34 | - $filter = \Aimeos\MShop::create( $context, 'locale' )->createSearch( true ); |
|
34 | + $filter = \Aimeos\MShop::create($context, 'locale')->createSearch(true); |
|
35 | 35 | |
36 | 36 | $expr = array( |
37 | - $filter->compare( '==', 'locale.siteid', $context->getLocale()->getSitePath() ), |
|
37 | + $filter->compare('==', 'locale.siteid', $context->getLocale()->getSitePath()), |
|
38 | 38 | $filter->getConditions(), |
39 | 39 | ); |
40 | 40 | |
41 | - $filter->setConditions( $filter->combine( '&&', $expr ) ); |
|
42 | - $filter->setSortations( array( $filter->sort( '+', 'locale.position' ) ) ); |
|
41 | + $filter->setConditions($filter->combine('&&', $expr)); |
|
42 | + $filter->setSortations(array($filter->sort('+', 'locale.position'))); |
|
43 | 43 | |
44 | 44 | return $filter; |
45 | 45 | } |
@@ -53,9 +53,9 @@ discard block |
||
53 | 53 | * @return \Aimeos\MShop\Locale\Item\Iface Locale item including the referenced domains items |
54 | 54 | * @since 2017.03 |
55 | 55 | */ |
56 | - public function getItem( $id, array $domains = [] ) |
|
56 | + public function getItem($id, array $domains = []) |
|
57 | 57 | { |
58 | - return \Aimeos\MShop::create( $this->getContext(), 'locale' )->getItem( $id, $domains, true ); |
|
58 | + return \Aimeos\MShop::create($this->getContext(), 'locale')->getItem($id, $domains, true); |
|
59 | 59 | } |
60 | 60 | |
61 | 61 | |
@@ -68,8 +68,8 @@ discard block |
||
68 | 68 | * @return array Ordered list of locale items implementing \Aimeos\MShop\Locale\Item\Iface |
69 | 69 | * @since 2017.03 |
70 | 70 | */ |
71 | - public function searchItems( \Aimeos\MW\Criteria\Iface $filter, array $domains = [], &$total = null ) |
|
71 | + public function searchItems(\Aimeos\MW\Criteria\Iface $filter, array $domains = [], &$total = null) |
|
72 | 72 | { |
73 | - return \Aimeos\MShop::create( $this->getContext(), 'locale' )->searchItems( $filter, $domains, $total ); |
|
73 | + return \Aimeos\MShop::create($this->getContext(), 'locale')->searchItems($filter, $domains, $total); |
|
74 | 74 | } |
75 | 75 | } |