function xos_get_categories($categories_array = '', $parent_id = '', $indent = '', $include_empty_categories = true) { if (!is_array($categories_array)) { $categories_array = array(); } if ($parent_id == '') { $parent_id = '0'; } $categories_query = xos_db_query("select c.categories_or_pages_id, cpd.categories_or_pages_name from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where parent_id = '" . (int) $parent_id . "' and c.categories_or_pages_id = cpd.categories_or_pages_id and c.categories_or_pages_status = '1' and cpd.language_id = '" . (int) $_SESSION['languages_id'] . "' order by sort_order, cpd.categories_or_pages_name"); if ($include_empty_categories) { while ($categories = xos_db_fetch_array($categories_query)) { $categories_array[] = array('id' => $categories['categories_or_pages_id'], 'text' => $indent . $categories['categories_or_pages_name']); if ($categories['categories_or_pages_id'] != $parent_id) { $categories_array = xos_get_categories($categories_array, $categories['categories_or_pages_id'], $indent . ' '); } } } else { while ($categories = xos_db_fetch_array($categories_query)) { if (xos_count_products_in_category($categories['categories_or_pages_id']) > 0) { $categories_array[] = array('id' => $categories['categories_or_pages_id'], 'text' => $indent . $categories['categories_or_pages_name']); if ($categories['categories_or_pages_id'] != $parent_id) { $categories_array = xos_get_categories($categories_array, $categories['categories_or_pages_id'], $indent . ' ', false); } } } } return $categories_array; }
function xos_show_category_new($tree, $counter, $include_tabs = true, $categories_array = array(), $prev_level = 0, $level_change_last = 0) { global $category_selected, $category_name, $category_href_link, $tabs_array, $cPath_array; if ($tree[$counter]['level'] <= '4') { if ($tree[$counter]['level'] == '0') { $class_name = xos_has_category_subcategories($counter) ? $cPath_array && in_array($counter, $cPath_array) ? 'main-cat-selected' : 'main-cat' : ($cPath_array && in_array($counter, $cPath_array) ? 'main-cat-last-selected' : 'main-cat-last'); if ($cPath_array && in_array($counter, $cPath_array)) { $category_name = $tree[$counter]['name']; $category_href_link = xos_href_link(FILENAME_DEFAULT, 'c=' . $tree[$counter]['path'], !empty($tree[$counter]['link_request_type']) ? $tree[$counter]['link_request_type'] : 'NONSSL'); $tab_class_name = 'tab-selected'; if (xos_has_category_subcategories($counter)) { $category_selected = true; } } else { $tab_class_name = 'tab'; } } else { if ($tree[$counter]['level'] == '1') { $class_name = xos_has_category_subcategories($counter) ? $cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level1-selected' : 'sub-cat-level1' : ($cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level1-last-selected' : 'sub-cat-level1-last'); } else { if ($tree[$counter]['level'] == '2') { $class_name = xos_has_category_subcategories($counter) ? $cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level2-selected' : 'sub-cat-level2' : ($cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level2-last-selected' : 'sub-cat-level2-last'); } else { if ($tree[$counter]['level'] == '3') { $class_name = xos_has_category_subcategories($counter) ? $cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level3-selected' : 'sub-cat-level3' : ($cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level3-last-selected' : 'sub-cat-level3-last'); } else { if ($tree[$counter]['level'] == '4') { $class_name = xos_has_category_subcategories($counter) ? $cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level4-selected' : 'sub-cat-level4' : ($cPath_array && in_array($counter, $cPath_array) ? 'sub-cat-level4-last-selected' : 'sub-cat-level4-last'); } } } } } $cPath_new = 'c=' . $tree[$counter]['path']; if (SHOW_EMPTY_CATEGORIES == 'false' || SHOW_COUNTS == 'true') { $products_in_category = xos_count_products_in_category($counter); if (SHOW_COUNTS == 'true') { $count_products = $products_in_category; } } if (SHOW_EMPTY_CATEGORIES == 'true' || $products_in_category > 0 || $tree[$counter]['is_page'] != 'false') { if (isset($categories_array[sizeof($categories_array) - 1]['level_will_change'])) { $level_change_last -= $categories_array[sizeof($categories_array) - 1]['level_will_change'] = $prev_level < $tree[$counter]['level'] ? $tree[$counter]['level'] - $prev_level : ($prev_level > $tree[$counter]['level'] ? $tree[$counter]['level'] - $prev_level : ''); } $categories_array[] = array('class_name' => $class_name, 'level' => $tree[$counter]['level'], 'level_will_change' => $level_change_last, 'href_link' => xos_href_link(FILENAME_DEFAULT, $cPath_new, !empty($tree[$counter]['link_request_type']) ? $tree[$counter]['link_request_type'] : 'NONSSL'), 'count_products' => $count_products > 0 ? $count_products : false, 'name' => $tree[$counter]['name']); if ($tree[$counter]['level'] == '0' && $include_tabs) { $tabs_array[] = array('class_name' => $tab_class_name, 'href_link' => xos_href_link(FILENAME_DEFAULT, $cPath_new, !empty($tree[$counter]['link_request_type']) ? $tree[$counter]['link_request_type'] : 'NONSSL'), 'count_products' => $count_products > 0 ? $count_products : false, 'name' => $tree[$counter]['name']); } } if ($tree[$counter]['next_id']) { if (SHOW_EMPTY_CATEGORIES == 'true' || $products_in_category > 0 || $tree[$counter]['is_page'] != 'false') { $prev_level = $tree[$counter]['level']; } $categories_array = xos_show_category_new($tree, $tree[$counter]['next_id'], $include_tabs, $categories_array, $prev_level, $level_change_last); } } else { if ($tree[$counter]['next_id']) { if (SHOW_EMPTY_CATEGORIES == 'true') { $prev_level = 4; } $categories_array = xos_show_category_new($tree, $tree[$counter]['next_id'], $include_tabs, $categories_array, $prev_level, $level_change_last); } } return $categories_array; }
$categories_query = xos_db_query("select c.categories_or_pages_id, cpd.categories_or_pages_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where c.categories_or_pages_status = '1' and c.parent_id = '" . (int) $category_links[$i] . "' and c.categories_or_pages_id = cpd.categories_or_pages_id and cpd.language_id = '" . (int) $_SESSION['languages_id'] . "' order by sort_order, cpd.categories_or_pages_name"); break; // we've found the deepest category the customer is in } } } else { $categories_query = xos_db_query("select c.categories_or_pages_id, cpd.categories_or_pages_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES_OR_PAGES . " c, " . TABLE_CATEGORIES_OR_PAGES_DATA . " cpd where c.categories_or_pages_status = '1' and c.parent_id = '" . (int) $current_category_id . "' and c.categories_or_pages_id = cpd.categories_or_pages_id and cpd.language_id = '" . (int) $_SESSION['languages_id'] . "' order by sort_order, cpd.categories_or_pages_name"); } $number_of_categories = xos_db_num_rows($categories_query); $rows = 0; $categories_array = array(); while ($categories = xos_db_fetch_array($categories_query)) { if (SHOW_EMPTY_CATEGORIES == 'true') { $products_in_categories = 1; } else { $products_in_categories = xos_count_products_in_category($categories['categories_or_pages_id']); } if ($products_in_categories > 0) { $rows++; $cPath_new = xos_get_path($categories['categories_or_pages_id']); $width = (int) (100 / MAX_DISPLAY_CATEGORIES_PER_ROW - 1) . '%'; if ($rows / MAX_DISPLAY_CATEGORIES_PER_ROW == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) && $rows != $number_of_categories) { $more_rows = true; } else { $more_rows = false; } $categories_array[] = array('link_to_product_listing' => xos_href_link(FILENAME_DEFAULT, $cPath_new), 'image' => xos_image(DIR_WS_IMAGES . 'categories/medium/' . rawurlencode($categories['categories_image']), $categories['categories_or_pages_name']), 'name' => $categories['categories_or_pages_name'], 'td_width' => $width, 'more_rows' => $more_rows); } } $smarty->assign(array('heading_title' => $category['categories_or_pages_heading_title'], 'category_name' => $category['categories_or_pages_name'], 'category_description' => $category['categories_or_pages_content'], 'heading_image' => $page_info == 'false' ? xos_image(DIR_WS_IMAGES . 'categories/small/' . rawurlencode($category['categories_image']), $category['categories_or_pages_name']) : '', 'display' => 'categories', 'categories' => $categories_array)); // needed for the new products module shown below