needlogin=true; $me = new User(); $me->loadMe(); $this->me = $me; $this->layout()->set("me",$me); if(!$me->is(["Admin", "netowner", "salespartner"])) { $this->redirect("Dashboard"); } } protected function indexAction() { $this->layout()->setTemplate("Preordernotification/Index"); $rfilter = $this->request->filter; iF(!is_array($rfilter)) { $rfilter = []; } $this->layout->set("filter", $rfilter); $where = ""; $filter = $this->getPreparedFilter($rfilter); // pagination defaults $pagination = []; $pagination['start'] = 0; $pagination['count'] = 25; $pagination['maxItems'] = 0; if(is_numeric($this->request->s)) { $pagination['start'] = intval($this->request->s); } $preorder_filter = $filter; $my_campaigns = []; $my_campaign_ids = []; if($this->me->is("Admin")) { if($filter['preordercampaign_id']) { $this->layout()->set("campaign", new Preordercampaign($filter['preordercampaign_id'])); } else { $my_campaigns = PreordercampaignModel::getAll(); } $this->layout()->set("my_campaigns", PreordercampaignModel::getAll()); } else { $my_networks = $this->me->myNetworks(["netowner", "salespartner"]); //var_dump($my_networks);exit; foreach($my_networks as $network) { foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) { $my_campaigns[] = $campaign; if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id; } } //var_dump($my_network_ids,$my_campaign_ids);exit; $this->layout()->set("my_campaigns", $my_campaigns); if($filter['preordercampaign_id'] && in_array($filter['preordercampaign_id'], $my_campaign_ids)) { $campaign_id = $filter['preordercampaign_id']; if(is_numeric($campaign_id) && $campaign_id > 0) { $campaign = new Preordercampaign($campaign_id); $this->layout()->set("campaign", $campaign); } } else { $filter['preordercampaign_id'] = $my_campaign_ids; } } $pagination['maxItems'] = PreordernotificationModel::count($filter); $notifications = PreordernotificationModel::search($filter, $pagination); $this->layout()->set("pagination", $pagination); $this->layout()->set("preorders", $notifications); } private function getPreparedFilter($filter) { $new_filter = []; if(is_array($filter) && count($filter)) { foreach($filter as $name => $value) { $new_filter[$name] = $value; } } return $new_filter; } protected function addAction() { $this->layout()->setTemplate("Preordernotification/Form"); if(!$this->request->preordercampaign_id) { $this->layout()->setFlash("Keine Kampagne ausgewählt!", "warn"); } $campaign_id = $this->request->preordercampaign_id; $campaign = new Preordercampaign($campaign_id); $this->layout()->set("campaign", $campaign); $partners = AddressModel::search(['addresstype' => ['netowner','salespartner']]); $this->layout()->set("partners", $partners); } protected function editAction() { $id = $this->request->id; if(!is_numeric($id) || $id < 1) { $this->layout()->setFlash("Vorbestellung nicht gefunden", "error"); $this->redirect("Preordercampaign"); } $preorder = new Preorder($id); if(!$preorder->id) { $this->layout()->setFlash("Vorbestellung nicht gefunden", "error"); $this->redirect("Preordercampaign"); } $this->request->set("preordercampaign_id", $preorder->preordercampaign_id); // needed in addAction() $this->layout()->set("preorder", $preorder); //var_dump($preorder->building->street);exit; return $this->addAction(); } }