public function duplicate($id)
{
DB::startTransaction();
if (!DB::query("insert into " . $this->tableName() . " (name, user_id, url) select concat(name,' copy') as name, user_id, url from " . $this->tableName() . " where cloaker_id='" . DB::quote($id) . "'")) {
DB::rollback();
return false;
}
$new_id = DB::insertId();
if (!$new_id) {
DB::rollback();
return false;
}
if (!CloakerOptionModel::model()->duplicate($id, $new_id)) {
DB::rollback();
return false;
}
if (!CloakerHostnameModel::model()->duplicate($id, $new_id)) {
DB::rollback();
return false;
}
if (!CloakerIpModel::model()->duplicate($id, $new_id)) {
DB::rollback();
return false;
}
if (!CloakerRefererModel::model()->duplicate($id, $new_id)) {
DB::rollback();
return false;
}
if (!CloakerUaModel::model()->duplicate($id, $new_id)) {
DB::rollback();
return false;
}
DB::commit();
return $new_id;
}