# Breadcrumn except the root

**URL:** <https://www.ruby-forum.com/t/breadcrumn-except-the-root/104684>\
**Category:** Radiant CMS\
**Created:** [May 21, 2007, 2:51pm UTC](https://www.ruby-forum.com/t/breadcrumn-except-the-root/104684 "2007-05-21T14:51:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![luigi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/73ab20/32.png) [@luigi](https://www.ruby-forum.com/u/luigi)\
**Post date:** [May 21, 2007, 2:51pm UTC](https://www.ruby-forum.com/t/breadcrumn-except-the-root/104684/1 "2007-05-21T14:51:54Z")

</div>

Hi.

I’ve a page tree to handle a multilingual site:

/  
/it/etc.  
/en/etc.

How can I limit the breadcrumb tag so that it shows the language root  
rather than the whole site root?

(I.e., instead of “My site \> Italian home page \> Altra pagina” or "“My  
site \> English home page \> Other page”, it shows only "“English home  
page \> Other page”).

Thanks in advance.

Luigi

---

<div class="post-metadata">

**Author:** ![luigi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/73ab20/32.png) [@luigi](https://www.ruby-forum.com/u/luigi)\
**Post date:** [May 21, 2007, 3:18pm UTC](https://www.ruby-forum.com/t/breadcrumn-except-the-root/104684/2 "2007-05-21T15:18:00Z")

</div>

I wrote an extension with some custom tags, including this custom  
breadcrumbs tag. It’s similar to the default one but I added 2  
possible attribute: exclude and rename…and I use it in this way:

\<r:bc:breadcrumbs separator=" \> " exclude=“1” rename=“12=Home” /\>

It excludes the real homepage and rename my “Home ITA” to  
“Home”…this is the code:

tag ‘bc:breadcrumbs’ do |tag|  
pages\_to\_exclude = tag.attr[‘exclude’] ? tag.attr  
[‘exclude’].split(‘,’).collect{|id| id.strip.to\_i} : []  
renames = tag.attr[‘rename’] ? Hash[\*tag.attr[‘rename’].split  
(‘,’).collect{|s| s.split(‘=’).collect{|x| x.strip} }.flatten] : {}  
page = tag.locals.page  
breadcrumbs = renames[page.id.to\_s] ? [renames[page.id.to\_s]] :  
[page.breadcrumb]  
page.ancestors.each do |ancestor|  
label = renames[ancestor.id.to\_s] ? renames  
[ancestor.id.to\_s] : ancestor.breadcrumb  
breadcrumbs.unshift %{#{label}}  
unless pages\_to\_exclude.include?(ancestor.id)  
end  
separator = tag.attr[‘separator’] || ’ \> ’  
breadcrumbs.join(separator)  
end

Il giorno 21/mag/07, alle ore 14:47, Luigi R. ha scritto:

> Search: [http://radiantcms.org/mailing-list/search/](http://radiantcms.org/mailing-list/search/)  
> Site: [http://lists.radiantcms.org/mailman/listinfo/radiant](http://lists.radiantcms.org/mailman/listinfo/radiant)

* * *

Andrea F.

removed\_email\_address@domain.invalid  
[http://bigchieflabs.com/blog/](http://bigchieflabs.com/blog/)  
[http://think.bigchief.it](http://think.bigchief.it)

---

<div class="post-metadata">

**Author:** ![luigi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/73ab20/32.png) [@luigi](https://www.ruby-forum.com/u/luigi)\
**Post date:** [May 21, 2007, 10:00pm UTC](https://www.ruby-forum.com/t/breadcrumn-except-the-root/104684/3 "2007-05-21T22:00:02Z")

</div>

Andrea F. wrote:

> I wrote an extension with some custom tags, including this custom  
> breadcrumbs tag. It’s similar to the default one but I added 2  
> possible attribute: exclude and rename…and I use it in this way:

It works perfectly. Grazie!

Luigi
