If your store has changed servers or you are just having some file backup issues and are missing your images here is a quick script to tell you which images are broken in virtuemart. This php script could easily be modified for other websites, stores, or tables.
Just change a few variables, upload and it will list out all of your missing product photos. Even with an edit link to help you fix them faster!
/**
Joomla 1.5 - virtuemart 1.9
lists product large images that are missing and need to be re-uploaded
Thumbnails are auto generated so its not an issue to look for them.
could be easily modified for other datbases/content i.e. categories
*/
//database variables - copy from your configuration.php
$user = '';
$db = '';
$password = '';
$host = 'localhost';
$editurl ='https://www.DOMAIN.com/administrator/index.php?page=product.product_form&limitstart=0&keyword=&product_parent_id=&option=com_virtuemart&product_id=';
//make sure you edit your full path here
$filepath ='/home/DOMAIN/public_html/components/com_virtuemart/shop_image/product';
echo "file location:".$filepath."<br><br>";
if (!$link = mysql_connect($host, $user, $password)) {
echo 'Could not connect to mysql';
exit;
}
if (!mysql_select_db($db, $link)) {
echo 'Could not select database';
exit;
}
//database query for the fields we need
$sql = 'SELECT product_id,product_full_image, product_name FROM jos_vm_product';
$result = mysql_query($sql, $link);
if (!$result) {
echo "DB Error, could not query the database\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
while ($row = mysql_fetch_assoc($result))
{
$filename = $filepath.'/'.$row['product_full_image'];
//output the file name and edit link if the file is missing
if(!file_exists($filename))
{
echo $row['product_full_image']. ' - '.$row['product_name'] ;
echo ' <a href="'.$editurl.$row['product_id'] .'" target="_blank">edit</a><br>';
}
}
mysql_free_result($result);
exit();

1 comment:
I could do with this for virtuemart 3/Joomla 3 please :-)
Post a Comment