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; }
function setCloakerOption($cloaker, $name, $value) { $opt = CloakerOptionModel::model()->getRowFromPk(array('cloaker_id' => $cloaker->id(), 'name' => $name)); if (!$opt) { $opt = CloakerOptionModel::model(); $opt->cloaker_id = $cloaker->id(); $opt->name = $name; $opt->value = $value; $opt->useRuleSet('new'); } else { $opt->useRuleSet('edit'); $opt->value = $value; } $opt->save(); }