@@ -461,13 +461,13 @@ discard block  | 
                                                    ||
| 461 | 461 | */  | 
                                                        
| 462 | 462 | protected function addProducts( \Aimeos\MW\View\Iface $view )  | 
                                                        
| 463 | 463 |  	{ | 
                                                        
| 464 | - $attrId = \Aimeos\MShop::create( $this->getContext(), 'attribute' )->find( 'custom', [], 'product', 'upload' )->getId();  | 
                                                        |
| 464 | + $attrId = \Aimeos\MShop::create( $this->getContext(), 'attribute' )->find( 'custom', [], 'product', 'upload' )->getId();  | 
                                                        |
| 465 | 465 | |
| 466 | - $fs = $this->getContext()->fs( 'fs' );  | 
                                                        |
| 466 | + $fs = $this->getContext()->fs( 'fs' );  | 
                                                        |
| 467 | 467 | |
| 468 | -        if( !$fs->has('basket-upload' ) ) { | 
                                                        |
| 469 | - $fs->mkdir( 'basket-upload' );  | 
                                                        |
| 470 | - }  | 
                                                        |
| 468 | +		if( !$fs->has('basket-upload' ) ) { | 
                                                        |
| 469 | + $fs->mkdir( 'basket-upload' );  | 
                                                        |
| 470 | + }  | 
                                                        |
| 471 | 471 | |
| 472 | 472 | $context = $this->getContext();  | 
                                                        
| 473 | 473 | $domains = ['attribute', 'media', 'price', 'product', 'text', 'custom'];  | 
                                                        
@@ -494,26 +494,26 @@ discard block  | 
                                                    ||
| 494 | 494 | $entries = (array) $view->param( 'b_prod', [] );  | 
                                                        
| 495 | 495 | |
| 496 | 496 |  			for($i = 0; $i < count($entries); ++$i) { | 
                                                        
| 497 | - $paths = [];  | 
                                                        |
| 498 | -                if (isset( $entries[$i]['attrcustid'][$attrId] ) && is_array($entries[$i]['attrcustid'][$attrId])) { | 
                                                        |
| 499 | - /** @var UploadedFile $file */  | 
                                                        |
| 500 | -                    foreach($entries[$i]['attrcustid'][$attrId] as $file) { | 
                                                        |
| 501 | - $filepath = 'basket-upload/' . md5($file->getFilename() . microtime(true)) . '.' . $file->extension();  | 
                                                        |
| 502 | -                        try { | 
                                                        |
| 503 | - $stream = fopen($file->getRealPath(), 'r+');  | 
                                                        |
| 504 | - $fs->writes($filepath, $stream);  | 
                                                        |
| 505 | - fclose($stream);  | 
                                                        |
| 506 | -                        } catch (\Exception $ex) { | 
                                                        |
| 507 | - Log::error($ex->getMessage());  | 
                                                        |
| 508 | - }  | 
                                                        |
| 509 | - $paths[] = $filepath;  | 
                                                        |
| 510 | - }  | 
                                                        |
| 511 | - $entries[$i]['attrcustid'][$attrId] = $paths;  | 
                                                        |
| 512 | - }  | 
                                                        |
| 513 | -                if( isset( $entries[$i]['prodid'] ) ) { | 
                                                        |
| 514 | - $list[] = $entries[$i]['prodid'];  | 
                                                        |
| 515 | - }  | 
                                                        |
| 516 | - }  | 
                                                        |
| 497 | + $paths = [];  | 
                                                        |
| 498 | +				if (isset( $entries[$i]['attrcustid'][$attrId] ) && is_array($entries[$i]['attrcustid'][$attrId])) { | 
                                                        |
| 499 | + /** @var UploadedFile $file */  | 
                                                        |
| 500 | +					foreach($entries[$i]['attrcustid'][$attrId] as $file) { | 
                                                        |
| 501 | + $filepath = 'basket-upload/' . md5($file->getFilename() . microtime(true)) . '.' . $file->extension();  | 
                                                        |
| 502 | +						try { | 
                                                        |
| 503 | + $stream = fopen($file->getRealPath(), 'r+');  | 
                                                        |
| 504 | + $fs->writes($filepath, $stream);  | 
                                                        |
| 505 | + fclose($stream);  | 
                                                        |
| 506 | +						} catch (\Exception $ex) { | 
                                                        |
| 507 | + Log::error($ex->getMessage());  | 
                                                        |
| 508 | + }  | 
                                                        |
| 509 | + $paths[] = $filepath;  | 
                                                        |
| 510 | + }  | 
                                                        |
| 511 | + $entries[$i]['attrcustid'][$attrId] = $paths;  | 
                                                        |
| 512 | + }  | 
                                                        |
| 513 | +				if( isset( $entries[$i]['prodid'] ) ) { | 
                                                        |
| 514 | + $list[] = $entries[$i]['prodid'];  | 
                                                        |
| 515 | + }  | 
                                                        |
| 516 | + }  | 
                                                        |
