/** * @before _secure */ public function campaign($id) { $ad = \Ad::first(['_id' => $id, 'org_id' => $this->org->_id]); if (!$ad) { $this->_404(); } $this->seo(["title" => $ad->title]); $view = $this->getActionView(); if (RM::post("action")) { // action value already checked in _postback func $this->_postback('add', ['ad' => $ad]); } if (RM::type() === 'DELETE') { $this->_postback('delete'); } $start = RM::get("start", date('Y-m-d', strtotime("-7 day"))); $end = RM::get("end", date('Y-m-d')); $limit = RM::get("limit", 10); $page = RM::get("page", 1); $query = ['adid' => Db::convertType($id), 'created' => Db::dateQuery($start, $end)]; $clicks = \Click::all($query, [], 'created', 'desc', $limit, $page); $count = \Click::count($query); $cf = Utils::getConfig("cf", "cloudflare"); $view->set("domain", $cf->api->domain)->set("clicks", $clicks)->set("count", $count)->set('advertiser', $this->user); $comms = Commission::all(["ad_id = ?" => $id], ['model', 'coverage', 'revenue', 'description']); $models = ArrayMethods::arrayKeys($comms, 'model'); $advertiser = User::first(["id = ?" => $ad->user_id], ['name']); $categories = \Category::all(["org_id = ?" => $this->org->_id], ['name', '_id']); $this->_postback('show', ['ad' => $ad]); $view->set("ad", $ad)->set("comms", $comms)->set("categories", $categories)->set("advertiser", $advertiser)->set('models', $models)->set("start", $start)->set("end", $end); }
/** * @before _secure */ public function details($id) { $ad = \Ad::first(['_id' => $id, 'org_id' => $this->org->_id]); if (!$ad) { $this->_404(); } $this->seo(array("title" => $ad->title)); $view = $this->getActionView(); $start = RM::get("start", date('Y-m-d', strtotime("-1 day"))); $end = RM::get("end", date('Y-m-d')); if (RM::type() === 'DELETE') { $this->_commissionDel($ad, $view); } switch (RM::post("action")) { case 'caccess': $meta = $ad->meta; $meta["access"] = RM::post("access"); $ad->meta = $meta; $ad->save(); break; } switch (RM::get("action")) { case 'updateAccess': $access = AdAccess::first(["id = ?" => RM::get("access_id")]); if ($access) { $access->live = RM::get("live", 0); $access->save(); $this->redirect("/campaign/details/" . $ad->id . ".html#permission"); $session->set('$flashMessage', 'Access Updated'); } break; } $comms = Commission::all(["ad_id = ?" => $id]); $models = ArrayMethods::arrayKeys($comms, 'model'); $advertiser = User::first(["id = ?" => $ad->user_id], ['name']); $categories = \Category::all(["org_id = ?" => $this->org->_id], ['name', '_id']); $publishers = \User::all(['type' => 'publisher', 'org_id' => $this->org->_id, "live = ?" => true], ["id", "name"]); $adaccess = \AdAccess::all(['org_id' => $this->org->_id, "ad_id = ?" => $ad->id]); $view->set("ad", $ad)->set("comms", $comms)->set("categories", $categories)->set("advertiser", $advertiser)->set('publishers', \User::objectArr($publishers, ['_id', 'name']))->set('models', $models)->set('adaccess', $adaccess)->set("start", $start)->set("end", $end); }
public function links() { $this->seo(array("title" => "Tracking Links")); $view = $this->getActionView(); $links = Link::all(['user_id' => $this->user->_id], ['ad_id', 'domain', '_id']); $in = ArrayMethods::arrayKeys($links, 'ad_id'); $ads = Ad::all(['_id' => ['$in' => $in]], ['title', '_id']); $result = []; foreach ($links as $l) { $adid = $l->ad_id; $result[] = ArrayMethods::toObject(['title' => $ads[$adid]->title, 'url' => $l->getUrl()]); } $view->set('links', $result); if ($this->defaultExtension === "csv") { $view->erase('start')->erase('end'); $this->_org = $this->_user = null; } }