Anyone who want this working on 4.2 do the following. The only difference is I made it so you can change the status on the admin categories page without going into each category one at a time and modifying them to be hidden.
Hope this helps someone.
----------------------------------------------------
1) Open skin1/admin/main/categories.tpl
Find:
Code:
<option value="N"{if $c.avail eq "N"} selected="selected"{/if}>{$lng.lbl_no}</option>
Add Below:
Code:
<option value='H'{if $c.avail eq 'H'} selected="selected"{/if}>Hidden</option>
2) Open skin1/admin/main/category_modify.tpl
Find:
Code:
<option value='Y' {if ($current_category.avail eq 'Y')} selected="selected"{/if}>{$lng.lbl_enabled}</option>
<option value='N' {if ($current_category.avail eq 'N')} selected="selected"{/if}>{$lng.lbl_disabled}</option>
Add under:
Code:
<option value='H' {if ($current_category.avail eq 'H')} selected="selected"{/if}>Hidden</option>
3) Open include/func/func.category.php
NOTE: REPLACE ALL INSTANCES!!
Find All:
Code:
$sql_tbl[categories].avail = 'Y'
Replace With:
Code:
($sql_tbl[categories].avail='Y' OR $sql_tbl[categories].avail='H')
4) Open skin1/customer/categories.tpl
Find:
Code:
<li><a href="home.php?cat={$c.categoryid}" title="{$c.category|escape}">{$c.category}</a></li>
Replace With:
Code:
{if $c.avail ne "H"}
<li><a href="home.php?cat={$c.categoryid}" title="{$c.category|escape}">{$c.category}</a></li>
{/if}
5) Open admin/process_category.php
Find:
Code:
"avail" => ($v["avail"] == "Y" ? "Y" : "N")
Replace with:
Code:
"avail" => $v["avail"]
6) Open include/search.php
Find:
Code:
$sql_tbl[categories].avail = 'Y'
Replace with:
Code:
($sql_tbl[categories].avail = 'Y' OR $sql_tbl[categories].avail = 'H')
Thats it

- THANKS FOR THE MOD BTW