| 517 | 517 | /*foreach( $entries as $values )  | 
                                                        
| 518 | 518 |  			{ | 
                                                        
| 519 | 519 |                  if (isset( $values['attrcustid'][$attrId] )) { | 
                                                        
@@ -535,7 +535,7 @@ discard block  | 
                                                    ||
| 535 | 535 | |
| 536 | 536 | foreach( $entries as $values )  | 
                                                        
| 537 | 537 |  			{ | 
                                                        
| 538 | - Log::debug(print_r($values, true));  | 
                                                        |
| 538 | + Log::debug(print_r($values, true));  | 
                                                        |
| 539 | 539 | if( ( $values['prodid'] ?? null ) && ( $values['quantity'] ?? 0 ) > 0 )  | 
                                                        
| 540 | 540 |  				{ | 
                                                        
| 541 | 541 | $basketCntl->addProduct( $productCntl->get( $values['prodid'] ),  | 
                                                        
@@ -465,7 +465,7 @@ discard block  | 
                                                    ||
| 465 | 465 | |
| 466 | 466 | $fs = $this->getContext()->fs( 'fs' );  | 
                                                        
| 467 | 467 | |
| 468 | -        if( !$fs->has('basket-upload' ) ) { | 
                                                        |
| 468 | +        if( !$fs->has( 'basket-upload' ) ) { | 
                                                        |
| 469 | 469 | $fs->mkdir( 'basket-upload' );  | 
                                                        
| 470 | 470 | }  | 
                                                        
| 471 | 471 | |
@@ -493,18 +493,18 @@ discard block  | 
                                                    ||
| 493 | 493 | $list = [];  | 
                                                        
| 494 | 494 | $entries = (array) $view->param( 'b_prod', [] );  | 
                                                        
| 495 | 495 | |
| 496 | -			for($i = 0; $i < count($entries); ++$i) { | 
                                                        |
| 496 | +			for( $i = 0; $i < count( $entries ); ++$i ) { | 
                                                        |
| 497 | 497 | $paths = [];  | 
                                                        
| 498 | -                if (isset( $entries[$i]['attrcustid'][$attrId] ) && is_array($entries[$i]['attrcustid'][$attrId])) { | 
                                                        |
| 498 | +                if( isset( $entries[$i]['attrcustid'][$attrId] ) && is_array( $entries[$i]['attrcustid'][$attrId] ) ) { | 
                                                        |
| 499 | 499 | /** @var UploadedFile $file */  | 
                                                        
