public function indexAction() { //get the aff_camapaign_id $mysql['use_pixel_payout'] = 0; //see if it has the cookie in the campaign id, then the general match, then do whatever we can to grab SOMETHING to tie this lead to if ($_COOKIE['btclickid']) { $click_pid = $_COOKIE['btclickid']; } else { //ok grab the last click from this ip_id $mysql['ip_address'] = DB::quote($_SERVER['REMOTE_ADDR']); $daysago = time() - 2592000; // 30 days ago $click_sql1 = "\tSELECT \tbt_s_clicks.click_id\n\t\t\t\t\t\t\tFROM \t\tbt_s_clicks\n\t\t\t\t\t\t\tLEFT JOIN\tbt_s_clicks_advanced USING (click_id)\n\t\t\t\t\t\t\tLEFT JOIN \tbt_s_ips USING (ip_id)\n\t\t\t\t\t\t\tWHERE \tbt_s_ips.ip_address='" . $mysql['ip_address'] . "'\n\t\t\t\t\t\t\tAND\t\tbt_s_clicks.time >= '" . $daysago . "'\n\t\t\t\t\t\t\tORDER BY \tbt_s_clicks.click_id DESC\n\t\t\t\t\t\t\tLIMIT \t\t1"; $click_row1 = DB::getRow($click_sql1); $click_pid = base_convert($click_row1['click_id'], 10, 36); $mysql['ad_account_id'] = DB::quote($click_row1['ad_account_id']); } $click = ClickModel::model()->getRow(array('conditions' => array('click_id' => base_convert($click_pid, 36, 10)))); if (!$click) { BTApp::end(); } if ($click->get('ad_account_id')) { if (getArrayVar($_GET, 'amount') && is_numeric($_GET['amount'])) { $mysql['use_pixel_payout'] = 1; } if ($mysql['use_pixel_payout'] == 1) { $click->convert(0, $_GET['amount']); } else { $click->convert(); } if ($click->campaign->option('pixel_type')->value) { $sql = "select v1.var_value as v1, v2.var_value as v2, v3.var_value as v3, v4.var_value as v4 from bt_s_clicks_advanced adv\n\t\t\t\t\tleft join bt_s_variables v1 on (v1.var_id=adv.v1_id)\n\t\t\t\t\tleft join bt_s_variables v2 on (v2.var_id=adv.v2_id)\n\t\t\t\t\tleft join bt_s_variables v3 on (v3.var_id=adv.v3_id)\n\t\t\t\t\tleft join bt_s_variables v4 on (v4.var_id=adv.v4_id)\n\t\t\t\t\twhere adv.click_id=?"; $st = DB::prepare($sql); $st->execute(array($click->id())); $row = $st->fetch(); $data['v1'] = $row['v1']; $data['v2'] = $row['v2']; $data['v3'] = $row['v3']; $data['v4'] = $row['v4']; $data['clickid'] = $click->id(); $data['keyword'] = ''; $data['amount'] = $click->payout; $code = replaceTrackerPlaceholders($click->campaign->option('pixel_code')->value, $data); $code = str_replace('[[amount]]', $data['amount'], $code); switch ($click->campaign->option('pixel_type')->value) { case 1: case 2: case 3: echo $code; break; case 4: $ch = curl_init($code); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 Postback-Bot v1.0'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); break; } } } }
public function indexAction() { $success = false; if (isset($_POST['clickids'])) { if ($clickids = $_POST['clickids']) { $clickids = trim($clickids); $clickids = explode("\n", $clickids); $clickids = str_replace("\r", '', $clickids); foreach ($clickids as $sid) { $click = ClickModel::model()->getRow(array('conditions' => array('click_id' => base_convert($sid, 36, 10)))); if ($click) { if ($_POST['update_type'] == 1) { $click->convert(1); } else { $click->clearConversion(); } } } $_POST['clickids'] = ''; $success = true; } } else { $_POST['clickids'] = ''; } $this->setVar("clickids", $_POST['clickids']); $this->setVar("title", "Update Clicks"); $this->setVar("success", $success); $this->render("updateclick/index"); }
public function clearDataAction() { BTApp::importModel("ClickModel"); BTApp::importModel("ClickSiteModel"); BTApp::importModel("ClickAdvancedModel"); BTApp::importModel("ClickPassthroughModel"); ClickSiteModel::model()->deleteOldData(); ClickAdvancedModel::model()->deleteOldData(); ClickModel::model()->deleteOldData(); ClickPassthroughModel::model()->deleteOldData(); }
public function IndexAction() { if (!getArrayVar($_GET, 'clickid')) { BTApp::log("No SubID", 'postback_pixel', BT_SYSLOG_CRITICAL); } $click_pid = getArrayVar($_GET, 'clickid'); $mysql['click_id'] = DB::quote(base_convert($click_pid, 36, 10)); $mysql['pixel_id'] = 0; $mysql['use_pixel_payout'] = 0; if ($click_pid) { if ($_GET['amount'] && is_numeric($_GET['amount'])) { $mysql['use_pixel_payout'] = 1; $mysql['payout'] = DB::quote($_GET['amount']); } $click = ClickModel::model()->getRow(array('conditions' => array('click_id' => $mysql['click_id']))); if (!$click) { BTApp::end(); } if ($mysql['use_pixel_payout'] == 1) { $click->convert(0, $mysql['payout']); } else { $click->convert(); } if ($click->campaign->option('pixel_type')->value == 4) { $data = array(); $sql = "select v1.var_value as v1, v2.var_value as v2, v3.var_value as v3, v4.var_value as v4 from bt_s_clicks_advanced adv\n\t\t\t\t\tleft join bt_s_variables v1 on (v1.var_id=adv.v1_id)\n\t\t\t\t\tleft join bt_s_variables v2 on (v2.var_id=adv.v2_id)\n\t\t\t\t\tleft join bt_s_variables v3 on (v3.var_id=adv.v3_id)\n\t\t\t\t\tleft join bt_s_variables v4 on (v4.var_id=adv.v4_id)\n\t\t\t\t\twhere adv.click_id=?"; $st = DB::prepare($sql); $st->execute(array($click->id())); $row = $st->fetch(); $data['v1'] = $row['v1']; $data['v2'] = $row['v2']; $data['v3'] = $row['v3']; $data['v4'] = $row['v4']; $data['clickid'] = $click->id(); $data['keyword'] = ''; $data['amount'] = $click->payout; $pb_url = replaceTrackerPlaceholders($click->campaign->option('pixel_code')->value, $data); $pb_url = str_replace('[[amount]]', $data['amount'], $pb_url); $ch = curl_init($pb_url); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 Postback-Bot v1.0'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_exec($ch); } } }
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(); }