Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
             $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