| 500 | -                    foreach($entries[$i]['attrcustid'][$attrId] as $file) { | 
                                                        |
| 501 | - $filepath = 'basket-upload/' . md5($file->getFilename() . microtime(true)) . '.' . $file->extension();  | 
                                                        |
| 500 | +                    foreach( $entries[$i]['attrcustid'][$attrId] as $file ) { | 
                                                        |
| 501 | + $filepath = 'basket-upload/' . md5( $file->getFilename() . microtime( true ) ) . '.' . $file->extension();  | 
                                                        |
| 502 | 502 |                          try { | 
                                                        
| 503 | - $stream = fopen($file->getRealPath(), 'r+');  | 
                                                        |
| 504 | - $fs->writes($filepath, $stream);  | 
                                                        |
| 505 | - fclose($stream);  | 
                                                        |
| 506 | -                        } catch (\Exception $ex) { | 
                                                        |
| 507 | - Log::error($ex->getMessage());  | 
                                                        |
| 503 | + $stream = fopen( $file->getRealPath(), 'r+' );  | 
                                                        |
| 504 | + $fs->writes( $filepath, $stream );  | 
                                                        |
| 505 | + fclose( $stream );  | 
                                                        |
| 506 | +                        } catch( \Exception $ex ) { | 
                                                        |
| 507 | + Log::error( $ex->getMessage() );  | 
                                                        |
| 508 | 508 | }  | 
                                                        
| 509 | 509 | $paths[] = $filepath;  | 
                                                        
| 510 | 510 | }  | 
                                                        
@@ -535,7 +535,7 @@ discard block  | 
                                                    ||
| 535 | 535 | |
| 536 | 536 | foreach( $entries as $values )  | 
                                                        
| 537 | 537 |  			{ | 
                                                        
| 538 | - Log::debug(print_r($values, true));  | 
                                                        |
| 538 | + Log::debug( print_r( $values, true ) );  | 
                                                        |
| 539 | 539 | if( ( $values['prodid'] ?? null ) && ( $values['quantity'] ?? 0 ) > 0 )  | 
                                                        
| 540 | 540 |  				{ | 
                                                        
| 541 | 541 | $basketCntl->addProduct( $productCntl->get( $values['prodid'] ),  | 
                                                        
@@ -392,8 +392,7 @@ discard block  | 
                                                    ||
| 392 | 392 | $controller = $view->config( 'client/html/catalog/detail/url/controller', 'catalog' );  | 
                                                        
| 393 | 393 | $action = $view->config( 'client/html/catalog/detail/url/action', 'detail' );  | 
                                                        
| 394 | 394 | $config = $view->config( 'client/html/catalog/detail/url/config', [] );  | 
                                                        
| 395 | - }  | 
                                                        |
| 396 | - else  | 
                                                        |
| 395 | + } else  | 
                                                        |
| 397 | 396 |  		{ | 
                                                        
| 398 | 397 | $params = $context->getSession()->get( 'aimeos/catalog/lists/params/last/' . $site, [] );  | 
                                                        
| 399 | 398 | |
@@ -487,8 +486,7 @@ discard block  | 
                                                    ||
| 487 | 486 | (string) $view->param( 'b_supplier', '' ),  | 
                                                        
| 488 | 487 | $view->param( 'b_siteid' )  | 
                                                        
| 489 | 488 | );  | 
                                                        
| 490 | - }  | 
                                                        |
| 491 | - else  | 
                                                        |
| 489 | + } else  | 
                                                        |
