public function offerExistingRowAction() { if (@$_GET['offer_id']) { $offer = OfferModel::model()->getRowFromPk($_GET['offer_id']); } else { $offer = OfferModel::model(); } $campoffer = CampaignOfferModel::model(); $campoffer->offer_id = $offer->id(); $this->setVar('campoffer', $campoffer); if (@$_GET['offer_type'] != "lp") { $this->loadView('tracker/offer_row'); } else { $this->loadView('tracker/lpoffer_row'); } }
public function duplicate($id) { DB::startTransaction(); $query = "insert into " . $this->tableName() . " (name, user_id, traffic_source_id, rotate, cloaker_id, type)"; $query .= "select concat(name,' copy') as name, user_id, traffic_source_id, rotate, cloaker_id, type from " . $this->tableName() . " "; $query .= "where campaign_id='" . DB::quote($id) . "'"; if (!DB::query($query)) { DB::rollback(); return false; } $new_id = DB::insertId(); if (!$new_id) { DB::rollback(); return false; } if (!CampaignOfferModel::model()->duplicate($id, $new_id)) { DB::rollback(); return false; } if (!CampaignLPModel::model()->duplicate($id, $new_id)) { DB::rollback(); return false; } if (!CampaignOptionModel::model()->duplicate($id, $new_id)) { DB::rollback(); return false; } if (!SpendingModel::model()->duplicate($id, $new_id)) { DB::rollback(); return false; } DB::commit(); return $new_id; }
public function offerAction($params = array()) { $campaign_id = getArrayVar($params, 0, 0); $offer_id = getArrayVar($params, 1, 0); //just one param if (!$offer_id) { if (!($campoffer = CampaignOfferModel::model()->getRowFromPk($campaign_id))) { echo "Error 0: Invalid offer ID"; exit; } $campaign_id = $campoffer->campaign_id; $offer_id = $campoffer->offer_id; } //two params if (!($campaign = CampaignModel::model()->getRowFromPk($campaign_id))) { echo "Error 1: Invalid offer ID"; exit; } if (!($offer = OfferModel::model()->getRowFromPk($offer_id))) { echo "Error 3: Invalid offer ID"; exit; } //no LP id set, direct link? if ($campaign->type != 1) { echo "Error 2: Invalid LP ID"; exit; } if ($_COOKIE['btclickid']) { $click = ClickModel::model()->getRow(array('conditions' => array('click_id' => base_convert($_COOKIE['btclickid'], 36, 10)))); if (!$click) { echo "Error 4: Invalid click"; exit; } else { if (!$click->landing_page_id) { echo "Error 8: Invalid click"; exit; } else { if ($click->offer_id) { //new click (offer already set). Use old data $new_click = clone $click; $new_click->offer_id = 0; $new_click->filtered = 2; //always filter as repeat visitor $new_click->lead = 0; $new_click->useRuleSet('track'); $new_click->save(false, true); $id = $new_click->id(); $new_adv = clone $click->advanced; $new_adv->click_id = $id; $new_adv->save(false, true); $new_site = clone $click->site; $new_site->click_id = $id; $new_site->save(false, true); $passes = array(); foreach ($click->passthroughs as $pass) { $new_pass = clone $pass; $new_pass->click_id = $id; $new_pass->name = $pass->name; $new_pass->save(false, true); $passes[$new_pass->name] = $new_pass; } $click = $new_click; $click->addJoinedModel('advanced', $new_adv); $click->addJoinedModel('site', $new_site); $click->addJoinedModel('passthroughs', $passes); setClickIdCookie(base_convert($click->click_id, 10, 36)); } } } } else { //if no cookie, generate new click $this->saveData($campaign, 0, ''); if (!$_COOKIE['btclickid']) { echo "Error 2: Database Error"; exit; } $click = ClickModel::model()->getRow(array('conditions' => array('click_id' => base_convert($_COOKIE['btclickid'], 36, 10)))); } if (!$click) { echo "Error 6: Invalid click"; exit; } $data = $click->advanced->getAdvPlaceholderData(); $data['clickid'] = base_convert($click->click_id, 10, 36); //set campaign id $click->offer_id = $offer->id(); $click->payout = $offer->payout; $click->useRuleSet('lpoffer'); $click->save(); //set offer urls $redirect_url = $offer->url; $redirect_url = replaceTrackerPlaceholders($redirect_url, $data); $click->site->offer_url = $redirect_url; $click->site->useRuleSet('lpoffer'); $click->site->save(); $append = array(); foreach ($click->passthroughs as $pass) { $opt = json_decode($campaign->options['pass_' . $pass->name]->value); if ($opt->offer) { $append[$pass->name] = $pass->value; } } $_GET = array(); $_GET['url'] = appendQueryString($redirect_url, http_build_query($append)); $_GET['c'] = 0; $_GET['t'] = $campaign->options['redirect_method']->value; $this->redirectAction(); }