public function indexAction() { $this->loadModel("ClickModel"); $model = new ClickModel(); $top_stats = $model->dashboardTopStats(getUserId()); $this->setVar("title", "Dashboard"); $this->setVar("top_stats", $top_stats); $this->render("dashboard/dashboard"); }
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 dataAction() { $this->loadModel("ClickModel"); $model = new ClickModel(); $data = $model->clickSpy(getUserId(), $_GET['iDisplayStart'], $_GET['iDisplayLength']); $cnt = $data['count']; $click_rows = $data['click_rows']; $sEcho = $_GET['sEcho']; $data = array('sEcho' => (int) $sEcho, 'iTotalRecords' => $cnt, 'iTotalDisplayRecords' => $cnt, 'aaData' => array()); foreach ($click_rows as $click_row) { $html['referer'] = BTHtml::encode($click_row['referer_url_address']); $html['referer_host'] = BTHtml::encode($click_row['referer_domain_host']); $html['redirect'] = BTHtml::encode($click_row['redirect_url_address']); $html['click_pid'] = BTHtml::encode(base_convert($click_row['click_id'], 10, 36)); $html['time'] = date('m/d/y g:ia', $click_row['time']); $html['ts.name'] = BTHtml::encode($click_row['ts.name']); $html['ip_address'] = BTHtml::encode($click_row['ip_address']); $html['keyword'] = BTHtml::encode($click_row['keyword']); $html['lead'] = BTHtml::encode($click_row['lead']); $html['filtered'] = BTHtml::encode($click_row['filtered']); $html['landing'] = BTHtml::encode($click_row['landing']); $html['name'] = BTHtml::encode($click_row['name']); $html['browser_id'] = ''; if ($click_row['browser_id']) { $html['browser_id'] = '<img width="16" height="16" class="tooltip" title="' . Browser::getBrowserName($click_row['browser_id']) . '" src="/theme/img/icons/browsers/' . $click_row['browser_id'] . '.png"/>'; } $html['platform_id'] = ''; if ($click_row['platform_id']) { $html['platform_id'] = '<img width="16" height="16" class="tooltip" title="' . Browser::getPlatformName($click_row['platform_id']) . '" src="/theme/img/icons/platforms/' . $click_row['platform_id'] . '.png"/>'; } $data_array = array(); $data_array[] = strtoupper($html['click_pid']); $admin_image = ''; // if a click happened from the admin use user.png if ($click_row['filtered'] == 1) { // check if logged in user clicked $admin_image = '<img width="16" height="16" class="tooltip" src="/theme/img/icons/packs/iconsweets2/16x16/user.png" alt="Affiliate Click" title="Affiliate Click"/>'; } $filt = ''; $landingpage_image = ''; $offer_image = ''; $repeated_user = ''; if ($click_row['lead'] == '1') { $alt = 'Converted Click'; $filt = '<img width="16" height="16" class="tooltip" src="/theme/img/icons/16x16/money_dollar.png" alt="' . $alt . '" title="' . $alt . '" width="16px" height="16px"/>'; } // if a link is going to an offer directly use the bended arrow right.png $offer_image = $html['redirect'] ? sprintf('<a href="%s" target="_new"><img width="16" height="16" class="tooltip" src="/theme/img/icons/packs/iconsweets2/16x16/bended-arrow-right.png" alt="Offer Click" title="Offer Click"/></a>', $html['redirect']) : ''; if (!$offer_image) { // if the click happens on a landing page, they icon should be the document.png $landingpage_image = $html['landing'] ? sprintf('<a href="%s" target="_new"><img width="16" height="16" class="tooltip" src="/theme/img/icons/packs/iconsweets2/16x16/document.png" alt="Landing" title="Landing Page"/></a>', $html['landing']) : ''; } // if a click happened from a repeated user use footprint.png if ($click_row['filtered'] == 2) { // check if repeated user $repeated_user = '******'; } $cloaked_icon = ''; if ($click_row['cloaked']) { $cloaked_icon = '<img width="16" height="16" class="tooltip" src="/theme/img/icons/packs/iconsweets2/16x16/bulls-eye.png" alt="Safe Page" title="Visitor Was Filtered By An Advanced Redirect."/>'; } if ($filt) { $data_array[] = $filt . $admin_image . $repeated_user . $cloaked_icon; } else { $data_array[] = $filt . $landingpage_image . $offer_image . $admin_image . $repeated_user . $cloaked_icon; } $data_array[] = $html['time']; $data_array[] = '<span title="' . $html['keyword'] . '">' . $html['keyword'] . '</span>'; $data_array[] = $html['name']; $data_array[] = sprintf('<a href="%s" target="_new" title="Referer" class="tablelink">%s</a> ', $html['referer'], $html['referer_host']); $data_array[] = sprintf('<a target="_new" href="http://whois.arin.net/rest/ip/%s" class="tablelink">%s</a>', $html['ip_address'], $html['ip_address']); $data_array[] = $html['browser_id'] . ' ' . $html['platform_id']; $data['aaData'][] = $data_array; } echo json_encode($data); }
public function saveData($campaign, $cloaked = 0, $outbound_url = '') { $offer_id = 0; $landing_page_id = 0; if ($campaign->type == 2) { $campoffer = rotateDirectCampaign($campaign); if (!$campoffer) { BTApp::log("Direct Link: Invalid Offers For Tracker: " . $campaign->id(), 'direct', BT_SYSLOG_CRITICAL); } $payout = $campoffer->offer->payout; $offer_id = $campoffer->offer->id(); } else { if ($campaign->type == 1) { $camplp = rotateLPCampaign($campaign); $payout = 0; $landing_page = $camplp->landing_page; $landing_page_id = $landing_page->id(); if (!$landing_page) { BTApp::log("Landing Page: Invalid Landing Page ID: " . $landing_page_id . " For Tracker: " . $campaign->id(), 'direct', BT_SYSLOG_CRITICAL); } } } $ip_id = INDEXES::get_ip_id($_SERVER['REMOTE_ADDR']); $click = new ClickModel(); $click->offer_id = $offer_id; $click->landing_page_id = $landing_page_id; $click->traffic_source_id = $campaign->traffic_source_id; $click->payout = $payout; $click->filtered = FILTER::startFilter($ip_id); $click->user_id = $campaign->user_id; $click->cloaked = $cloaked; $click->campaign_id = $campaign->id(); $click->useRuleSet("track"); $click->save(); $vars = saveTrackingVariables($campaign); //if behind cloaker scripts, we use $_POST. Otherwise (normally) use HTTP_REFERER $referer = isset($_POST['referer']) ? $_POST['referer'] : getArrayVar($_SERVER, 'HTTP_REFERER'); $keyword = getArrayVar($_GET, $campaign->option('var_kw')->value); if (!$keyword) { $keyword = getArrayVar($_GET, 'kw'); if (!$keyword) { $keyword = getArrayVar($_GET, 'keyword'); } } $keyword_id = INDEXES::get_keyword_id($keyword); $platform = INDEXES::get_platform_and_browser_id(); $organization_id = 0; $geo_block_id = 0; $device_id = 0; require BT_ROOT . '/private/includes/traffic/devices_detect_inc.php'; $adv = new ClickAdvancedModel(); $adv->click_id = $click->id(); $adv->keyword_id = $keyword_id; $adv->ip_id = $ip_id; $adv->platform_id = $platform['platform']; $adv->browser_id = $platform['browser']; $adv->org_id = $organization_id; $adv->device_id = $device_id; $adv->v1_id = $vars['v1_id']; $adv->v2_id = $vars['v2_id']; $adv->v3_id = $vars['v3_id']; $adv->v4_id = $vars['v4_id']; $adv->location_id = $geo_block_id; $adv->campaign_id = $campaign->id(); $adv->useRuleSet('track'); $adv->save(); $data = $vars; $data['keyword'] = $keyword; $data['clickid'] = base_convert($click->click_id, 10, 36); if ($offer_id) { if ($outbound_url) { $redirect_url = $outbound_url; } else { $redirect_url = $campoffer->offer->url; $redirect_url = replaceTrackerPlaceholders($redirect_url, $data); } $landing_url = ''; } else { $redirect_url = ''; if ($outbound_url) { $landing_url = $outbound_url; } else { $landing_url = $landing_page->url; } } //set the cookie setClickIdCookie(base_convert($click->click_id, 10, 36)); $site = new ClickSiteModel(); $site->click_id = $click->id(); $site->referer_url = $referer; $site->referer_domain = getUrlDomain($referer); $site->offer_url = $redirect_url; $site->landing_url = $landing_url; $site->useRuleSet('track'); $site->save(); $pass_vars = array(); $to_append = ''; if ($landing_page_id) { $type = 'lp'; } else { $type = 'offer'; } foreach ($campaign->options as $option) { if (strpos($option->name, 'pass_') === 0) { $var_name = substr($option->name, 5); $val = getArrayVar($_GET, $var_name, ''); $pass = new ClickPassthroughModel(); $pass->click_id = $click->click_id; $pass->name = $var_name; $pass->value = $val; $pass->useRuleSet('track'); $pass->save(); $pass_vars[$var_name] = $pass; } } $to_append = http_build_query($this->getPassthroughsToAppend($campaign, $pass_vars, $type)); if ($offer_id) { //direct return appendQueryString($redirect_url, $to_append); } else { //lp return appendQueryString($landing_url, $to_append); } }