Example #1
0
 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", []);
 }
Example #2
0
 /**
  * @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);
 }
Example #3
0
 /**
  * @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);
 }