$categories[$cur_category_id]["image_alt"] = $image_alt;
            $categories[$cur_category_id]["image_large"] = $db->f("image_large");
            $categories[$cur_category_id]["image_large_alt"] = get_translation($db->f("image_large_alt"));
            if ($not) {
                if ($allowed_categories_ids && in_array($cur_category_id, $allowed_categories_ids)) {
                    $categories[$cur_category_id]["allowed"] = false;
                } else {
                    $categories[$cur_category_id]["allowed"] = true;
                }
            } else {
                if (!$allowed_categories_ids || !in_array($cur_category_id, $allowed_categories_ids)) {
                    $categories[$cur_category_id]["allowed"] = false;
                } else {
                    $categories[$cur_category_id]["allowed"] = true;
                }
            }
            $categories[$parent_category_id]["subs"][] = $cur_category_id;
        }
        if (sizeof($categories) > 0 && isset($categories[0])) {
            $category_number = 0;
            $column_width = intval(100 / $columns);
            $t->set_var("column_width", $column_width . "%");
            set_categories(0, 0, $columns, 0, $categories_image);
            if ($category_number % $columns != 0) {
                $t->parse("categories_rows");
            }
            $block_parsed = true;
            $t->parse("block_body", false);
        }
    }
}
Example #2
0
function set_categories($parent_id, $level, $columns, $top_id, $image_type = 1)
{
    global $t, $categories, $category_number, $restrict_categories_images, $settings, $category_id;
    global $list_url, $list_page;
    $friendly_urls = get_setting_value($settings, "friendly_urls", 0);
    $friendly_extension = get_setting_value($settings, "friendly_extension", "");
    $subs = isset($categories[$parent_id]) && isset($categories[$parent_id]["subs"]) ? $categories[$parent_id]["subs"] : array();
    for ($i = 0, $ic = count($subs); $i < $ic; $i++) {
        $show_category_id = $subs[$i];
        $category_name = $categories[$show_category_id]["category_name"];
        $a_title = $categories[$show_category_id]["a_title"];
        $friendly_url = $categories[$show_category_id]["friendly_url"];
        $has_nested = isset($categories[$show_category_id]["subs"]) ? is_array($categories[$show_category_id]["subs"]) : false;
        $is_rss = isset($categories[$show_category_id]["is_rss"]) ? $categories[$show_category_id]["is_rss"] : false;
        $is_last = $i == $ic - 1;
        $is_first = $i == 0;
        $is_restricted = isset($categories[$show_category_id]["allowed"]) ? !$categories[$show_category_id]["allowed"] : false;
        if ($has_nested) {
            set_categories($show_category_id, $level + 1, $columns, $top_id, $image_type);
        }
        if ($friendly_urls && $friendly_url) {
            $list_url->remove_parameter("category_id");
            $t->set_var("list_url", htmlspecialchars($list_url->get_url($friendly_url . $friendly_extension)));
        } else {
            $list_url->add_parameter("category_id", CONSTANT, $show_category_id);
            $t->set_var("list_url", htmlspecialchars($list_url->get_url($list_page)));
        }
        if ($image_type == 2) {
            $category_image = $categories[$show_category_id]["image"];
            $image_alt = $categories[$show_category_id]["image_alt"];
        } else {
            if ($image_type == 3) {
                $category_image = $categories[$show_category_id]["image_large"];
                $image_alt = $categories[$show_category_id]["image_large_alt"];
            } else {
                $category_image = false;
            }
        }
        $short_description = $categories[$show_category_id]["short_description"];
        $t->set_var("category_id", $show_category_id);
        $t->set_var("category_name", htmlspecialchars($category_name));
        $t->set_var("a_title", htmlspecialchars($a_title));
        $t->set_var("level", $level);
        if ($show_category_id == $category_id) {
            if ($level > 0) {
                $category_class = "selectedsubCategory";
            } else {
                $category_class = "selectedtopCategory";
            }
        } else {
            if ($level > 0) {
                $category_class = "subCategory";
            } else {
                $category_class = "topCategory";
            }
        }
        if ($is_first) {
            $category_class .= " firstCategory";
        }
        if ($is_last) {
            $category_class .= " lastCategory";
        }
        $t->set_var("category_class", $category_class);
        if ($is_restricted) {
            $t->set_var("restricted_class", " restrictedCategory");
            $t->sparse("restricted_image", false);
        } else {
            $t->set_var("restricted_class", "");
            $t->set_var("restricted_image", "");
        }
        if ($is_rss) {
            $t->parse("category_rss", false);
        } else {
            $t->set_var("category_rss", "");
        }
        if ($category_image) {
            if (preg_match("/^(http|https|ftp|ftps)\\:\\/\\//", $category_image)) {
                $image_size = "";
            } else {
                $image_size = @GetImageSize($category_image);
                if (isset($restrict_categories_images) && $restrict_categories_images) {
                    $category_image = "image_show.php?category_id=" . $show_category_id;
                }
            }
            if (!strlen($image_alt)) {
                $image_alt = $category_name;
            }
            $t->set_var("alt", htmlspecialchars($image_alt));
            $t->set_var("src", htmlspecialchars($category_image));
            if (is_array($image_size)) {
                $t->set_var("width", "width=\"" . $image_size[0] . "\"");
                $t->set_var("height", "height=\"" . $image_size[1] . "\"");
            } else {
                $t->set_var("width", "");
                $t->set_var("height", "");
            }
            $t->parse("category_image", false);
        } else {
            $t->set_var("category_image", "");
        }
        if ($has_nested) {
            $t->set_var("subcategories", $t->get_var("subcategories_" . ($level + 1)));
            $t->parse("subcategories_rows");
            $t->set_var("subcategories_" . ($level + 1), "");
            $t->set_var("subcategories", "");
        } else {
            $t->set_var("subcategories_rows", "");
        }
        if ($level > 0) {
            $t->parse_to("categories", "subcategories_" . $level);
        } else {
            $t->parse("categories");
        }
        if ($has_nested) {
            $t->set_var("subcategories_rows", "");
        }
        if ($is_last && $level == 0) {
            $t->parse("categories_rows");
            $t->set_var("categories", "");
        }
    }
}