网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站建设 > ZenCart
User Name
Password
 
FAQ Members List Calendar Cheap Glasses Mark Forums Read

Reply
 
Thread Tools Display Modes
  #1   IP: 114.238.1.126
Old 2016-01-22, 11:11 PM
Waasa Waasa is offline
初级会员
 
Join Date: 2007-07-14
Posts: 1
Waasa 现在声名狼藉
Default Zencart后台删除产品后图片也相对应地删除

有人问:” lightinbox版里能不能实现在后台删除商品时也同时删除空间的的图,因为空间的图太多了 都在一个文件夹里面,要去删掉很难找”:很多用zencart系统的朋友,想删除产品时把相对应的图片也给删除了,就是为了可以节省到很多没必要的空间,从而也提高了网站的显示速度. 有二种方法可以解决这个问题.

第一个方法: 后台添加产品时候,添加图片的下面,
有一句话,Delete Image? NOTE: Removes Image from Product, Image is NOT removed from server: No Yes选择NO就行了。不过好像只会删除主图,不会删除附加图。

第二种方法是在程序里去实现.那样就不用去一个个选NO 或是 YES了.他可以将主图的大,中,小图全部都删除掉.

改文件adminincludesmodulesdelete_product_confirm.php 第48行

for ($k=0, $m=sizeof($product_categories); $k<$m; $k++) {

$products_image_aa=$db->Execute(“select * from products

where products_id = ‘” . (int)$product_id . “‘”);

$products_image_ct =explode(“,”, $products_image_aa->fields[‘products_image’]);

$products_image_count=count($products_image_ct);

if($products_image_count>0){

for($i=0;$i<$products_image_count;$i++){

$images_n=explode(“/”, $products_image_ct[$i]);

$filepath1 = “..imagesv” . “” . $images_n[1]. “” . $images_n[2];

$filepath2 = “..imagess” . “”. $images_n[1]. “” . $images_n[2];

$filepath3 = “..imagesl” . “”. $images_n[1]. “” . $images_n[2];

unlink( $filepath1 ) ;

unlink( $filepath2 ) ;

unlink( $filepath3 ) ;

}

}

$db->Execute(“delete from ” . TABLE_PRODUCTS_TO_CATEGORIES . ”

where products_id = ‘” . (int)$product_id . “‘

and categories_id = ‘” . (int)$product_categories[$k] . “‘”);

}

如果是在本地,他们的路径方式显示不同,就改成如下:

$filepath1 = “../images/v” . “/” . $images_n[1]. “/” . $images_n[2];

$filepath2 = “../images/s” . “/”. $images_n[1]. “/” . $images_n[2];

$filepath3 = “../images/l” . “/”. $images_n[1]. “/” . $images_n[2];

这里我就只开发得主图的删除.

如果想删除里面产品的相关图片(多图片产品),那么就要接着开发.个人思路分享,如果是批量上传的,图片名会很有规律.例如:主图名是1violet.jpg 那么他的另几个图是1violet_1.jpg或都是其他有规律的名称,那就如以下步骤做.

1. 取出这个产品的图片名称和这个图片所在的是路径

2. 写个程序读取这个这个产品图片路径下的所有图片名称

3. 用程序取出相关的,一起删了.

如果不是批量,是用手动上传的,那你就要看看图片名称有没有规律,如果没有,就要去数据库里找了.

还有没有更多更好的方法,高手们,如果有给点更好的意见.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 12:20 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.