The Tags extension provides a way for you to easily categorize your pages.
== Results page
<r:search:empty> <h2>I couldn't find anything tagged with "<r:search:query/>".</h2> </r:search:empty> <r:search:results> <h2>Found the following pages that are tagged with "<em><r:search:query/></em>".</h2> <ul> <r:search:results:each> <li><r:link/> - <r:author/> - <r:date/></li> </r:search:results:each> </ul> </r:search:results>
== Tag cloud
<r:tag_cloud /> anywhere you like.
I made a stab at building the 'perfect' tag cloud markup, as inspired by a post on 24ways.org; http://24ways.org/2006/marking-up-a-tag-cloud
== Tag list
<r:tag_list /> to get a list of tags for the current page.
Also works through children:each.
== All tags
<r:all_tags /> to get a list of all tags. You may iterate through them with
<r:all_tags:each> and access their associated pages with
You can grab a collection of pages with a certain tag like so;
<r:tagged with="sometag" [scope="/some/page"] [with_any="true"]> <r:link /> </r:tagged>
Which would iterate over all the resulting pages, like you do with children:each. When you define scope, only this page and any of it's (grand)children will be used. Using scope="current_page" will use the page that is currently being rendered as scope. You can also set limit, offset etc like with children:each.
Using r:tagged in it's default setting searches for pages that have all of the given tags. Using r:tagged with the attribute 'with_any' set to 'true' will find pages that have any of the given tags.