Magento 1.9.4.3 - вызов foreach в бэкэнд-функции пользовательского модуля - PullRequest
0 голосов
/ 06 апреля 2020

Я разработал облачную область для каждого пользователя на своем сайте электронной коммерции с Magento. В этой области пользователь может загружать как отдельные файлы, так и несколько файлов. Наконец, он также может удалить загруженный файл. Этот код находится в php, и я разработал его на странице интерфейса клиентской области (area-lo go .p html). Код такой:

<?php
$fileName = '';

			if (isset($_FILES['logoUp']['name'][$key]) && $_FILES['logoUp']['name'][$key] != '') {

			try {
				
			

			$fileName = preg_replace('/[^A-Za-z0-9\-.]/', '', $_FILES['logoUp']['name'][$key]);
			
			array_push($photos, $fileName);
			$uploader = new Varien_File_Uploader(
			array(
				'name' => $_FILES['logoUp']['name'][$key],
				'type' => $_FILES['logoUp']['type'][$key],
				'tmp_name' => $_FILES['logoUp']['tmp_name'][$key],
				'error' => $_FILES['logoUp']['error'][$key],
				'size' => $_FILES['logoUp']['size'][$key]
					)
			);
			$uploader->setAllowedExtensions(array('ai','pdf','eps','svg','psd','jpg','jpeg','png','tif','tiff'));
			$uploader->setAllowRenameFiles(false);
			$uploader->setFilesDispersion(false);
			$path = Mage::getBaseDir().DS.'clienti'.DS.$customerName;
			
			
			if(!is_dir($path)){
			mkdir($path, 0777, true);
			}

			$uploader->save($path, $fileName);
			
			//CODICE IMAGICK PER ANTEPRIMA FILE PSD, TIF, TIFF E EPS
			
			if(preg_match("/\.(psd|tif|tiff|eps|svg)$/", $fileName)){
				$fileNameConv = substr($fileName, 0, strpos($fileName, ".")); 
				$realPath = Mage::getBaseDir() . '/clienti/'.$customerName.'/'.$fileName;
				$savePath = Mage::getBaseDir() . '/clienti/'.$customerName;


				if(file_exists($realPath)){
					$im = new Imagick();
					$im->readimage($realPath); 
					$im->setImageFormat('jpeg');    
					$im->writeImage($savePath . '/'.$fileNameConv.'.jpg'); 
					$im->clear(); 
					$im->destroy();
				}
			}
			
			//FINE CODICE IMAGICK PER ANTEPRIMA FILE PSD, TIF, TIFF E EPS
			
			
			
			$connectionresource = Mage::getSingleton('core/resource');
			$connectionWrite = $connectionresource->getConnection('core_write');
			
			$resizePath = Mage::getBaseUrl().'clienti'.'/'.$customerName;
			$pathAss = $resizePath . "/" . $fileName;
			$dateUpload = date("d-m-Y");
			$customerId = Mage::getSingleton('customer/session')->getCustomer()->getId();
			
			//INSERISCE UNA NUOVA RIGA PER OGNI LOGO CREATO
			$queryInsertLogo = "INSERT INTO magesf_logoupload (image_url,image_date,image_title,customer_id)
						  VALUES ('$pathAss','$dateUpload','$fileName','$customerId') ";
						  
			$binds = array(
              'image_url'    => $resizedPath,
              'image_date'   => $dateUpload,
              'image_title' => $fileName,
              'customer_id' => $customerId
            );
					
			$connectionWrite->query($queryInsertLogo, $binds);
			
			
			echo '<div class="success-msg"><i class="icon_check" style="font-size:20px;"></i> '.$this->__('Logos correctly added to your area').'</div>';
			
			
			
			} catch (Exception $e) {
				$error = true;
				
				echo '<div class="error-msg"><i class="icon_check" style="font-size:20px;"></i> '.$this->__('Logos can not added to your area').' '.$increId.'</div>';
			}
			}
      ?>

Я хотел бы перенести этот код в бэкэнд-файл моего пользовательского модуля и заставить переменную foreach и $ _FILES работать одинаково. Я уже пытался скопировать и вставить этот код в бэкэнд-файл моего модуля, но тогда страница не работает. Как я могу это сделать?

PS Опасно ли помещать подобные запросы в файл веб-интерфейса?

Спасибо за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...