Example #1
0
 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));
 }