如何创建类别并以编程方式添加图像

时间:2013-11-27 05:06:30

标签: magento-1.7 magento-1.8

我编写了一个创建类别并添加缩略图图像的脚本。它将插入数据库中,但不会显示缩略图。

当我从后端上传时,它可以正常工作。

这是我的代码。

<?php
    require_once 'businessclasses.php';
define('MAGENTO', realpath(dirname(__FILE__)));
require_once MAGENTO . '/app/Mage.php';
umask(0);
Mage::app()->setCurrentStore(1); // Mage_Core_Model_App::ADMIN_STORE_ID
$count = 0;
importRootCategories('us', '1/31/32', 4);
function importRootCategories($language, $path, $storeID)
{       
    $data = new getCSV();
    $rows = $data->getRootCategories(); // Gets the list of root categories.
    foreach($rows as $row) {                          
        $categoryName = utf8_decode(iconv('ISO-8859-1','UTF-8',strip_tags(trim($row[$language])))); // Name of Category
        if($language == "us") {
            if($row[$language] == "")
                $categoryName = utf8_decode(iconv('ISO-8859-1','UTF-8',strip_tags(trim($row["en"])))); // Name of Category
        }   
        // Create category object
        $category = Mage::getModel('catalog/category');
        $category->setStoreId($storeID); // 'US-Store' store is assigned to this category
        $rootCategory['name'] = $categoryName;
        $rootCategory['path'] = $path; // this is the catgeory path - 1 for root category
        $rootCategory['display_mode'] = "PRODUCTS";
        $rootCategory['include_in_menu'] = 1;
        $rootCategory['is_active'] = 1;
        $rootCategory['is_anchor'] = 1;
        $rootCategory['thumbnail'] = _getCategoryImageFile($row['catimg'].'.jpg');
        $category->addData($rootCategory);          
        try {
            $category->save();
            echo $rootCategoryId = $category->getId();
        }
        catch (Exception $e){
            echo $e->getMessage();
        }           
    }       
}
function _getCategoryImageFile($filename)
{    
    $filePath = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'category' . DS . $filename;
    $fileUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'import/category/'. $filename;
    $imageUrl=file_get_contents($imageUrl);
    $file_handler=fopen($filePath,'w');
    if(fwrite($file_handler,$fileUrl)==false){
       Mage::log('ERROR: ', null,'error');
    }
    else{
        Mage::log('Image Created Successfully', null, '');
    }
    fclose($file_handler);
    return  $filename;
}
?>

0 个答案:

没有答案