0

I have prepared a code which check product with no images and than add an image to it form a folder with same name as that of product. In Magento 1.9 it is working perfectly. But when i try it on magento1.7 it throughs fatal error. Here is my code

 <?php
error_reporting(E_ALL | E_STRICT);
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
ini_set('memory_limit', '600M');
ini_set('max_execution_time', 1800);
umask(0);
Mage::app('admin'); 
$products_model =  Mage::getModel('catalog/product')
                ->getCollection()
                ->addAttributeToSelect('*')
                ->addAttributeToFilter('status', array("eq" => 1))
                ->load();  
$backendModel = $products_model->getResource()->getAttribute('media_gallery')->getBackend();

foreach ($products_model as $pid){
    $img = pathinfo($pid->getImageUrl())['basename'];
     echo 'Name  =  '.$pid->getName().'<br>';
    echo 'Image  =  '.$img.'<br>';
    if($img =='' || $img== 'image.jpg'){
        //live
        $ImagePath = "/var/www/vhosts/inriverimage/pics/".$pid->getName().".jpg"; // path of the image

        //local
        //$ImagePath = dirname(__FILE__)."/media/import/".$pid->getName().".jpg"; // path of the image
        
        if(file_exists($ImagePath)){
            echo 'Image  Found<br>';
            $products_model = Mage::getModel('catalog/product')->load($pid->getId()); 
            $products_model->addImageToMediaGallery($ImagePath, array('image', 'small_image', 'thumbnail'), false);
            $products_model->save();
        }
        else{
            echo 'Image  Not found<br>';
        }
    }
   
}
?>

This code is working in Magento 1.9. But If i try run it in magento1.7 using following URL http://localhost/magento1.7/addimage.php it through following error

Fatal error: Uncaught exception 'Exception' with message 'Strict Notice: Declaration of Mage_Core_Controller_Request_Http::getBaseUrl() should be compatible with Zend_Controller_Request_Http::getBaseUrl($raw = false) in /var/www/vhosts/loruslive/httpdocs/app/code/core/Mage/Core/Controller/Request/Http.php on line 36' in /var/www/vhosts/loruslive/httpdocs/app/code/core/Mage/Core/functions.php:245 Stack trace: #0 /var/www/vhosts/loruslive/httpdocs/app/code/core/Mage/Core/Controller/Request/Http.php(36): mageCoreErrorHandler(2048, 'Declaration of ...', '/var/www/vhosts...', 36, Array) #1 /var/www/vhosts/loruslive/httpdocs/lib/Varien/Autoload.php(93): include('/var/www/vhosts...') #2 [internal function]: Varien_Autoload->autoload('Mage_Core_Contr...') #3 /var/www/vhosts/loruslive/httpdocs/app/code/core/Mage/Core/Model/App.php(1219): spl_autoload_call('Mage_Core_Contr...') #4 /var/www/vhosts/loruslive/httpdocs/app/code/core/Mage/Core/Model/Cookie.php(83): Mage_Core_Model_App->getRequest() #5 /var/www/vhosts/loruslive/httpdocs in /var/www/vhosts/loruslive/httpdocs/app/code/core/Mage/Core/functions.php on line 245
1
  • 1
    remove E_Strict from your error reporting : E_ALL & ~E_STRICT Commented Feb 12, 2021 at 20:47

1 Answer 1

0

I finally fixed the problem by editing the file app/code/core/Mage/Core/Controller/Request/Http.php and changing the function getBaseUrl() as follows:

public function getBaseUrl($raw = false)
{
    $url = parent::getBaseUrl($raw);
    $url = str_replace('\\', '/', $url);
    return $url;
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.