其实现在好多团购网,都是同样的项目,重复上线,经常需要复制黏贴,挺麻烦的,今天在猪八戒上,看到有人发布任务,要求实现项目复制的功能。
其实实现起来很简单。说是复制,但也不能完全复制,起码新复制项目当前购买数量应该清零,其他的就应该全部复制了。当然,复制完之后,还要调整一下开始结束时间。
在/manage/team/目录下新建一个文件copy.php,我直接把代码贴上好了
<?php
require_once(dirname(dirname(dirname(__FILE__))) . '/app.php');
require_once(dirname(__FILE__) . '/current.php');
need_manager();
need_auth('team');
$id = abs(intval($_GET['id']));
$team = $eteam = Table::Fetch('team', $id);
if($team){
$insert = array(
'title', 'market_price', 'team_price', 'end_time',
'begin_time', 'expire_time', 'min_number', 'max_number',
'summary', 'notice', 'per_number','permin_number','allowrefund', 'product','image', 'image1', 'image2', 'flv', 'now_number',
'detail', 'userreview', 'card', 'systemreview',
'conduser', 'buyonce', 'bonus', 'sort_order',
'delivery', 'mobile', 'address', 'fare',
'express', 'credit', 'farefree', 'pre_number',
'user_id', 'city_id', 'group_id', 'partner_id',
'team_type', 'sort_order', 'farefree', 'state',
'condbuy','express_relate','city_ids'
);
$team['user_id'] = $login_user_id;
$team['state'] = 'none';
$insert = array_unique($insert);
$table = new Table('team', $team);
$table->SetStrip('detail', 'systemreview', 'notice');
if ( $table->insert($insert) ) {
log_admin('team', '复制team项目',$insert);
Session::Set('notice', '复制项目成功');
redirect( WEB_ROOT . "/manage/team/index.php");
}
else {
log_admin('team', '复制team项目失败',$insert);
Session::Set('error', '复制项目失败');
redirect(null);
}
}
使用方法很简单,直接调用/manage/team/copy.php?id=123这的地址就可以了,id就是要复制的项目的ID,可以根据需要,把这个链接加到适当的位置即可。
这个复制代码有几个问题,一个是复制后开团日期和截团日期应该是要修改过的,如果出现一个正在进行的团购,再复制一个出来就会出现新团购也被开出来了;还有一个是封面图片修改后,该封面图片会自动替换原来的封面图片;如果删除image字段则再编辑也无法上传新图片
你说的对,根据需要,适当修改即可