needlogin=true; $me = new User(); $me->loadMe(); $this->me = $me; $this->layout()->set("me",$me); if(!$me->is(["Preorderlogistics"])) { $this->redirect("Dashboard"); } } protected function indexAction() { $this->layout()->setTemplate("Preorderlogistics/Index"); $this->layout->set("filter", $this->request->filter); $filter = []; if($this->request->filter) { $filter = $this->getPreparedFilter($this->request->filter); } else { $filter = $this->getPreparedFilter([]); } // pagination defaults $pagination = []; $pagination['start'] = 0; $pagination['count'] = 25; $pagination['maxItems'] = 0; if(is_numeric($this->request->s)) { $pagination['start'] = intval($this->request->s); } $my_networks = []; $my_network_ids = []; $my_campaign_ids = []; $user_network_ids = $this->me->getFlag("preorder_networks")->value(); if($user_network_ids) { $user_network_ids = json_decode($user_network_ids); } if(is_array($user_network_ids) && count($user_network_ids)) { foreach($user_network_ids as $mnid) { $my_networks[] = new Network($mnid); } } foreach($my_networks as $network) { $my_network_ids[] = $network->id; } 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; } $filter['network_id'] = $my_network_ids; $filter[">status_code"] = 139; $filter["layout()->set("pagination", $pagination); $this->layout()->set("preorders", $preorders); } private function getPreparedFilter($filter) { $new_filter = []; $new_filter['add-where'] = ""; if(array_key_exists("name", $filter) && $filter['name']) { $new_filter['name%'] = "%".$filter['name']; unset($filter['name']); } if(array_key_exists("area", $filter) && $filter['area']) { $new_filter['area%'] = "%".$filter['area']; unset($filter['area']); } if(array_key_exists("search",$filter) && trim($filter['search'])) { $search = trim($filter['search']); $new_filter['add-where'] .= " AND ("; $new_filter['add-where'] .= " adb_hausnummer.gemeinde like '%$search%' OR adb_hausnummer.plz like '%$search%' OR adb_hausnummer.strasse like '%$search%'"; $new_filter['add-where'] .= " OR company like '%$search%' OR firstname like '%$search%' OR lastname like '%$search%' OR concat(firstname, ' ', lastname) like '%$search%' OR concat(lastname, ' ', firstname) like '%$search%' OR street like '%$search%' OR zip like '%$search%' OR city like '%$search%' OR email like '%$search' OR phone like '%$search'"; $new_filter['add-where'] .= " OR ucode like '%$search' OR oaid like '%$search'"; } if(array_key_exists("address", $filter) && $filter["address"]) { $address = $this->db()->escape($filter['address']); $new_filter['add-where'] .= " AND (adb_hausnummer.gemeinde like '%$address%' OR adb_hausnummer.plz like '%$address%' OR adb_hausnummer.strasse like '%$address%' OR adb_hausnummer.hausnummer like '%$address%' OR CONCAT (adb_hausnummer.strasse, ' ', adb_hausnummer.hausnummer) like '%$address%' OR CONCAT (adb_hausnummer.strasse, ' ', adb_hausnummer.hausnummer) like '%".str_replace(" ", "%", $address)."%')"; } if(array_key_exists("hausnummer", $filter) && $filter["hausnummer"]) { $hausnummer = $this->db()->escape($filter['hausnummer']); $new_filter['hausnummer'] = $hausnummer; } if(array_key_exists("kunde", $filter) && $filter["kunde"]) { $kunde = $this->db()->escape($filter['kunde']); $new_filter['add-where'] .= " AND (company like '%$kunde%' OR firstname like '%$kunde%' OR lastname like '%$kunde%' OR concat(firstname, ' ', lastname) like '%$kunde%' OR concat(lastname, ' ', firstname) like '%$kunde%' OR street like '%$kunde%' OR zip like '%$kunde%' OR city like '%$kunde%' OR phone like '%$kunde%' OR email like '%$kunde%')"; } if(array_key_exists("ucode", $filter) && $filter['ucode']) { $new_filter['ucode'] = "%".$filter['ucode']."%"; unset($filter['ucode']); } if(array_key_exists("oaid", $filter) && $filter['oaid']) { $new_filter['oaid'] = "%".$filter['oaid']."%"; unset($filter['oaid']); } $new_filter['deleted'] = 0; foreach($filter as $name => $value) { $new_filter[$name] = $value; } return $new_filter; } }