public function findSelectedFilter($filters, $aggregations, $make_filter) { if (!empty($make_filter)) { $values = array(); $make_ranges = explode("-", $make_filter); foreach ($make_ranges as $make_range) { $makes = Make::where('id', '=', $make_range); if ($makes->count()) { $title = $makes->first()->make; array_push($values, array("title" => $title, "index" => 'make-remove-' . $make_range)); } } array_push($filters, array("name" => "Make", "values" => $values, "modal" => "make")); } return $filters; }
public function index() { $this->layout->body_class = 'srp'; $zip_code = Input::query('zip_code', ''); $distance = Input::query('distance', '50'); if (empty($zip_code)) { $this->findLocation(); $zip_code = Session::get('zip_code', ''); } Session::put('zip_code', $zip_code); Session::put('distance', $distance); $title = ''; $make_filter = Input::get('make', ''); $makes = explode("-", $make_filter); $model_filter = Input::get('model', ''); $models = explode("-", $model_filter); foreach ($makes as $make) { $entities = Make::where('id', '=', $make); if ($entities->count()) { $entity = $entities->first(); $title = $title . $entity->make . ' '; } } $models_available = false; foreach ($models as $model) { $entities = Model::where('id', '=', $model); if ($entities->count()) { $entity = $entities->first(); $title = $title . $entity->model . ' - '; $models_available = true; } } if ($models_available == true) { $title = substr($title, 0, -2); } $search_title = $title; $search_text = ''; if (sizeof($makes) == 1 && sizeof($models) <= 1) { $entities = Make::where('id', '=', $makes[0]); if ($entities->count()) { $entity = $entities->first(); $search_text = $entity->make; if (sizeof($models) == 1) { $entities = Model::where('id', '=', $models[0]); if ($entities->count()) { $entity = $entities->first(); $search_text = $search_text . ' ' . $entity->model; } } } } $search_location = ''; $location_info = 'change location'; if (!empty($zip_code)) { $locations = Location::where('zip_code', '=', $zip_code); if ($locations->count()) { $location = Location::where('zip_code', '=', $zip_code)->first(); $city = $location->city; $state = $location->state; if (!empty($city) && !empty($state)) { if ($distance == 0) { $search_location = 'Within ' . 'unlimited miles from ' . $city . ', ' . $state; $location_info = 'unlimited miles from ' . $city . ', ' . $state . ' (change)'; } else { $search_location = 'Within ' . $distance . ' miles from ' . $city . ', ' . $state; $location_info = $distance . ' miles from ' . $city . ', ' . $state . ' (change)'; } if (strlen($title) > 0) { $title = $title . ' near ' . $city . ', ' . $state; } } } } $results = $this->executeSearch(); $aggregations = $this->executeAggregations(); $selected_filters = $this->findSelectedFilters($aggregations); $remaining_filters = $this->findRemainingFilters(); $search_filter = ''; foreach ($selected_filters as $filter) { $search_filter = $search_filter . '<strong -class->' . $filter['name'] . ':' . '</strong>'; foreach ($filter['values'] as $value) { $search_filter = $search_filter . $value['title'] . ','; } $search_filter = substr($search_filter, 0, -1) . ' '; } $paid = $aggregations['paid']; $page = Input::get('page', '1'); $from = ($page - 1) * 10; $featured = -1; $standard = -1; if ($paid > 0 && $page == 1) { $featured = 0; } if ($from == $paid) { $standard = 0; } else { if ($paid - $from < 9) { $standard = $paid - $from; } } $new_status_id = ''; $used_status_id = ''; $statuses = Status::all(); foreach ($statuses as $status) { if ($status->status == 'Used') { $used_status_id = $status->id; } else { if ($status->status == 'New') { $new_status_id = $status->id; } } } $tab = array(); $tab['all_link'] = ''; $tab['new_link'] = $new_status_id; $tab['used_link'] = $used_status_id; $all_count = 0; $new_count = 0; $used_count = 0; $status_aggs = $aggregations['status']; if (array_key_exists($new_status_id, $status_aggs)) { $new_count = $status_aggs[$new_status_id]['count']; } if (array_key_exists($used_status_id, $status_aggs)) { $used_count = $status_aggs[$used_status_id]['count']; } $all_count = $new_count + $used_count; $tab['all_count'] = '(' . $all_count . ')'; $tab['new_count'] = '(' . $new_count . ')'; $tab['used_count'] = '(' . $used_count . ')'; $tab['all_class'] = 'inactive'; $tab['new_class'] = 'inactive'; $tab['used_class'] = 'inactive'; $selected_status = Input::get('status', ''); if ($selected_status == $new_status_id) { $tab['new_class'] = 'active'; } else { if ($selected_status == $used_status_id) { $tab['used_class'] = 'active'; } else { $tab['all_class'] = 'active'; } } $save_search_popup = 'saveSearchModalGuest'; $save_vehicle_popup = 'saveVehicleModalGuest'; if (Auth::check()) { $save_search_popup = 'saveSearchModalUser'; $save_vehicle_popup = 'saveVehicleModalUser'; } $data = array('zip_code' => $zip_code, 'distance' => $distance, 'search_text' => $search_text, 'title' => $title, 'location_info' => $location_info, 'total' => $results['total'], 'selected_filters' => $selected_filters, 'remaining_filters' => $remaining_filters, 'results' => $results['results'], 'aggregations' => $aggregations, 'standard' => $standard, 'featured' => $featured, 'tab' => $tab, 'save_search_popup' => $save_search_popup, 'save_vehicle_popup' => $save_vehicle_popup, 'search_title' => $search_title, 'search_location' => $search_location, 'search_filter' => $search_filter); $this->layout->contents = View::make('search/search', $data); }
public function adsParameter() { $make_input = Input::get('make', ''); $model_input = Input::get('model', ''); $body_input = Input::get('body', ''); $status_input = Input::get('status', ''); $statuses = ''; $makes = ''; $models = ''; $bodies = ''; $new_status_id = ''; $used_status_id = ''; $status_values = Status::all(); foreach ($status_values as $status) { if ($status->status == 'Used') { $used_status_id = $status->id; } else { if ($status->status == 'New') { $new_status_id = $status->id; } } } if ($status_input == $new_status_id) { $statuses = 'New-'; } else { if ($status_input == $used_status_id) { $statuses = 'Used-'; } } foreach (explode("-", $make_input) as $make) { $entities = Make::where('id', '=', $make); if ($entities->count()) { $entity = $entities->first(); $makes = $makes . $entity->make . '-'; } } foreach (explode("-", $model_input) as $model) { $entities = Model::where('id', '=', $model); if ($entities->count()) { $entity = $entities->first(); $models = $models . $entity->model . '-'; } } foreach (explode("-", $body_input) as $body) { $entities = Body::where('id', '=', $body); if ($entities->count()) { $entity = $entities->first(); $bodies = $bodies . $entity->body . '-'; } } $ads = ''; if (!empty($statuses)) { $ads = $ads . $statuses; } if (!empty($makes)) { $ads = $ads . $makes; } if (!empty($models)) { $ads = $ads . $models; } if (!empty($bodies)) { $ads = $ads . $bodies; } if (!empty($ads)) { $ads = substr($ads, 0, -1); } return Response::json(array('ads' => $ads)); }