> * Slow as molasses. On http://biola.artofmission.com, regenerating a
page can take as long as 2 seconds.

     Are you running radiant/rails through CGI?

    /AITOR


On 6/22/07, Ryan Heneise <[EMAIL PROTECTED]> wrote:
>
> In the spirit of The Rails Way Free-for-all (http://
> www.therailsway.com/2007/6/4/free-for-all-tab-helper), I thought it
> would be fun to see how we all handle making dynamic navigation for
> Radiant sites.
>
> PROBLEM: I have a hierarchical site, where each page has several
> children, and some children also have children. I want a  standard
> left-hand navigation menu. It should be automatically generated. The
> navigation menu should show the children for only the current page,
> and it should expand to show the parents and ancestors of the current
> page.
>
> Example:
>
> - Home
>    + About
>    - Articles
>      - Article 1 -- you are here
>      + Article 2
>    + Widgets
>    + Hoozits
>    + Whatzits
>
> (- expanded pages)
> (+ unexpanded pages)
>
> If you've done this in Radiant, please post your solution. See mine
> in action at http://radiant.artofmission.com/ Username: demo,
> password: radiant. Also see http://biola.artofmission.com (under
> construction)
>
> Pro:
> * Easy & foolproof - content editors don't even have to think about
> navigation - it just happens for them.
> * Automatic - new pages show up in nav automatically.
>
> Con:
> * Slow as molasses. On http://biola.artofmission.com, regenerating a
> page can take as long as 2 seconds.
>
> Here's my code:
>
> == Snippets ==
>
> === Nav ===
> <div id="nav">
>    <r:find url="/">
>      <ul>
>        <li<r:if_self> class="current"</r:if_self>><a href="/">Home</
> a></li>
>        <r:children:each>
>          <r:snippet name="sub-nav" />
>        </r:children:each>
>      </ul>
>    </r:find>
> </div>
>
> === sub-nav ===
> <r:unless_content part="no-map">
>    <li<r:if_self> class="current"</r:if_self>><a href="<r:url />"
> title="<r:title />"><r:breadcrumb /></a>
>      <r:if_children>
>      <r:if_ancestor_or_self>
>        <ul>
>          <r:children:each>
>            <r:snippet name="sub-nav" />
>          </r:children:each>
>        </ul>
>      </r:if_ancestor_or_self>
>      </r:if_children>
>    </li>
> </r:unless_content>
>
>
> == Tags ==
> http://svn.artofmission.com/svn/plugins/radiant/plugins/navigation_tags
>
> require 'standard_tags' # make sure we have the previous definition
> first
>
> module StandardTags
>
>    include Radiant::Taggable
>
>    # Inspired by this thread:
>    # http://www.mail-archive.com/[email protected]/
> msg03234.html
>    desc %{
>      Renders the contained element if the current item is an ancestor
> of the current page or if it is the page itself.
>    }
>    tag "if_ancestor_or_self" do |tag|
>      tag.expand if tag.globals.actual_page.url.starts_with?
> (tag.locals.page.url)
>    end
>
>    desc %{
>      Renders the contained element if the current item is also the
> current page.
>    }
>    tag "if_self" do |tag|
>      tag.expand if tag.locals.page == tag.globals.actual_page
>    end
>
>    desc %{
>      Renders the contained elements only if the current contextual
> page has children.
>
>      *Usage:*
>      <pre><code><r:if_children>...</r:if_children></code></pre>
>    }
>    tag "if_children" do |tag|
>      children = tag.locals.page.children
>      tag.expand if children.size > 0
>    end
>
> end
>
>
>
> _______________________________________________
> Radiant mailing list
> Post:   [email protected]
> Search: http://radiantcms.org/mailing-list/search/
> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
>
_______________________________________________
Radiant mailing list
Post:   [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to