# Hidden pages

**URL:** <https://www.ruby-forum.com/t/hidden-pages/87560>\
**Category:** Radiant CMS\
**Created:** [March 3, 2007, 10:41pm UTC](https://www.ruby-forum.com/t/hidden-pages/87560 "2007-03-03T22:41:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Todd\_McGrath](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19b73/32.png) [@Todd\_McGrath](https://www.ruby-forum.com/u/Todd_McGrath)\
**Post date:** [March 3, 2007, 10:41pm UTC](https://www.ruby-forum.com/t/hidden-pages/87560/1 "2007-03-03T22:41:52Z")

</div>

Hi,

I have a few result pages that should only render after a form  
submission.  
Thank you for you submission, blah, blah. The problem I’m having is how  
to  
classify these pages to not show up in \<r:children:each\>. It’s not an  
option  
to move these pages to an area of the tree that will not be picked up by  
r:children:each.

Do you know what I mean? I feel like I’m missing something obvious.

If I set the pages to hidden, it won’t be found in \<r:children:each\>,  
but it  
also won’t be found outside of dev.host?

Confused,  
Todd

---

<div class="post-metadata">

**Author:** ![Todd\_McGrath](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19b73/32.png) [@Todd\_McGrath](https://www.ruby-forum.com/u/Todd_McGrath)\
**Post date:** [March 3, 2007, 10:47pm UTC](https://www.ruby-forum.com/t/hidden-pages/87560/2 "2007-03-03T22:47:53Z")

</div>

You might consider adding a part, like the technique used in the  
site-map idea, that you check for inside the \<r:children:each\> with a  
\<r:unless\_content\> tag.

Sean

---

<div class="post-metadata">

**Author:** ![Todd\_McGrath](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19b73/32.png) [@Todd\_McGrath](https://www.ruby-forum.com/u/Todd_McGrath)\
**Post date:** [March 4, 2007, 12:31am UTC](https://www.ruby-forum.com/t/hidden-pages/87560/3 "2007-03-04T00:31:01Z")

</div>

Sean, excellent solution. I actually hacked a “hidden” bool onto Page  
and then put a little checkbox in the admin UI. Would send along the  
patch but Sean’s solution is much cleaner IMO 🙂  
-jamie

---

<div class="post-metadata">

**Author:** ![Todd\_McGrath](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19b73/32.png) [@Todd\_McGrath](https://www.ruby-forum.com/u/Todd_McGrath)\
**Post date:** [March 4, 2007, 6:32pm UTC](https://www.ruby-forum.com/t/hidden-pages/87560/4 "2007-03-04T18:32:26Z")

</div>

Thank you, I see how this could work and appreciate the idea.

You know, I don’t really like to modify the code outside of extensions,  
but  
after a little code review, I guess a quick fix could also involve  
updating the  
page.rb published? method:

def published?  
status == Status[:published] || Status[:hidden]  
end

Or could I do this in an extension somehow?

Quoting Sean C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

---

<div class="post-metadata">

**Author:** ![Todd\_McGrath](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e19b73/32.png) [@Todd\_McGrath](https://www.ruby-forum.com/u/Todd_McGrath)\
**Post date:** [March 4, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/hidden-pages/87560/5 "2007-03-04T19:52:34Z")

</div>

You could do this in an extension, but my main question is… why?  
Anyway, here’s how I would do it in an extension:

#…

def activate  
Page.class\_eval do  
def published?  
status == Status[:published] or status == Status[:hidden]  
end  
end  
end

#…

Sean
