protected function _create() { $this->seo(['title' => 'Campaign Create', 'description' => 'Create a new campaign']); $session = Registry::get('session'); $view = $this->getActionView(); $advertisers = \User::isEmpty(["org_id = ?" => $this->org->_id, 'type = ?' => 'advertiser', 'live' => true], ['_id', 'name', 'meta'], ['msg' => 'Please Add an Advertiser!!', 'controller' => $this, 'redirect' => '/advertiser/add.html']); $view->set('advertisers', User::objectArr($advertisers, ['_id', 'name', 'meta'])); $categories = \Category::isEmpty(['org_id' => $this->org->_id], ['name', '_id'], ['msg' => 'Please Set Categories!!', 'controller' => $this, 'redirect' => '/admin/settings.html']); $view->set('categories', $categories); $link = RM::get("link"); if (!$link) { $session->set('$flashMessage', 'Please give any link!!'); $this->redirect('/campaign/manage.html'); } if ($session->get('$lastFetchedLink') !== $link) { $session->set('$lastFetchedLink', $link); $meta = Shared\Utils::fetchCampaign($link); $session->set('Campaign\\Create:$meta', $meta); } else { $meta = $session->get('Campaign\\Create:$meta'); } $view->set("meta", $meta)->set("type", RM::get("type"))->set("errors", []); }
/** * @before _secure */ public function notification() { $this->seo(array("title" => "Notification")); $view = $this->getActionView(); $fields = ['_id', 'name']; $arr = User::all(['org_id' => $this->org->_id, 'type' => 'publisher'], $fields); $publishers = User::objectArr($arr, $fields); $arr = User::all(['org_id' => $this->org->_id, 'type' => 'advertiser'], $fields); $advertisers = User::objectArr($arr, $fields); $view->set('publishers', $publishers)->set('advertisers', $advertisers); switch (RM::post("action")) { case 'save': $meta = RM::post("meta", "all"); $message = RM::post("message"); $success = "Saved Successfully"; if ($meta !== "all" && (!in_array($meta, array_keys($publishers)) && !in_array($meta, array_keys($advertisers)))) { $view->set('message', "Invalid Request!!"); break; } else { if ($meta !== "all") { // send mail to the user $usr = User::first(['_id' => $meta], ['name', 'email']); \Shared\Services\Smtp::sendMail($this->org, ['template' => 'notification', 'user' => $usr, 'notification' => $message, 'to' => [$usr->email], 'subject' => "Notification from " . $this->org->name]); $success .= " And Mail sent"; } } $n = new Notification(["org_id" => $this->org->id, "message" => $message, "target" => RM::post("target"), "meta" => $meta]); $n->save(); $view->set("message", $success); break; } if (RM::type() === 'DELETE') { $id = RM::get("id"); $n = Notification::first(["org_id = ?" => $this->org->id, "id = ?" => $id]); if ($n) { $n->delete(); $view->set("message", "Deleted Successfully"); } else { $view->set("message", "Notification does not exist"); } } $notifications = Notification::all(["org_id = ?" => $this->org->id], [], "created", "desc"); $view->set("notifications", $notifications); }
/** * @before _secure * @after _cleanUp */ public function earning($id = null) { $view = $this->getActionView(); if (!$id) { return $this->failure('20'); } $org = $this->_org; $perfFields = ['clicks', 'revenue', 'impressions', 'conversions', 'created']; $publisher = User::first(['_id' => $id, 'org_id' => $org->_id]); if (!$publisher) { return $this->failure('30'); } $publisher = User::objectArr($publisher, Usr::fields()); $publisher = array_shift($publisher); $start = RequestMethods::get("start", date('Y-m-d', strtotime("-5 day"))); $end = RequestMethods::get("end", date('Y-m-d', strtotime('-1 day'))); $pubPerf = Perf::perf($org, 'publisher', ['meta' => true, 'publishers' => [$publisher->_id], 'start' => $start, 'end' => $end]); $perf = []; Perf::payout($pubPerf, $perf); $data = ['user' => $publisher, 'stats' => $perf, 'total' => Perf::calTotal($perf)]; $view->set('data', $data); }