Thanks for replying Ingmar,
I have tried many methods. Each method have pros and cons. Here are my many methods so far:
Method 1: Using category_archive
{exp:channel:category_archive channel="{master_channel_name}" style="nested" class="cat_list"}
{categories}
<strong><a href="http://{path={current_location}/template/category/{category_url_title}}">{category_name}</a></strong>
{if category_description}{category_description}{/if}
{/categories}
{entry_titles}
<a href="http://{path=template/topic/}">{title}</a>
{/entry_titles}
{/exp:channel:category_archive}
Using this method, I was able to display all levels of categories which is great, but I would like to be able to click on any sub category and drill down to the next level of sub categories. Unfortunately, category_archive did not let me display just part of a sub category without displaying its parent. It also displays other unrelated categories unless I specified using the “show” parameter.
Method 2: Using child_category plugin (3rd party)
{exp:channel:categories category_group="{cat_group}" channel="{master_channel_name}" parent_only="yes" style="linear"}
<h3><a href="http://{path={current_location}/template/category/{category_url_title}}">{category_name}</a></h3>
<p> {if category_description}{category_description}{/if}</p>
<p> <ul class="topic_list clear"><br />
{exp:child_categories parent="{category_id}" child_categories_sort_by="custom" child_categories_sort_direction="asc" show_empty="yes" entries_sort_by="date" entries_sort_direction="asc"}<br />
{child_category_start}<br />
<li><a href="http://{current_location}/overview/{child_category_url_title}">{child_category_name}</a></li><br />
{child_category_end}<br />
{/exp:child_categories}<br />
</ul><br />
{/exp:channel:categories}
Using this method, I was able to drill down each category level but it only displays the current category and its immediate sub-categories. It does not allow me to show all subs and sub-subs.
Method 3: Using recursive_subcategories plugin (3rd party, I had to make some adjustment to the php code to fix the nested UL tags)
{exp:recursive_subcategories parent_id="{segment_4_category_id}" show_parent="0" style="linear"}
<a href="http://{path={current_location}/template/category/{category_url_title}}">{category_name}</a>
{if category_description}{category_description}{/if},
{/exp:recursive_subcategories}
This is a pretty neat little plugin. I was able to drill down categories hierarchy but similar to child_categories, it only displays immediate children of any given category.
The ideal solution for me would be something like category_archive but with a lot more freedom in the parameters, such as allowing a given category to display its children/grand-children etc without showing its parent.
I am testing another method using “channel” as a pseudo category placeholder and combine it with “Relationship” to create the parent/children relationship. This will be a lot more work for content population since the content manager has to define the relationship every single time but at this point, I am happy just to get it to work properly.
Thanks for your help
Rudy