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