private function getCategories() { if ($categories = Model_Main::getCategory(FALSE, ['title'], TRUE)) { $categories_ids = []; $main_categories = []; $second_level_categories = []; $third_level_categories = []; if (!empty($categories) && is_array($categories)) { //Loop and get ID's foreach ($categories as $key => $category) { $categories_ids[] = $category['id']; } //Get urls if ($urls = Model_Client::getURL($categories_ids, 'category')) { if (!empty($urls) && is_array($urls)) { foreach ($urls as $url) { $categories[$url['object']]['slug'] = $url['slug']; } } } foreach ($categories as $key => $category) { if ($category['level'] == 0) { $main_categories[$category['id']] = ['id' => $category['id'], 'slug' => !empty($category['slug']) ? $category['slug'] : '', 'title' => $category['title']]; } elseif ($category['level'] == 1) { $second_level_categories[$category['parent_id']][] = ['id' => $category['id'], 'slug' => !empty($category['slug']) ? $category['slug'] : '', 'title' => $category['title'], 'parent' => $category['parent_id']]; } elseif ($category['level'] == 2) { $third_level_categories[$category['parent_id']][] = ['id' => $category['id'], 'slug' => !empty($category['slug']) ? $category['slug'] : '', 'title' => $category['title'], 'parent' => $category['parent_id']]; } } } $this->categories['all'] = $categories; View::share('main_categories', $main_categories); View::share('second_level_categories', $second_level_categories); View::share('third_level_categories', $third_level_categories); } else { return FALSE; } }
public static function sitemap() { $customCSS = []; $customJS = []; $response = ['page_title' => trans('client.sitemap'), 'blade_custom_css' => $customCSS, 'blade_custom_js' => $customJS]; if ($response['categories'] = Model_Main::getCategory(FALSE, ['title'], FALSE)) { $categories_ids = []; $main_categories = []; $second_level_categories = []; // $third_level_categories = []; if (!empty($response['categories']) && is_array($response['categories'])) { //Loop and get ID's foreach ($response['categories'] as $key => $category) { $categories_ids[] = $category['id']; } //Get urls if ($urls = Model_Client::getURL($categories_ids, 'category')) { if (!empty($urls) && is_array($urls)) { foreach ($urls as $url) { $response['categories'][$url['object']]['slug'] = $url['slug']; } } } foreach ($response['categories'] as $key => $category) { if ($category['level'] == 0) { $main_categories[$category['id']] = ['id' => $category['id'], 'slug' => !empty($category['slug']) ? $category['slug'] : '', 'title' => $category['title']]; } elseif ($category['level'] == 1) { $second_level_categories[$category['parent_id']][] = ['id' => $category['id'], 'slug' => !empty($category['slug']) ? $category['slug'] : '', 'title' => $category['title'], 'parent' => $category['parent_id']]; } // elseif ($category['level'] == 2) // { // $third_level_categories[$category['parent_id']][] = [ // 'id' => $category['id'], // 'slug' => ! empty($category['slug']) ? $category['slug'] : '', // 'title' => $category['title'], // 'parent' => $category['parent_id'], // ]; // } } } $response['map_cat_lvl_1'] = $main_categories; $response['map_cat_lvl_2'] = $second_level_categories; // $response['map_cat_lvl_3'] = $third_level_categories; $response['map_pages'] = Model_Main::getSitemapPages(); } return Theme::view('homepage.sitemap', $response); }
private function loadProduct($id) { $response = []; $product = Model_Main::getProducts($id); //Breadcrumbs $response['all_categories'] = $this->categories['all']; if (!empty($product[$id]['main_category']) && $this->categories['all'][$product[$id]['main_category']]) { $response['breadcrumbs'] = self::generateCategoryBreadcrumbs($this->categories['all'][$product[$id]['main_category']]); } //Prepare product for response if (!empty($product[$id])) { $response['product'] = $product[$id]; if (!empty($response['product']['page_title'])) { View::share('page_title', $response['product']['page_title']); } else { if (!empty($response['product']['title'])) { View::share('page_title', $response['product']['title']); } } if (!empty($response['product']['meta_description'])) { View::share('page_meta_description', $response['product']['meta_description']); } if (!empty($response['product']['meta_keywords'])) { View::share('page_meta_keywords', $response['product']['meta_keywords']); } if (!empty($response['product']['discount_price'])) { //Calculate is discount active $now = time(); if ($response['product']['discount_start'] == '0000.00.00 00:00:00' || strtotime($response['product']['discount_start']) <= $now) { $allow_start = TRUE; } else { $allow_start = FALSE; } if ($response['product']['discount_end'] == '0000.00.00 00:00:00' || strtotime($response['product']['discount_end']) <= $now) { $allow_end = TRUE; } else { $allow_end = FALSE; } if ($allow_start === TRUE && $allow_end === TRUE) { $response['product']['active_discount'] = TRUE; } } if (!empty($response['product']['sizes']) && is_array($response['product']['sizes'] = json_decode($response['product']['sizes'], TRUE))) { foreach ($response['product']['sizes'] as $key => $size) { if (empty($size['name']) || empty($size['quantity'])) { if (isset($response['product']['sizes'][$key])) { unset($response['product']['sizes'][$key]); } } } } } //Product discount percentage if (!empty($response['product']['active_discount'])) { $response['product']['discount'] = intval((floatval($response['product']['price']) - floatval($response['product']['discount_price'])) / floatval($response['product']['price']) * 100); } //Images if (!empty($response['product']['images'])) { $response['product']['images'] = json_decode($response['product']['images'], TRUE); if (is_array($response['product']['images'])) { $response['product_thumbs_path'] = Config::get('system_settings.product_public_path') . $id . '/' . Config::get('images.sm_icon_size') . '/'; $response['images_path'] = Config::get('system_settings.product_public_path') . $id . '/' . Config::get('images.full_size') . '/'; $response['md_path'] = Config::get('system_settings.product_public_path') . $id . '/' . Config::get('images.md_icon_size') . '/'; uasort($response['product']['images'], function ($a, $b) { if ($a == $b) { return 0; } return $a < $b ? -1 : 1; }); } } //Tags $response['product']['tags'] = Model_Main::getTags($id); //Manufacturer $response['product']['manufacturer'] = Model_Main::getManufacturer($id); //Material $response['product']['material'] = Model_Main::getMaterial($id); if (!empty($response['product']['material'][0])) { $response['product']['material'] = $response['product']['material'][0]; } //Color $response['product']['related_colors'] = Model_Main::getColor($id); if (!empty($response['product']['related_colors'])) { $response['product']['related_colors'] = implode(', ', $response['product']['related_colors']); } //Related products if (!empty($response['product']['related_products']) && is_array(json_decode($response['product']['related_products'], TRUE))) { $response['carousel']['products'] = json_decode($response['product']['related_products'], TRUE); } else { if (!empty($response['product']['main_category'])) { $response['carousel']['products'] = Model_Main::getSimilarProducts($response['product']['main_category']); } } if (!empty($response['carousel']['products'])) { $response['products'] = $response['carousel']['products']; } //Get upcoming product $response['upcoming'] = Model_Client::getUpcomingProduct(); if (!empty($response['upcoming']['product_id'])) { $response['products'][] = $response['upcoming']['product_id']; if (!empty($response['upcoming']['date'])) { $response['upcoming']['date'] = date('Y/m/d', strtotime($response['upcoming']['date'])); } } $recent = Model_Main::getNewestProducts(3, $id, TRUE); if (!empty($recent)) { $response['recent'] = $recent; array_merge($response['products'], $recent); } $response['icon_size'] = Config::get('images.sm_icon_size'); $response['thumbs_path'] = Config::get('system_settings.product_public_path'); $response['carousel']['title'] = trans('client.similar_products'); // Get products data $response['products'] = Model_Main::getProducts($response['products'], ['title', 'images', 'sizes', 'description']); // Send products to response $response['products'] = self::prepareProductsForResponse($response['products']); //Check dimensions table if (!empty($response['product']['dimensions_table'])) { $response['product']['dimensions_table'] = trim($response['product']['dimensions_table']); } return $response; }
public function sitemapCategories() { $categories = Model_Main::getCategory(FALSE, ['title']); if (!empty($categories) && is_array($categories)) { //Loop and get ID's foreach ($categories as $key => $category) { $categories_ids[] = $category['id']; } //Get urls if ($urls = Model_Client::getURL($categories_ids, 'category')) { if (!empty($urls) && is_array($urls)) { foreach ($urls as $url) { $categories[$url['object']]['slug'] = $url['slug']; } } } foreach ($categories as $id => $data) { Sitemap::addTag(url('/' . $data['slug']), $data['updated_at']); } } // Return the sitemap to the client. return Sitemap::render(); }