This method is able to return the higher rate product list, everything will depends of $point parameter.
public static getTopRated ( [integer] $point = '5', [integer] $limit = 5, [boolean] $tags = false ) : [array | ||
$point | [integer] | |
$limit | [integer] | |
$tags | [boolean] | |
return | [array |
public function index() { $panel = ['center' => ['width' => 10], 'left' => ['width' => 2, 'class' => 'home-no-padding']]; $helperProd = new productsHelper(); $carousel = $helperProd->suggest('carousel'); $viewed = $helperProd->suggest('viewed', 8); $categories = $helperProd->suggest('categories'); $purchased = $helperProd->suggest('purchased'); $suggestion = ['carousel' => $carousel, 'viewed' => $viewed, 'categories' => $categories, 'purchased' => $purchased]; $helperProd->resetHaystack(); //reseting session id validator $events = []; if (config('app.offering_free_products')) { $events = FreeProduct::getNextEvents(['id', 'description', 'min_participants', 'max_participants', 'participation_cost', 'start_date', 'end_date'], 4, date('Y-m-d')); } $tagsCloud = ProductsController::getTopRated(0, 20, true); $allWishes = ''; $user = \Auth::user(); if ($user) { $allWishes = Order::ofType('wishlist')->where('user_id', $user->id)->where('description', '<>', '')->get(); } $i = 0; //carousel implementation $jumbotronClasses = ['jumbotron-box-left', 'jumbotron-box-right']; //carousel implementation $banner = ['/img/banner/01.png', '/img/banner/02.png', '/img/banner/03.png', '/img/banner/04.png']; // $this->createTags(); return view('home', compact('panel', 'suggestion', 'allWishes', 'events', 'tagsCloud', 'jumbotronClasses', 'i', 'banner')); }
/** * manage the home section suggestions * @param [string] $type, which is the reference point to build the suggest * @return [json] $suggest, that contain the products list to be displayed on home page */ public static function suggest($type, $limit = 4) { $data = []; switch ($type) { case 'purchased': $data['preferences_key'] = 'product_purchased'; $data['limit'] = $limit; break; case 'categories': $data['preferences_key'] = 'product_categories'; $data['limit'] = $limit; $usr_prefe = UserController::getPreferences('', $data['preferences_key']); //look up for user preferences if (count($usr_prefe['tags']) == 0) { $data['category'] = ProductsController::getRandCategoryId(); //if there is not info, we get a rand category id } else { $data['category'] = $usr_prefe['tags'][mt_rand(0, count($usr_prefe['tags']) - 1)]; //if so, we get a rand user preferences category } break; case 'viewed': $data['preferences_key'] = 'product_viewed'; $data['limit'] = $limit; break; case 'carousel': return ProductsController::getTopRated(0, $limit, false); break; default: $data['limit'] = $limit; $data['preferences_key'] = ''; break; } $suggest = ProductsController::getSuggestions($data); //suggestion array return $suggest; }