public function inputProduct() { $cam = new CampaignModel(); $arrCam = $cam->getAll(); $prod = new ProdModel(); $arrProd = $prod->getAll(); $_SESSION['arrProd'] = $arrProd; ?> <div class="input-group"> <span class="input-group-addon" id="basic-addon1">Select Campaign :</span> <select class="form-control" onchange="getMatrix();" id="camp_select"> <option value=""></option> <?php foreach ($arrCam as $c) { ?> <option value="<?php echo $c->camp_id; ?> "><?php echo $c->camp_name; ?> </option> <?php } ?> </select> </div><!-- /input-group --> <div id="camp_matrix" style="padding-top: 20px;"> </div> <script> function getMatrix(){ var slc = $("#camp_select").val(); if(slc!="") $("#camp_matrix").load("<?php echo _SPPATH; ?> CampaignWeb/getMatrix?cid="+slc); } </script> <style> .productcamp{ background-color: #dedede; margin: 5px; padding: 5px; } </style> <?php //pr($arrProd); }
function latest_deal() { $camp = new CampaignModel(); $arr2 = $camp->getWhere("camp_active = 1 ORDER BY camp_pos_x ASC,camp_size DESC"); //pr($arr); foreach ($arr2 as $cp) { $arrNachRow[$cp->camp_pos_x][] = $cp; $arrNachSize[$cp->camp_size][] = $cp; } $arr['arrNachRow'] = $arrNachRow; $arr['arrNachSize'] = $arrNachSize; $arr['camp'] = $camp; $layout_id = "eComm_latestdeal"; $file = Layout::getFile($layout_id); // echo "Pages/".$layout_id."/".$file; Mold::theme("Pages/" . $layout_id . "/" . $file, $arr); }
public function delete($bit = 0) { if (!$bit || $bit == DELETE_BIT_SELF) { $this->deleted = 1; $this->useRuleSet('delete'); $this->save(); BTApp::importModel('CampaignModel'); CampaignModel::model()->deleteAll(array('traffic_source_id' => $this->id()), DELETE_BIT_TRAFFIC_SOURCE); } return true; }
public function indexAction() { $success = false; $error = array(); if (isset($_POST['amount'])) { $spend = SpendingModel::model(); $spend->date = date('Y-m-d', strtotime($_POST['date'])); $spend->campaign_id = $_POST['campaign_id']; $spend->amount = $_POST['amount']; $spend->useRuleSet('new'); if ($spend->save()) { $success = "Spend saved"; } else { $error = $spend->getErrors(); } } $campaigns = CampaignModel::model()->getRows(array('order' => '`campaign_id` ASC')); $this->setVar("campaigns", $campaigns); $this->setVar("title", "Update Spending"); $this->setVar("error", $error); $this->setVar("success", $success); $this->render("spending/spending"); }
<label class="tooltip"title="MM/DD/YYYY">End Date:</label> <input class="date" onchange="unset_time_predefined();" type="text" name="to" id="to" value="<?php echo $html['to']; ?> " /> </div> </div> <?php if ($show_options['show_campaign']) { ?> <div class="grid_2"> <div class="box"> <label>Campaign</label> <?php BTForm::createSelect('campaign_id', CampaignModel::model()->getRows(), BTAuth::user()->getPref('campaign_id'), 'campaign_id', '', 'name', 'campaign_id', 'Show All'); ?> </div> </div> <?php } ?> <?php if ($show_options['show_type']) { ?> <div class="grid_2"> <div class="box"> <label>Type</label> <?php
public function p($arg) { list($id, $judul) = $arg; $arrkirim = array(); if ($id < 1 || $id == "") { die("NO ID"); } $_SESSION['hist_prod'] = array("id" => $id, "judul" => $judul); $_SESSION['hist_url'] = _LANGPATH . "pwa/p/{$id}/" . urlencode($judul); $p = new ProdModel(); $p->getByID($id); if ($p->prod_active < 1) { header("Location:" . _LANGPATH . "p404"); exit; } global $template; $template->title = $p->prod_name; $src = self::getMainPic($p); if ($p->prod_diskon > 0) { $hrgbaru = ceil((100 - $p->prod_diskon) / 100 * $p->prod_price); } else { $hrgbaru = $p->prod_price; } $cp = new CampaignProdMatrix(); $arr = $cp->getWhere("cm_prod_id = '{$id}'"); $cp_id = $arr[0]->cm_camp_id; $cp = new CampaignModel(); $cp->getByID($cp_id); $cw = new Cw(); // $cw->campaign_header($cp_id, $cp); //process image $exp = explode(",", $p->prod_pic); $sudah = array(); $arrImg = array(); if (count($exp) > 1) { $if = new InputFileModel(); foreach ($exp as $num => $img) { if (!in_array($img, $sudah)) { $sudah[] = $img; $srcs = _SPPATH . $if->upload_url . "thumbnail/" . $img; $srcs_big = _SPPATH . $if->upload_url . $img; $cl = 'class="nonaktif"'; if ($src["thumbs"] == $srcs) { $cl = 'class="aktif"'; } // $id = base64_encode($srcs); $arrImg[$num] = array($srcs, $srcs_big, $cl); } } } //process category $cat = new ProdCat(); $cat->getByID($p->prod_cat_id); $arrParent = array(); $arrpp = ProdCat::getAllParents($cat->cat_parent_id, $arrParent); //pr($arrpp); $arrpp2 = array_reverse($arrpp); foreach ($arrpp2 as $bc) { $str[] = $bc->cat_name; } $str[] = $cat->cat_name; // $str2 = "<a href='" . _LANGPATH . "pwa/category/" . urlencode($cat->cat_name) . "'>".$cat->cat_name . "</a>"; //bypass roy //$str2 = $cat->cat_name; $arrCat = $str; $arrkirim['p'] = $p; $arrkirim['id'] = $id; $arrkirim['cp'] = $cp; $arrkirim['arrImg'] = $arrImg; $arrkirim['arrCat'] = $arrCat; $arrkirim['hargaafterdiskon'] = $hrgbaru; $arrkirim['src'] = $src; $layout_id = "eComm_product"; $file = Layout::getFile($layout_id); // echo "Pages/".$layout_id."/".$file; Mold::theme("Pages/" . $layout_id . "/" . $file, $arrkirim); }
public function copyCampaignAction() { if ($_POST['campaign_id']) { CampaignModel::model()->duplicate($_POST['campaign_id']); } }
function campaign($args) { list($id, $title, $page) = $args; $pc = new CampaignProdMatrix(); //pagination if ($page < 1 || $page == "") { $page = 1; } $limit = 21; $begin = ($page - 1) * $limit; $link = _SPPATH . "cw/campaign/{$id}/" . urlencode($title) . "/|x|"; $jml = $pc->getJumlah("cm_camp_id = '{$cp->camp_id}'"); $_SESSION['hist_url'] = _LANGPATH . "cw/campaign/{$id}/" . urlencode($title) . "/|x|"; //end pagination $cp = new CampaignModel(); $cp->getByID($id); // $this->campaign_header($id,$cp); //pr($cp); $arr2 = $pc->getWhereFromMultipleTable("cm_camp_id = '{$id}' AND cm_prod_id = prod_id AND prod_active = 1 ORDER BY cm_latest_added DESC LIMIT {$begin},{$limit}", array("ProdModel")); $arr['cp'] = $cp; $arr['page'] = $page; $arr['jml'] = $jml; $arr['prods'] = $arr2; $arr['limit'] = $limit; $arr['link'] = $link; $layout_id = "eComm_campaign"; $file = Layout::getFile($layout_id); // echo "Pages/".$layout_id."/".$file; Mold::theme("Pages/" . $layout_id . "/" . $file, $arr); }
public function cloakerAction() { if (!($ip = $_POST['ip'])) { echo '0'; exit; } if (!($slug = $_POST['slug'])) { echo '0'; exit; } $row = DB::getRow("select * from bt_u_campaigns camp left join bt_u_cloakers cloak on cloak.cloaker_id=camp.cloaker_id\nwhere ((cloak.slug > '' and concat('/',cloak.slug,'/',camp.slug)='" . DB::quote($slug) . "')\nor (cloak.slug = '' and concat('/',camp.slug)='" . DB::quote($slug) . "'))"); $campaign = CampaignModel::model()->getRowFromPk($row['campaign_id']); $cloaker = $campaign->cloaker; if (!$campaign) { echo '0'; exit; } $ip_id = INDEXES::get_ip_id($ip); $referer = isset($_POST['referer']) ? $_POST['referer'] : ''; $user_agent = isset($_POST['user_agent']) ? $_POST['user_agent'] : ''; $hostname = gethostbyaddr($ip); $_SERVER['REMOTE_ADDR'] = $ip; $_SERVER['HTTP_REFERER'] = $referer; $_SERVER['HTTP_USER_AGENT'] = $user_agent; $_GET = array(); parse_str($_POST['query'], $_GET); $paused_redir = false; if ($campaign->option('advanced_redirect_status')->value) { $num_prev_visits = ClickAdvancedModel::getNumPreviousClicks($campaign->id(), $ip_id); $options = $cloaker->options; foreach ($options as $opt) { $opts[$opt->name] = $opt->value; } $opts = array_merge(CloakerOptionModel::defaultOptions(), $opts); $url = ''; //Check 1: blank referer? /*if(!trim($referer)) { $url = $opts['exclude_url']; }*/ $ip = DB::quote(ip2long($ip)); $referer = DB::quote($referer); $user_agent = DB::quote($user_agent); $hostname = DB::quote($hostname); $cloaker_id = DB::quote($cloaker->cloaker_id); if (!$url) { if (!($row = DB::getRow("select url from bt_u_cloaker_ips where cloaker_id='{$cloaker_id}' and ip_from <= '{$ip}' and ip_to >= '{$ip}'", null))) { if (!($row = DB::getRow("select url from bt_u_cloaker_referers where cloaker_id='{$cloaker_id}' and '{$referer}' REGEXP referer", null))) { if (!($row = DB::getRow("select url from bt_u_cloaker_hostnames where cloaker_id='{$cloaker_id}' and '{$hostname}' REGEXP hostname", null))) { $row = DB::getRow("select url from bt_u_cloaker_user_agents where cloaker_id='{$cloaker_id}' and '{$user_agent}' REGEXP user_agent", null); } } } } /******** ORG CHECK ***********/ // We always check the server too, in case the visitor is a known super-bad guy who should be // avoided, at all costs. if (!isset($opts['organizations'])) { $opts['organizations'] = '[]'; } $orgs_data = json_decode($opts['organizations']); $orgs = array(); foreach ($orgs_data as $data) { $orgs[] = $data[0]; } //CHECK BALLISTIC API SERVER $payload = array('ip' => getArrayVar($_POST, 'ip'), 'user_agent' => getArrayVar($_POST, 'user_agent'), 'orgs' => implode(',', $orgs), 'has_referer' => $_SERVER['HTTP_REFERER'] ? '1' : '0', 'version' => '1.0'); $ch = curl_init(API_SERVER . '/check.php?' . http_build_query($payload)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret = curl_exec($ch); $org_url = ''; if ($ret != 0) { foreach ($orgs_data as $data) { if ($data[0] == $ret) { $org_url = $data[1]; } } if (!$org_url) { $org_url = $opts['exclude_url']; } } /****** END ORG CHECK *********/ if (!$url) { if (!$row) { //only use org url if it did not match any filtets locally $url = $org_url; } else { // found local match $url = $row['url'] ? $row['url'] : $opts['exclude_url']; } } //handle expiration first if (!$url && $campaign->option('adv_redir_clicks')->value < $opts['expiration']) { $is_cloaked = 1; $url = $opts['exclude_url']; } elseif (!$url && ($opts['clickfrequency'] && $num_prev_visits >= $opts['clickfrequency'])) { $is_cloaked = 1; $url = $opts['exclude_url']; } elseif (!isset($url) || !$url) { //redirect to offer, no cloak $is_cloaked = 0; $url = ''; } else { $is_cloaked = 1; } //Uptick click count, regardless of cloak status $clicks = $campaign->option('adv_redir_clicks'); $clicks->value = $clicks->value + 1; $clicks->save(); } else { $options = $cloaker->options; foreach ($options as $opt) { $opts[$opt->name] = $opt->value; } $opts = array_merge(CloakerOptionModel::defaultOptions(), $opts); //if the adv. redirect is paused $is_cloaked = 0; $url = $opts['exclude_url']; $paused_redir = true; } //save click data, this will also set the clickid cookie :) $tracker_controller = new TrackerController(); $url = $tracker_controller->saveData($campaign, $is_cloaked, $url); if (!$is_cloaked && !$paused_redir) { //record uncloaked (normal) visitors. First we redirect through the tracking system $click_id = $_COOKIE['btclickid']; $type = $campaign->option('redirect_method')->value; echo getBTUrl() . "/tracker/advRedirect/?click_id={$click_id}&t={$type}"; } else { if (!$is_cloaked && $paused_redir) { echo $url; } else { echo $url; } } exit; }
protected function editCampaign() { DB::startTransaction(); if (!($campaign = CampaignModel::model()->getRowFromPk($_POST['campaign_id']))) { echo json_encode(array('message' => 'Could not save: invalid campaign ID')); DB::rollback(); BTApp::end(); } $campaign->name = $_POST['name']; $campaign->cloaker_id = $_POST['cloaker_id']; $campaign->slug = $_POST['slug']; $campaign->save(); switch ($campaign->type) { case 1: foreach ($campaign->offers as $offer) { if (!in_array($offer->id(), $_POST['campaign_lpoffer_id'])) { $offer->delete(); } } for ($i = 0, $cnt = count($_POST['campaign_lpoffer_id']); $i < $cnt; $i++) { $id = $_POST['campaign_lpoffer_id'][$i]; if (!$id) { //new $offer = OfferModel::model(); $offer->aff_network_id = $_POST['lpoffer_aff_network_id'][$i]; $offer->name = $_POST['lpoffer_name'][$i]; $offer->url = $_POST['lpoffer_url'][$i]; $offer->payout = $_POST['lpoffer_payout'][$i]; if (!$offer->save()) { echo json_encode(array('message' => 'Could not add offers')); DB::rollback(); BTApp::end(); } $campoffer = CampaignOfferModel::model(); $campoffer->campaign_id = $campaign->id(); $campoffer->position = 0; $campoffer->weight = 0; $campoffer->offer_id = $offer->id(); if (!$campoffer->save()) { echo json_encode(array('message' => 'Could not add campaign offers')); DB::rollback(); BTApp::end(); } } else { //edit $campoffer = CampaignOfferModel::model()->getRowFRomPk($id); $offer = $campoffer->offer; $offer->aff_network_id = $_POST['lpoffer_aff_network_id'][$i]; $offer->name = $_POST['lpoffer_name'][$i]; $offer->url = $_POST['lpoffer_url'][$i]; $offer->payout = $_POST['lpoffer_payout'][$i]; if (!$offer->save()) { echo json_encode(array('message' => 'Could not save offers')); DB::rollback(); BTApp::end(); } } } foreach ($campaign->landing_pages as $lp) { if (!in_array($lp->id(), $_POST['campaign_lp_id'])) { $lp->delete(); } } for ($i = 0, $cnt = count($_POST['campaign_lp_id']); $i < $cnt; $i++) { $id = $_POST['campaign_lp_id'][$i]; if (!$id) { //new $lp = LandingPageModel::model(); $lp->name = $_POST['lp_name'][$i]; $lp->url = $_POST['lp_url'][$i]; if (!$lp->save()) { echo json_encode(array('message' => 'Could not add LPs')); DB::rollback(); BTApp::end(); } $camp_lp = CampaignLPModel::model(); $camp_lp->campaign_id = $campaign->id(); $camp_lp->landing_page_id = $lp->id(); $camp_lp->weight = $_POST['lp_weight'][$i]; if (!$camp_lp->save()) { echo json_encode(array('message' => 'Could not add campaign LPs')); DB::rollback(); BTApp::end(); } } else { //edit $camp_lp = CampaignLPModel::model()->getRowFromPk($id); $camp_lp->weight = $_POST['lp_weight'][$i]; if (!$camp_lp->save()) { echo json_encode(array('message' => 'Could not save campaign LPs')); DB::rollback(); BTApp::end(); } $lp = $camp_lp->landing_page; $lp->name = $_POST['lp_name'][$i]; $lp->url = $_POST['lp_url'][$i]; if (!$lp->save()) { echo json_encode(array('message' => 'Could not save LPs')); DB::rollback(); BTApp::end(); } } } break; case 2: foreach ($campaign->offers as $offer) { if (!in_array($offer->id(), $_POST['campaign_offer_id'])) { $offer->delete(); } } for ($i = 0, $cnt = count($_POST['campaign_offer_id']); $i < $cnt; $i++) { $id = $_POST['campaign_offer_id'][$i]; if (!$id) { //new $offer = OfferModel::model(); $offer->aff_network_id = $_POST['offer_aff_network_id'][$i]; $offer->name = $_POST['offer_name'][$i]; $offer->url = $_POST['offer_url'][$i]; $offer->payout = $_POST['offer_payout'][$i]; if (!$offer->save()) { echo json_encode(array('message' => 'Could not save offers')); DB::rollback(); BTApp::end(); } $campoffer = CampaignOfferModel::model(); $campoffer->campaign_id = $campaign->id(); $campoffer->position = 0; $campoffer->weight = $_POST['offer_weight'][$i]; $campoffer->offer_id = $offer->id(); if (!$campoffer->save()) { echo json_encode(array('message' => 'Could not save offers')); DB::rollback(); BTApp::end(); } } else { //edit $campoffer = CampaignOfferModel::model()->getRowFRomPk($id); $campoffer->weight = $_POST['offer_weight'][$i]; if (!$campoffer->save()) { echo json_encode(array('message' => 'Could not save offers')); DB::rollback(); BTApp::end(); } $offer = $campoffer->offer; $offer->name = $_POST['offer_name'][$i]; $offer->aff_network_id = $_POST['offer_aff_network_id'][$i]; $offer->url = $_POST['offer_url'][$i]; $offer->payout = $_POST['offer_payout'][$i]; if (!$offer->save()) { echo json_encode(array('message' => 'Could not save offers')); DB::rollback(); BTApp::end(); } } } break; } foreach ($_POST['opt'] as $name => $val) { $opt = $campaign->options[$name]; $opt->value = $val; if (!$opt->save()) { DB::rollback(); echo json_encode(array('message' => 'Could not save options')); BTApp::end(); } } foreach ($campaign->options as $option) { if (strpos($option->name, 'pass_') === 0) { $option->delete(); } } for ($j = 0, $cnt = count($_POST['variable_name']); $j < $cnt; $j++) { $name = $_POST['variable_name'][$j]; $name = 'pass_' . $name; if ($campaign->type == 1) { $pass_lp = $_POST['variable_lp'][$j]; $pass_offer = $_POST['variable_offer'][$j]; $val = json_encode(array('lp' => $pass_lp, 'offer' => $pass_offer)); } else { $val = json_encode(array('offer' => '1')); } if (!$campaign->addOption($name, $val)) { DB::rollback(); echo json_encode(array('message' => 'Could not save Variables Passthroughs')); BTApp::end(); } } DB::commit(); echo json_encode(array('message' => '2', 'campaign_id' => $campaign->id())); }
</table> </div> </div> </div> <div class="grid_12"> <div class="box"> <div class="header"> <h2>3rd Party Pixel</h2> </div> <div class="content"> <div class="row"> <label>Pixel Type</label> <div> <?php BTForm::createSelect('opt[pixel_type]', CampaignModel::getPixelTypes(), $campaign->option('pixel_type')->value, '', '', 'label', 'value'); ?> </div> </div> <div class="row"> <label>Code</label> <div> <textarea name="opt[pixel_code]"><?php echo $campaign->option('pixel_code')->value; ?> </textarea> </div> </div> </div> </div> </div>
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(); }