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; }