Проблема загрузки изображений в Magento - PullRequest
0 голосов
/ 11 октября 2010

Заранее спасибо.

Я новичок в Magento, и я создал модуль, который непосредственно показывает продукты перед Magento.

В этом модуле я создал формув разделе учетной записи клиента, где клиенты могут заполнить необходимые данные для продукта.Данные о продукте успешно сохранены, но я не вижу изображения на передней панели.Я проверил все вещи, загруженные продуктом из раздела клиентов, и также перейдите в раздел администратора для утверждения.

Я просто хочу показать изображение продукта, который я загружаю.Мой код следующий для сохранения продукта и загрузки изображений.

Извините за мой английский.

-Jeet

$magentoProductModel = Mage::getModel('catalog/product');
$magentoProductModel->setWebsiteIds(array(Mage::app()->getStore()->getId()));
$magentoProductModel->setAttributeSetId(4);//old
//$magentoProductModel->setAttributeSetId(1);
$magentoProductModel->setTypeId('simple');
$magentoProductModel->setName($data[name]);
$magentoProductModel->setDescription($data[description]);
$magentoProductModel->setPrice($data[price]);
$magentoProductModel->setShortDescription($data[short_description]);
$magentoProductModel->setWeight($data[weight]);
$magentoProductModel->setStatus(1);
$magentoProductModel->setCategoryIds(array(3));
$magentoProductModel->setTaxClassId('None');
//$magentoProductModel->setSku('rand-sku-' .rand(1,20000) );

/* upload product image*/
$customerProductId=34;
$mediDir = Mage::getBaseDir('media');
$imagesdir = $mediDir . '/customersproducts/' . $customerProductId . '/';

if(!file_exists($imagesdir)){ 
    return false;
}

foreach (new DirectoryIterator($imagesdir) as $fileInfo) {
    //print_r($fileInfo);

    if($fileInfo->isDot() || $fileInfo->isDir()) continue;

    if($fileInfo->isFile()) {
        //echo $fileInfo->getPathname();         
        $magentoProductModel->addImageToMediaGallery($fileInfo->getPathname(),array('image','small_image','thumbnail'), true, false, true);
    }
    //else {
        //echo "no";
    //}
}
print_r($magentoProductModel);

/*upload script end */


$saved = $magentoProductModel->save();
$lastId = $saved->getId();
$customerProduct = Mage::getModel('customerpartner/customerpartner_product')->load($lastId);
$customerProduct->setProductId($lastId);
$logged_in_user=Mage::getSingleton('customer/session')->getCustomer()->getId();
$customerProduct->setCustomerId($logged_in_user);
$customerProduct->setCustomerId();
$customerProduct->save();

1 Ответ

0 голосов
/ 11 октября 2010

Спасибо, ребята, которые посетили этот вопрос. Я решил проблему самостоятельно. В

требуется только массив изображений.

следующий код работает нормально

$magentoProductModel = Mage::getModel('catalog/product');
$magentoProductModel->setWebsiteIds(array(Mage::app()->getStore()->getId()));
$magentoProductModel->setAttributeSetId(4);//old
//$magentoProductModel->setAttributeSetId(1);
$magentoProductModel->setTypeId('simple');
$magentoProductModel->setName($data[name]);
$magentoProductModel->setDescription($data[description]);
$magentoProductModel->setPrice($data[price]);
$magentoProductModel->setShortDescription($data[short_description]);
$magentoProductModel->setWeight($data[weight]);
$magentoProductModel->setStatus(1);
$magentoProductModel->setCategoryIds(array(3));
$magentoProductModel->setTaxClassId('None');
//$magentoProductModel->setSku('rand-sku-' .rand(1,20000) );

/* upload product image*/
$customerProductId=34;
$mediDir = Mage::getBaseDir('media');
$imagesdir = $mediDir . '/customersproducts/' . $customerProductId . '/';

if(!file_exists($imagesdir)){ 
  return false;
}

foreach (new DirectoryIterator($imagesdir) as $fileInfo) {

  //print_r($fileInfo);

  if($fileInfo->isDot() || $fileInfo->isDir()) continue;

  $visibility = array (
      'thumbnail',
      'small_image',
      'image'
      );

  if($fileInfo->isFile()) {
    $fileInfo->getPathname();         
    $magentoProductModel->addImageToMediaGallery($fileInfo->getPathname(), $visibility, false, false);
  }
  //else
  //{
  //echo "no";
  //}

}    

/*upload script end */


$saved = $magentoProductModel->save();
$lastId = $saved->getId();
$customerProduct = Mage::getModel('customerpartner/customerpartner_product')->load($lastId);
$customerProduct->setProductId($lastId);
$logged_in_user=Mage::getSingleton('customer/session')->getCustomer()->getId();
$customerProduct->setCustomerId($logged_in_user);
$customerProduct->setCustomerId();
$customerProduct->save();

} catch(Exception $e){
  echo $e;
  Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
  $this->_redirectReferer();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...