We have a well-established instance of Magento 1.4 running, though guys before me have modified core files which is unfortunate.
For a category, under Catalog > Manage All Categories > General Information, if I set "Is Active = yes", then the catalog/category list page is rendered.
If I set "Active = no", then a "404" page is rendered.
I want to modify the logic (by extending core) that does that just slightly, to say this:
if('category is active OR a special viewing cookie is set'){
//render the list page
}else{
//show the 404 page as you normally do.
}
Where is this located? I would think it's pretty deep inside core.
== EDIT ==
Just wanted to re-state my comment to the accepted answer, the canShow()
method leading to getIsActive()
is where the decision is made. Override that, and it appears the category page will show exactly as it otherwise would if the category was active. Magento appears to make no further checks beyond that point.
I can't vouch for that in every instance or if category relationships are more complex though.