@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | * @param string|null $name Name of the controller or "Standard" if null |
31 | 31 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
32 | 32 | */ |
33 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
33 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
34 | 34 | { |
35 | 35 | /** controller/jobs/admin/log/name |
36 | 36 | * Class name of the used admin log scheduler controller implementation |
@@ -65,20 +65,20 @@ discard block |
||
65 | 65 | * @since 2014.09 |
66 | 66 | * @category Developer |
67 | 67 | */ |
68 | - if( $name === null ) { |
|
69 | - $name = $context->getConfig()->get( 'controller/jobs/admin/log/name', 'Standard' ); |
|
68 | + if ($name === null) { |
|
69 | + $name = $context->getConfig()->get('controller/jobs/admin/log/name', 'Standard'); |
|
70 | 70 | } |
71 | 71 | |
72 | - if( ctype_alnum( $name ) === false ) |
|
72 | + if (ctype_alnum($name) === false) |
|
73 | 73 | { |
74 | - $classname = is_string( $name ) ? '\\Aimeos\\Controller\\Jobs\\Admin\\Log\\' . $name : '<not a string>'; |
|
75 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Admin\\Log\\' . $name : '<not a string>'; |
|
75 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
79 | 79 | $classname = '\\Aimeos\\Controller\\Jobs\\Admin\\Log\\' . $name; |
80 | 80 | |
81 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
81 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
82 | 82 | |
83 | 83 | /** controller/jobs/admin/log/decorators/excludes |
84 | 84 | * Excludes decorators added by the "common" option from the admin log controllers |
@@ -154,6 +154,6 @@ discard block |
||
154 | 154 | * @see controller/jobs/admin/log/decorators/excludes |
155 | 155 | * @see controller/jobs/admin/log/decorators/global |
156 | 156 | */ |
157 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'admin/log' ); |
|
157 | + return self::addControllerDecorators($context, $aimeos, $controller, 'admin/log'); |
|
158 | 158 | } |
159 | 159 | } |
160 | 160 | \ No newline at end of file |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | */ |
30 | 30 | public function getName() |
31 | 31 | { |
32 | - return $this->getContext()->getI18n()->dt( 'controller/jobs', 'Log cleanup' ); |
|
32 | + return $this->getContext()->getI18n()->dt('controller/jobs', 'Log cleanup'); |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | */ |
41 | 41 | public function getDescription() |
42 | 42 | { |
43 | - return $this->getContext()->getI18n()->dt( 'controller/jobs', 'Removes the old log entries from the database and archives them (optional)' ); |
|
43 | + return $this->getContext()->getI18n()->dt('controller/jobs', 'Removes the old log entries from the database and archives them (optional)'); |
|
44 | 44 | } |
45 | 45 | |
46 | 46 | |
@@ -71,8 +71,8 @@ discard block |
||
71 | 71 | * @see controller/jobs/admin/log/standard/container/format |
72 | 72 | * @see controller/jobs/admin/log/standard/container/options |
73 | 73 | */ |
74 | - $limit = $config->get( 'controller/jobs/admin/log/standard/limit-days', 30 ); |
|
75 | - $limitDate = date( 'Y-m-d H:i:s', time() - $limit * 86400 ); |
|
74 | + $limit = $config->get('controller/jobs/admin/log/standard/limit-days', 30); |
|
75 | + $limitDate = date('Y-m-d H:i:s', time() - $limit * 86400); |
|
76 | 76 | |
77 | 77 | /** controller/jobs/admin/log/standard/path |
78 | 78 | * Path to a writable directory where the log archive files should be stored |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | * @see controller/jobs/admin/log/standard/container/options |
102 | 102 | * @see controller/jobs/admin/log/standard/limit-days |
103 | 103 | */ |
104 | - if( ( $path = $config->get( 'controller/jobs/admin/log/standard/path', null ) ) !== null ) |
|
104 | + if (($path = $config->get('controller/jobs/admin/log/standard/path', null)) !== null) |
|
105 | 105 | { |
106 | 106 | /** controller/jobs/admin/log/standard/container/type |
107 | 107 | * Container file type storing all coupon code files to import |
@@ -175,19 +175,19 @@ discard block |
||
175 | 175 | * @see controller/jobs/admin/log/standard/limit-days |
176 | 176 | */ |
177 | 177 | |
178 | - $type = $config->get( 'controller/jobs/admin/log/standard/container/type', 'Zip' ); |
|
179 | - $format = $config->get( 'controller/jobs/admin/log/standard/container/format', 'CSV' ); |
|
180 | - $options = $config->get( 'controller/jobs/admin/log/standard/container/options', array() ); |
|
178 | + $type = $config->get('controller/jobs/admin/log/standard/container/type', 'Zip'); |
|
179 | + $format = $config->get('controller/jobs/admin/log/standard/container/format', 'CSV'); |
|
180 | + $options = $config->get('controller/jobs/admin/log/standard/container/options', array()); |
|
181 | 181 | |
182 | - $path .= DIRECTORY_SEPARATOR . str_replace( ' ', '_', $limitDate ); |
|
183 | - $container = \Aimeos\MW\Container\Factory::getContainer( $path, $type, $format, $options ); |
|
182 | + $path .= DIRECTORY_SEPARATOR . str_replace(' ', '_', $limitDate); |
|
183 | + $container = \Aimeos\MW\Container\Factory::getContainer($path, $type, $format, $options); |
|
184 | 184 | } |
185 | 185 | |
186 | - $manager = \Aimeos\MAdmin\Factory::createManager( $context, 'log' ); |
|
186 | + $manager = \Aimeos\MAdmin\Factory::createManager($context, 'log'); |
|
187 | 187 | |
188 | 188 | $search = $manager->createSearch(); |
189 | - $search->setConditions( $search->compare( '<=', 'log.timestamp', $limitDate ) ); |
|
190 | - $search->setSortations( array( $search->sort( '+', 'log.timestamp' ) ) ); |
|
189 | + $search->setConditions($search->compare('<=', 'log.timestamp', $limitDate)); |
|
190 | + $search->setSortations(array($search->sort('+', 'log.timestamp'))); |
|
191 | 191 | |
192 | 192 | $start = 0; |
193 | 193 | $contents = array(); |
@@ -195,37 +195,37 @@ discard block |
||
195 | 195 | do |
196 | 196 | { |
197 | 197 | $ids = array(); |
198 | - $items = $manager->searchItems( $search ); |
|
198 | + $items = $manager->searchItems($search); |
|
199 | 199 | |
200 | - foreach( $items as $id => $item ) |
|
200 | + foreach ($items as $id => $item) |
|
201 | 201 | { |
202 | - if( $container !== null ) |
|
202 | + if ($container !== null) |
|
203 | 203 | { |
204 | 204 | $facility = $item->getFacility(); |
205 | 205 | |
206 | - if( !isset( $contents[$facility] ) ) { |
|
207 | - $contents[$facility] = $container->create( $facility ); |
|
206 | + if (!isset($contents[$facility])) { |
|
207 | + $contents[$facility] = $container->create($facility); |
|
208 | 208 | } |
209 | 209 | |
210 | - $contents[$facility]->add( $item->toArray() ); |
|
210 | + $contents[$facility]->add($item->toArray()); |
|
211 | 211 | } |
212 | 212 | |
213 | 213 | $ids[] = $id; |
214 | 214 | } |
215 | 215 | |
216 | - $manager->deleteItems( $ids ); |
|
216 | + $manager->deleteItems($ids); |
|
217 | 217 | |
218 | - $count = count( $items ); |
|
218 | + $count = count($items); |
|
219 | 219 | $start += $count; |
220 | - $search->setSlice( $start ); |
|
220 | + $search->setSlice($start); |
|
221 | 221 | } |
222 | - while( $count >= $search->getSliceSize() ); |
|
222 | + while ($count >= $search->getSliceSize()); |
|
223 | 223 | |
224 | 224 | |
225 | - if( $container !== null && !empty( $contents ) ) |
|
225 | + if ($container !== null && !empty($contents)) |
|
226 | 226 | { |
227 | - foreach( $contents as $content ) { |
|
228 | - $container->add( $content ); |
|
227 | + foreach ($contents as $content) { |
|
228 | + $container->add($content); |
|
229 | 229 | } |
230 | 230 | |
231 | 231 | $container->close(); |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | * @param string|null $name Name of the controller or "Standard" if null |
31 | 31 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
32 | 32 | */ |
33 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
33 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
34 | 34 | { |
35 | 35 | /** controller/jobs/index/optimize/name |
36 | 36 | * Class name of the used catalog index optimize scheduler controller implementation |
@@ -65,20 +65,20 @@ discard block |
||
65 | 65 | * @since 2014.03 |
66 | 66 | * @category Developer |
67 | 67 | */ |
68 | - if( $name === null ) { |
|
69 | - $name = $context->getConfig()->get( 'controller/jobs/index/optimize/name', 'Standard' ); |
|
68 | + if ($name === null) { |
|
69 | + $name = $context->getConfig()->get('controller/jobs/index/optimize/name', 'Standard'); |
|
70 | 70 | } |
71 | 71 | |
72 | - if( ctype_alnum( $name ) === false ) |
|
72 | + if (ctype_alnum($name) === false) |
|
73 | 73 | { |
74 | - $classname = is_string( $name ) ? '\\Aimeos\\Controller\\Jobs\\Index\\Optimize\\' . $name : '<not a string>'; |
|
75 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Index\\Optimize\\' . $name : '<not a string>'; |
|
75 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
79 | 79 | $classname = '\\Aimeos\\Controller\\Jobs\\Index\\Optimize\\' . $name; |
80 | 80 | |
81 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
81 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
82 | 82 | |
83 | 83 | /** controller/jobs/index/optimize/decorators/excludes |
84 | 84 | * Excludes decorators added by the "common" option from the catalog index optimize controllers |
@@ -154,6 +154,6 @@ discard block |
||
154 | 154 | * @see controller/jobs/index/optimize/decorators/excludes |
155 | 155 | * @see controller/jobs/index/optimize/decorators/global |
156 | 156 | */ |
157 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'index/optimize' ); |
|
157 | + return self::addControllerDecorators($context, $aimeos, $controller, 'index/optimize'); |
|
158 | 158 | } |
159 | 159 | } |
160 | 160 | \ No newline at end of file |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | * @param string|null $name Name of the controller or "Standard" if null |
31 | 31 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
32 | 32 | */ |
33 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
33 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
34 | 34 | { |
35 | 35 | /** controller/jobs/index/rebuild/name |
36 | 36 | * Class name of the used catalog index rebuild scheduler controller implementation |
@@ -65,20 +65,20 @@ discard block |
||
65 | 65 | * @since 2014.03 |
66 | 66 | * @category Developer |
67 | 67 | */ |
68 | - if( $name === null ) { |
|
69 | - $name = $context->getConfig()->get( 'controller/jobs/index/rebuild/name', 'Standard' ); |
|
68 | + if ($name === null) { |
|
69 | + $name = $context->getConfig()->get('controller/jobs/index/rebuild/name', 'Standard'); |
|
70 | 70 | } |
71 | 71 | |
72 | - if( ctype_alnum( $name ) === false ) |
|
72 | + if (ctype_alnum($name) === false) |
|
73 | 73 | { |
74 | - $classname = is_string( $name ) ? '\\Aimeos\\Controller\\Jobs\\Index\\Rebuild\\' . $name : '<not a string>'; |
|
75 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Index\\Rebuild\\' . $name : '<not a string>'; |
|
75 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
79 | 79 | $classname = '\\Aimeos\\Controller\\Jobs\\Index\\Rebuild\\' . $name; |
80 | 80 | |
81 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
81 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
82 | 82 | |
83 | 83 | /** controller/jobs/index/rebuild/decorators/excludes |
84 | 84 | * Excludes decorators added by the "common" option from the catalog index rebuild controllers |
@@ -154,6 +154,6 @@ discard block |
||
154 | 154 | * @see controller/jobs/index/rebuild/decorators/excludes |
155 | 155 | * @see controller/jobs/index/rebuild/decorators/global |
156 | 156 | */ |
157 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'index/rebuild' ); |
|
157 | + return self::addControllerDecorators($context, $aimeos, $controller, 'index/rebuild'); |
|
158 | 158 | } |
159 | 159 | } |
160 | 160 | \ No newline at end of file |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | * @param string|null $name Name of the controller or "Standard" if null |
30 | 30 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
31 | 31 | */ |
32 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
32 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
33 | 33 | { |
34 | 34 | /** controller/jobs/product/export/name |
35 | 35 | * Class name of the used product suggestions scheduler controller implementation |
@@ -64,20 +64,20 @@ discard block |
||
64 | 64 | * @since 2015.01 |
65 | 65 | * @category Developer |
66 | 66 | */ |
67 | - if ( $name === null ) { |
|
67 | + if ($name === null) { |
|
68 | 68 | $name = $context->getConfig()->get('controller/jobs/product/export/name', 'Standard'); |
69 | 69 | } |
70 | 70 | |
71 | - if ( ctype_alnum($name) === false ) |
|
71 | + if (ctype_alnum($name) === false) |
|
72 | 72 | { |
73 | 73 | $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Product\\Export\\' . $name : '<not a string>'; |
74 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
75 | 75 | } |
76 | 76 | |
77 | 77 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
78 | 78 | $classname = '\\Aimeos\\Controller\\Jobs\\Product\\Export\\' . $name; |
79 | 79 | |
80 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
80 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
81 | 81 | |
82 | 82 | /** controller/jobs/product/export/decorators/excludes |
83 | 83 | * Excludes decorators added by the "common" option from the product export job controller |
@@ -154,6 +154,6 @@ discard block |
||
154 | 154 | * @see controller/jobs/product/export/decorators/excludes |
155 | 155 | * @see controller/jobs/product/export/decorators/global |
156 | 156 | */ |
157 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'product/export' ); |
|
157 | + return self::addControllerDecorators($context, $aimeos, $controller, 'product/export'); |
|
158 | 158 | } |
159 | 159 | } |
160 | 160 | \ No newline at end of file |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | * @param string|null $name Name of the controller or "Standard" if null |
30 | 30 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
31 | 31 | */ |
32 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
32 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
33 | 33 | { |
34 | 34 | /** controller/jobs/product/export/sitemap/name |
35 | 35 | * Class name of the used product suggestions scheduler controller implementation |
@@ -64,20 +64,20 @@ discard block |
||
64 | 64 | * @since 2015.01 |
65 | 65 | * @category Developer |
66 | 66 | */ |
67 | - if ( $name === null ) { |
|
67 | + if ($name === null) { |
|
68 | 68 | $name = $context->getConfig()->get('controller/jobs/product/export/sitemap/name', 'Standard'); |
69 | 69 | } |
70 | 70 | |
71 | - if ( ctype_alnum($name) === false ) |
|
71 | + if (ctype_alnum($name) === false) |
|
72 | 72 | { |
73 | 73 | $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Product\\Export\\Sitemap\\' . $name : '<not a string>'; |
74 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
75 | 75 | } |
76 | 76 | |
77 | 77 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
78 | 78 | $classname = '\\Aimeos\\Controller\\Jobs\\Product\\Export\\Sitemap\\' . $name; |
79 | 79 | |
80 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
80 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
81 | 81 | |
82 | 82 | /** controller/jobs/product/export/sitemap/decorators/excludes |
83 | 83 | * Excludes decorators added by the "common" option from the product export sitemap job controller |
@@ -154,6 +154,6 @@ discard block |
||
154 | 154 | * @see controller/jobs/product/export/sitemap/export/sitemap/decorators/excludes |
155 | 155 | * @see controller/jobs/product/export/sitemap/export/sitemap/decorators/global |
156 | 156 | */ |
157 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'product/export/sitemap' ); |
|
157 | + return self::addControllerDecorators($context, $aimeos, $controller, 'product/export/sitemap'); |
|
158 | 158 | } |
159 | 159 | } |
160 | 160 | \ No newline at end of file |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | * @param string|null $name Name of the controller or "Standard" if null |
31 | 31 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
32 | 32 | */ |
33 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
33 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
34 | 34 | { |
35 | 35 | /** controller/jobs/product/bought/name |
36 | 36 | * Class name of the used product suggestions scheduler controller implementation |
@@ -65,20 +65,20 @@ discard block |
||
65 | 65 | * @since 2014.03 |
66 | 66 | * @category Developer |
67 | 67 | */ |
68 | - if( $name === null ) { |
|
69 | - $name = $context->getConfig()->get( 'controller/jobs/product/bought/name', 'Standard' ); |
|
68 | + if ($name === null) { |
|
69 | + $name = $context->getConfig()->get('controller/jobs/product/bought/name', 'Standard'); |
|
70 | 70 | } |
71 | 71 | |
72 | - if( ctype_alnum( $name ) === false ) |
|
72 | + if (ctype_alnum($name) === false) |
|
73 | 73 | { |
74 | - $classname = is_string( $name ) ? '\\Aimeos\\Controller\\Jobs\\Product\\Bought\\' . $name : '<not a string>'; |
|
75 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Product\\Bought\\' . $name : '<not a string>'; |
|
75 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
76 | 76 | } |
77 | 77 | |
78 | 78 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
79 | 79 | $classname = '\\Aimeos\\Controller\\Jobs\\Product\\Bought\\' . $name; |
80 | 80 | |
81 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
81 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
82 | 82 | |
83 | 83 | /** controller/jobs/product/bought/decorators/excludes |
84 | 84 | * Excludes decorators added by the "common" option from the product bought job controller |
@@ -155,6 +155,6 @@ discard block |
||
155 | 155 | * @see controller/jobs/product/bought/decorators/excludes |
156 | 156 | * @see controller/jobs/product/bought/decorators/global |
157 | 157 | */ |
158 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'product/bought' ); |
|
158 | + return self::addControllerDecorators($context, $aimeos, $controller, 'product/bought'); |
|
159 | 159 | } |
160 | 160 | } |
161 | 161 | \ No newline at end of file |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | */ |
30 | 30 | public function getName() |
31 | 31 | { |
32 | - return $this->getContext()->getI18n()->dt( 'controller/jobs', 'Products bought together' ); |
|
32 | + return $this->getContext()->getI18n()->dt('controller/jobs', 'Products bought together'); |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | |
@@ -40,7 +40,7 @@ discard block |
||
40 | 40 | */ |
41 | 41 | public function getDescription() |
42 | 42 | { |
43 | - return $this->getContext()->getI18n()->dt( 'controller/jobs', 'Creates bought together product suggestions' ); |
|
43 | + return $this->getContext()->getI18n()->dt('controller/jobs', 'Creates bought together product suggestions'); |
|
44 | 44 | } |
45 | 45 | |
46 | 46 | |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | * @see controller/jobs/product/bought/min-confidence |
73 | 73 | * @see controller/jobs/product/bought/limit-days |
74 | 74 | */ |
75 | - $maxItems = $config->get( 'controller/jobs/product/bought/max-items', 5 ); |
|
75 | + $maxItems = $config->get('controller/jobs/product/bought/max-items', 5); |
|
76 | 76 | |
77 | 77 | /** controller/jobs/product/bought/min-support |
78 | 78 | * Minimum support value to sort out all irrelevant combinations |
@@ -101,7 +101,7 @@ discard block |
||
101 | 101 | * @see controller/jobs/product/bought/min-confidence |
102 | 102 | * @see controller/jobs/product/bought/limit-days |
103 | 103 | */ |
104 | - $minSupport = $config->get( 'controller/jobs/product/bought/min-support', 0.02 ); |
|
104 | + $minSupport = $config->get('controller/jobs/product/bought/min-support', 0.02); |
|
105 | 105 | |
106 | 106 | /** controller/jobs/product/bought/min-confidence |
107 | 107 | * Minimum confidence value for high quality suggestions |
@@ -126,7 +126,7 @@ discard block |
||
126 | 126 | * @see controller/jobs/product/bought/min-support |
127 | 127 | * @see controller/jobs/product/bought/limit-days |
128 | 128 | */ |
129 | - $minConfidence = $config->get( 'controller/jobs/product/bought/min-confidence', 0.66 ); |
|
129 | + $minConfidence = $config->get('controller/jobs/product/bought/min-confidence', 0.66); |
|
130 | 130 | |
131 | 131 | /** controller/jobs/product/bought/limit-days |
132 | 132 | * Only use orders placed in the past within the configured number of days for calculating bought together products |
@@ -150,45 +150,45 @@ discard block |
||
150 | 150 | * @see controller/jobs/product/bought/min-support |
151 | 151 | * @see controller/jobs/product/bought/min-confidence |
152 | 152 | */ |
153 | - $days = $config->get( 'controller/jobs/product/bought/limit-days', 180 ); |
|
154 | - $date = date( 'Y-m-d H:i:s', time() - $days * 86400 ); |
|
153 | + $days = $config->get('controller/jobs/product/bought/limit-days', 180); |
|
154 | + $date = date('Y-m-d H:i:s', time() - $days * 86400); |
|
155 | 155 | |
156 | 156 | |
157 | - $typeItem = $this->getTypeItem( 'product/lists/type', 'product', 'bought-together' ); |
|
157 | + $typeItem = $this->getTypeItem('product/lists/type', 'product', 'bought-together'); |
|
158 | 158 | |
159 | - $baseManager = \Aimeos\MShop\Factory::createManager( $context, 'order/base' ); |
|
159 | + $baseManager = \Aimeos\MShop\Factory::createManager($context, 'order/base'); |
|
160 | 160 | $search = $baseManager->createSearch(); |
161 | - $search->setConditions( $search->compare( '>', 'order.base.ctime', $date ) ); |
|
162 | - $search->setSlice( 0, 0 ); |
|
161 | + $search->setConditions($search->compare('>', 'order.base.ctime', $date)); |
|
162 | + $search->setSlice(0, 0); |
|
163 | 163 | $totalOrders = 0; |
164 | - $baseManager->searchItems( $search, array(), $totalOrders ); |
|
164 | + $baseManager->searchItems($search, array(), $totalOrders); |
|
165 | 165 | |
166 | - $baseProductManager = \Aimeos\MShop\Factory::createManager( $context, 'order/base/product' ); |
|
166 | + $baseProductManager = \Aimeos\MShop\Factory::createManager($context, 'order/base/product'); |
|
167 | 167 | $search = $baseProductManager->createSearch(); |
168 | - $search->setConditions( $search->compare( '>', 'order.base.product.ctime', $date ) ); |
|
168 | + $search->setConditions($search->compare('>', 'order.base.product.ctime', $date)); |
|
169 | 169 | $start = 0; |
170 | 170 | |
171 | 171 | do |
172 | 172 | { |
173 | - $totalCounts = $baseProductManager->aggregate( $search, 'order.base.product.productid' ); |
|
174 | - $prodIds = array_keys( $totalCounts ); |
|
173 | + $totalCounts = $baseProductManager->aggregate($search, 'order.base.product.productid'); |
|
174 | + $prodIds = array_keys($totalCounts); |
|
175 | 175 | |
176 | - foreach( $totalCounts as $id => $count ) |
|
176 | + foreach ($totalCounts as $id => $count) |
|
177 | 177 | { |
178 | - $this->removeListItems( $id, $typeItem->getId() ); |
|
178 | + $this->removeListItems($id, $typeItem->getId()); |
|
179 | 179 | |
180 | - if( $count / $totalOrders > $minSupport ) |
|
180 | + if ($count / $totalOrders > $minSupport) |
|
181 | 181 | { |
182 | - $productIds = $this->getSuggestions( $id, $prodIds, $count, $totalOrders, $maxItems, $minSupport, $minConfidence, $date ); |
|
183 | - $this->addListItems( $id, $typeItem->getId(), $productIds ); |
|
182 | + $productIds = $this->getSuggestions($id, $prodIds, $count, $totalOrders, $maxItems, $minSupport, $minConfidence, $date); |
|
183 | + $this->addListItems($id, $typeItem->getId(), $productIds); |
|
184 | 184 | } |
185 | 185 | } |
186 | 186 | |
187 | - $count = count( $totalCounts ); |
|
187 | + $count = count($totalCounts); |
|
188 | 188 | $start += $count; |
189 | - $search->setSlice( $start ); |
|
189 | + $search->setSlice($start); |
|
190 | 190 | } |
191 | - while( $count >= $search->getSliceSize() ); |
|
191 | + while ($count >= $search->getSliceSize()); |
|
192 | 192 | } |
193 | 193 | |
194 | 194 | |
@@ -205,59 +205,59 @@ discard block |
||
205 | 205 | * @param string $date Date in YYYY-MM-DD HH:mm:ss format after which orders should be used for calculations |
206 | 206 | * @return array List of suggested product IDs as key and their confidence as value |
207 | 207 | */ |
208 | - protected function getSuggestions( $id, $prodIds, $count, $total, $maxItems, $minSupport, $minConfidence, $date ) |
|
208 | + protected function getSuggestions($id, $prodIds, $count, $total, $maxItems, $minSupport, $minConfidence, $date) |
|
209 | 209 | { |
210 | 210 | $refIds = array(); |
211 | 211 | $context = $this->getContext(); |
212 | 212 | |
213 | - $catalogListManager = \Aimeos\MShop\Factory::createManager( $context, 'catalog/lists' ); |
|
214 | - $baseProductManager = \Aimeos\MShop\Factory::createManager( $context, 'order/base/product' ); |
|
213 | + $catalogListManager = \Aimeos\MShop\Factory::createManager($context, 'catalog/lists'); |
|
214 | + $baseProductManager = \Aimeos\MShop\Factory::createManager($context, 'order/base/product'); |
|
215 | 215 | |
216 | 216 | |
217 | 217 | $search = $baseProductManager->createSearch(); |
218 | - $func = $search->createFunction( 'order.base.product.count', array( (string) $id ) ); |
|
218 | + $func = $search->createFunction('order.base.product.count', array((string) $id)); |
|
219 | 219 | $expr = array( |
220 | - $search->compare( '==', 'order.base.product.productid', $prodIds ), |
|
221 | - $search->compare( '>', 'order.base.product.ctime', $date ), |
|
222 | - $search->compare( '==', $func, 1 ), |
|
220 | + $search->compare('==', 'order.base.product.productid', $prodIds), |
|
221 | + $search->compare('>', 'order.base.product.ctime', $date), |
|
222 | + $search->compare('==', $func, 1), |
|
223 | 223 | ); |
224 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
224 | + $search->setConditions($search->combine('&&', $expr)); |
|
225 | 225 | |
226 | - $relativeCounts = $baseProductManager->aggregate( $search, 'order.base.product.productid' ); |
|
226 | + $relativeCounts = $baseProductManager->aggregate($search, 'order.base.product.productid'); |
|
227 | 227 | |
228 | 228 | |
229 | 229 | $search = $catalogListManager->createSearch(); |
230 | 230 | $expr = array( |
231 | - $search->compare( '==', 'catalog.lists.refid', array_keys( $relativeCounts ) ), |
|
232 | - $search->compare( '==', 'catalog.lists.domain', 'product' ), |
|
231 | + $search->compare('==', 'catalog.lists.refid', array_keys($relativeCounts)), |
|
232 | + $search->compare('==', 'catalog.lists.domain', 'product'), |
|
233 | 233 | ); |
234 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
234 | + $search->setConditions($search->combine('&&', $expr)); |
|
235 | 235 | |
236 | - foreach( $catalogListManager->searchItems( $search ) as $listItem ) { |
|
236 | + foreach ($catalogListManager->searchItems($search) as $listItem) { |
|
237 | 237 | $refIds[$listItem->getRefId()] = true; |
238 | 238 | } |
239 | 239 | |
240 | 240 | |
241 | - unset( $relativeCounts[$id] ); |
|
241 | + unset($relativeCounts[$id]); |
|
242 | 242 | $supportA = $count / $total; |
243 | 243 | $products = array(); |
244 | 244 | |
245 | - foreach( $relativeCounts as $prodId => $relCnt ) |
|
245 | + foreach ($relativeCounts as $prodId => $relCnt) |
|
246 | 246 | { |
247 | - if( !isset( $refIds[$prodId] ) ) { |
|
247 | + if (!isset($refIds[$prodId])) { |
|
248 | 248 | continue; |
249 | 249 | } |
250 | 250 | |
251 | 251 | $supportAB = $relCnt / $total; |
252 | 252 | |
253 | - if( $supportAB > $minSupport && ( $conf = ( $supportAB / $supportA ) ) > $minConfidence ) { |
|
253 | + if ($supportAB > $minSupport && ($conf = ($supportAB / $supportA)) > $minConfidence) { |
|
254 | 254 | $products[$prodId] = $conf; |
255 | 255 | } |
256 | 256 | } |
257 | 257 | |
258 | - arsort( $products ); |
|
258 | + arsort($products); |
|
259 | 259 | |
260 | - return array_keys( array_slice( $products, 0, $maxItems, true ) ); |
|
260 | + return array_keys(array_slice($products, 0, $maxItems, true)); |
|
261 | 261 | } |
262 | 262 | |
263 | 263 | |
@@ -268,26 +268,26 @@ discard block |
||
268 | 268 | * @param integer $typeId Unique ID of the list type used for the referenced products |
269 | 269 | * @param array $productIds List of position as key and product ID as value |
270 | 270 | */ |
271 | - protected function addListItems( $productId, $typeId, array $productIds ) |
|
271 | + protected function addListItems($productId, $typeId, array $productIds) |
|
272 | 272 | { |
273 | - if( empty( $productIds ) ) { |
|
273 | + if (empty($productIds)) { |
|
274 | 274 | return; |
275 | 275 | } |
276 | 276 | |
277 | - $manager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'product/lists' ); |
|
277 | + $manager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'product/lists'); |
|
278 | 278 | $item = $manager->createItem(); |
279 | 279 | |
280 | - foreach( $productIds as $pos => $refid ) |
|
280 | + foreach ($productIds as $pos => $refid) |
|
281 | 281 | { |
282 | - $item->setId( null ); |
|
283 | - $item->setParentId( $productId ); |
|
284 | - $item->setDomain( 'product' ); |
|
285 | - $item->setTypeId( $typeId ); |
|
286 | - $item->setPosition( $pos ); |
|
287 | - $item->setRefId( $refid ); |
|
288 | - $item->setStatus( 1 ); |
|
289 | - |
|
290 | - $manager->saveItem( $item ); |
|
282 | + $item->setId(null); |
|
283 | + $item->setParentId($productId); |
|
284 | + $item->setDomain('product'); |
|
285 | + $item->setTypeId($typeId); |
|
286 | + $item->setPosition($pos); |
|
287 | + $item->setRefId($refid); |
|
288 | + $item->setStatus(1); |
|
289 | + |
|
290 | + $manager->saveItem($item); |
|
291 | 291 | } |
292 | 292 | } |
293 | 293 | |
@@ -298,20 +298,20 @@ discard block |
||
298 | 298 | * @param string $productId Unique ID of the product the references should be removed from |
299 | 299 | * @param integer $typeId Unique ID of the list type the referenced products should be removed from |
300 | 300 | */ |
301 | - protected function removeListItems( $productId, $typeId ) |
|
301 | + protected function removeListItems($productId, $typeId) |
|
302 | 302 | { |
303 | - $manager = \Aimeos\MShop\Factory::createManager( $this->getContext(), 'product/lists' ); |
|
303 | + $manager = \Aimeos\MShop\Factory::createManager($this->getContext(), 'product/lists'); |
|
304 | 304 | |
305 | 305 | $search = $manager->createSearch(); |
306 | 306 | $expr = array( |
307 | - $search->compare( '==', 'product.lists.parentid', $productId ), |
|
308 | - $search->compare( '==', 'product.lists.domain', 'product' ), |
|
309 | - $search->compare( '==', 'product.lists.typeid', $typeId ), |
|
307 | + $search->compare('==', 'product.lists.parentid', $productId), |
|
308 | + $search->compare('==', 'product.lists.domain', 'product'), |
|
309 | + $search->compare('==', 'product.lists.typeid', $typeId), |
|
310 | 310 | ); |
311 | - $search->setConditions( $search->combine( '&&', $expr ) ); |
|
311 | + $search->setConditions($search->combine('&&', $expr)); |
|
312 | 312 | |
313 | - $listItems = $manager->searchItems( $search ); |
|
313 | + $listItems = $manager->searchItems($search); |
|
314 | 314 | |
315 | - $manager->deleteItems( array_keys( $listItems ) ); |
|
315 | + $manager->deleteItems(array_keys($listItems)); |
|
316 | 316 | } |
317 | 317 | } |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | * @param string|null $name Name of the controller or "Standard" if null |
30 | 30 | * @return \Aimeos\Controller\Jobs\Iface New controller object |
31 | 31 | */ |
32 | - public static function createController( \Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null ) |
|
32 | + public static function createController(\Aimeos\MShop\Context\Item\Iface $context, \Aimeos\Bootstrap $aimeos, $name = null) |
|
33 | 33 | { |
34 | 34 | /** controller/jobs/product/import/csv/name |
35 | 35 | * Class name of the used product suggestions scheduler controller implementation |
@@ -64,20 +64,20 @@ discard block |
||
64 | 64 | * @since 2015.01 |
65 | 65 | * @category Developer |
66 | 66 | */ |
67 | - if ( $name === null ) { |
|
67 | + if ($name === null) { |
|
68 | 68 | $name = $context->getConfig()->get('controller/jobs/product/import/csv/name', 'Standard'); |
69 | 69 | } |
70 | 70 | |
71 | - if ( ctype_alnum($name) === false ) |
|
71 | + if (ctype_alnum($name) === false) |
|
72 | 72 | { |
73 | 73 | $classname = is_string($name) ? '\\Aimeos\\Controller\\Jobs\\Product\\Import\\Csv\\' . $name : '<not a string>'; |
74 | - throw new \Aimeos\Controller\Jobs\Exception( sprintf( 'Invalid characters in class name "%1$s"', $classname ) ); |
|
74 | + throw new \Aimeos\Controller\Jobs\Exception(sprintf('Invalid characters in class name "%1$s"', $classname)); |
|
75 | 75 | } |
76 | 76 | |
77 | 77 | $iface = '\\Aimeos\\Controller\\Jobs\\Iface'; |
78 | 78 | $classname = '\\Aimeos\\Controller\\Jobs\\Product\\Import\\Csv\\' . $name; |
79 | 79 | |
80 | - $controller = self::createControllerBase( $context, $aimeos, $classname, $iface ); |
|
80 | + $controller = self::createControllerBase($context, $aimeos, $classname, $iface); |
|
81 | 81 | |
82 | 82 | /** controller/jobs/product/import/csv/decorators/excludes |
83 | 83 | * Excludes decorators added by the "common" option from the product import CSV job controller |
@@ -154,6 +154,6 @@ discard block |
||
154 | 154 | * @see controller/jobs/product/import/csv/decorators/excludes |
155 | 155 | * @see controller/jobs/product/import/csv/decorators/global |
156 | 156 | */ |
157 | - return self::addControllerDecorators( $context, $aimeos, $controller, 'product/import/csv' ); |
|
157 | + return self::addControllerDecorators($context, $aimeos, $controller, 'product/import/csv'); |
|
158 | 158 | } |
159 | 159 | } |
160 | 160 | \ No newline at end of file |