| 492 | 490 |  		{ | 
                                                        
| 493 | 491 | $list = [];  | 
                                                        
| 494 | 492 | $entries = (array) $view->param( 'b_prod', [] );  | 
                                                        
@@ -499,11 +497,14 @@ discard block  | 
                                                    ||
| 499 | 497 | /** @var UploadedFile $file */  | 
                                                        
| 500 | 498 |                      foreach($entries[$i]['attrcustid'][$attrId] as $file) { | 
                                                        
| 501 | 499 | $filepath = 'basket-upload/' . md5($file->getFilename() . microtime(true)) . '.' . $file->extension();  | 
                                                        
| 502 | -                        try { | 
                                                        |
| 500 | + try  | 
                                                        |
| 501 | +                        { | 
                                                        |
| 503 | 502 | $stream = fopen($file->getRealPath(), 'r+');  | 
                                                        
| 504 | 503 | $fs->writes($filepath, $stream);  | 
                                                        
| 505 | 504 | fclose($stream);  | 
                                                        
| 506 | -                        } catch (\Exception $ex) { | 
                                                        |
| 505 | + }  | 
                                                        |
| 506 | + catch (\Exception $ex)  | 
                                                        |
| 507 | +                        { | 
                                                        |
| 507 | 508 | Log::error($ex->getMessage());  | 
                                                        
| 508 | 509 | }  | 
                                                        
| 509 | 510 | $paths[] = $filepath;  | 
                                                        
@@ -221,15 +221,15 @@  | 
                                                    ||
| 221 | 221 | <?php endif ?>  | 
                                                        
| 222 | 222 | <?php endforeach ?>  | 
                                                        
| 223 | 223 | |
| 224 | - <?php foreach( $product->getAttributeItems( 'custom' ) as $attribute) : ?>  | 
                                                        |
| 224 | + <?php foreach( $product->getAttributeItems( 'custom' ) as $attribute ) : ?>  | 
                                                        |
| 225 | 225 | <?php if( $attribute->getCode() === 'upload' ) : ?>  | 
                                                        
| 226 | 226 | <div class="attr-list attr-type-<?= $enc->attr( $attribute ) ?>">  | 
                                                        
| 227 | 227 | <span class="name"><?= $attribute->getName() ?></span>  | 
                                                        
| 228 | 228 | <span class="value">  | 
                                                        
| 229 | 229 | <span class="image-uploads">  | 
                                                        
| 230 | - <?php foreach( $attribute->getValue() as $upload) : ?>  | 
                                                        |
| 230 | + <?php foreach( $attribute->getValue() as $upload ) : ?>  | 
                                                        |
| 231 | 231 | <span class="image-upload">  | 
                                                        
| 232 | - <img src="<?= $enc->attr( $this->content($upload) ) ?>" alt="upload-image" />  | 
                                                        |
| 232 | + <img src="<?= $enc->attr( $this->content( $upload ) ) ?>" alt="upload-image" />  | 
                                                        |
| 233 | 233 | </span>  | 
                                                        
| 234 | 234 | <?php endforeach ?>  | 
                                                        
| 235 | 235 | </span>  | 
                                                        
@@ -206,7 +206,7 @@  | 
                                                    ||
| 206 | 206 | >  | 
                                                        
| 207 | 207 | <?php break; case 'date': ?>  | 
                                                        
| 208 | 208 | <input id="select-<?= $enc->attr( $this->productItem->getId() . '-' . $key ) ?>" class="form-control" type="date" name="<?= $enc->attr( $this->formparam( ['b_prod', 0, 'attrcustid', $id] ) ) ?>">  | 
                                                        
| 209 | - <?php break;case 'upload': ?>  | 
                                                        |
| 209 | + <?php break; case 'upload': ?>  | 
                                                        |
| 210 | 210 | <div class="upload-wrapper">  | 
                                                        
| 211 | 211 | <div class="upload-view"  | 
                                                        
| 212 | 212 | data-title="<?= $enc->html( $this->translate( 'client/code', $attribute->getName() ) ) ?>"  | 
                                                        
@@ -155,7 +155,8 @@ discard block  | 
                                                    ||
| 155 | 155 | |
| 156 | 156 | </ul>  | 
                                                        
| 157 | 157 | |
| 158 | - <?php else : ?>  | 
                                                        |
| 158 | +				<?php else { | 
                                                        |
| 159 | + : ?>  | 
                                                        |
| 159 | 160 | |
| 160 | 161 | <input type="hidden" value="1" name="<?= $enc->attr( $this->formparam( ['b_prod', 0, 'attrconfid', 'qty', ''] ) ) ?>">  | 
                                                        
| 161 | 162 | <select id="select-<?= $enc->attr( $this->productItem->getId() . '-' . $code ) ?>" class="form-control select-list"  | 
                                                        
@@ -204,7 +205,9 @@ discard block  | 
                                                    ||
| 204 | 205 | value="<?= $enc->attr( $price->getValue() ) ?>"  | 
                                                        
| 205 | 206 | <?php endif ?>  | 
                                                        
| 206 | 207 | >  | 
                                                        
| 207 | - <?php break; case 'date': ?>  | 
                                                        |
| 208 | + <?php break;  | 
                                                        |
| 209 | +}  | 
                                                        |
| 210 | +case 'date': ?>  | 
                                                        |
| 208 | 211 | <input id="select-<?= $enc->attr( $this->productItem->getId() . '-' . $key ) ?>" class="form-control" type="date" name="<?= $enc->attr( $this->formparam( ['b_prod', 0, 'attrcustid', $id] ) ) ?>">  | 
                                                        
| 209 | 212 | <?php break;case 'upload': ?>  | 
                                                        
| 210 | 213 | <div class="upload-wrapper">  |