[eluser]BrianDHall[/eluser]
One trick I use is read directory functionality. For an advertising banner solution I hacked out a solution like this:
I make a view folder, such as "ads".
I throw in a little segment in the name of each file, such that the name structure might be 1-ffffff-merchant_ad_or_whatever.php.
When mysite.come/controller/function/1/advertiser_in_question_or_whatever_because_I_use_this_for_SEO_only is called, I load up the names of all files in the directory. I loop through them and pick out the one that has a "1-" at the beginning, break out of the loop and then load that view.
So in your program you could actually just use a, say, viewable token in the name, like _p (for public) at the end. if page "admin_only" is requested, you search the name for "_p" - since admin_only does not contain that token, then it must not be for public view and you handle that accordingly.
The upside is you make the decision when you create the view if it should be dynamically loadable. The downside is it is harder to make something viewable later on, as you have to change the file name and that would of course break existing calls to that view.
It's a thought, anyway.
...hm, come to think of it, it would be a lot easier to just put all viewable files in a "views/public" folder. So if it's dynamically called you pull it out of the public folder. Scrub the requested folder variable to allow only letters, numbers, and underscores, and you are done.
Well, that's a hell of a lot easier, I think