Well, that is exactly what I needed. Thanks again, Jamie!
I can't say if the following code is the best, most efficient way, but here it
is for posterity sake-
module FaqTag
include Radiant::Taggable
class TagError < StandardError; end
# <r:answername />
# <r:summary />
# etc...
#
(Answerbookpage.column_names.dup).each do |method|
tag(method.to_s) do |tag|
tag.locals.page.send(method)
end
end
tag "faq" do |tag|
tag.expand
end
tag "faq:each" do |tag|
result = []
Answerbookpage.find(:all).each do |item|
tag.locals.child = item
tag.locals.page = item
result << tag.expand
end
result
end
end
Quoting Jamie Wilkinson <[EMAIL PROTECTED]>:
> Howdy Todd,
>
> A combination of cloning the <r:children:each> tag (slightly lower in
> the same file) and the metamethod you pointed out should work just
> fine. So it would look more like:
>
> <r:faq:each>
> <r:answername />
> <r:summary />
> </r:faq:each>
>
> -jamie
>
> On Jan 10, 2007, at 7:46 AM, Todd McGrath wrote:
>
> > Hello again,
> >
> > I'm making some progress on extensions and now I'm looking for a
> > little push in
> > the right direction.
> >
> > I'm working on an extension for displaying data from database for
> > the FAQ
> > section of a site using tags (mental branch).
> >
> > * Created a FaqExtension and include the tag:
> >
> > def activate
> > Page.send :include, FaqTag
> > end
> >
> > * in lib/faq_tag.rb:
> > module FaqTag
> > include Radiant::Taggable
> >
> > class TagError < StandardError; end
> >
> > tag "faq" do |tag|
> > faq = Answerbookpages.find(:all)
> > raise TagError.new("Faq cannot be found") unless faq
> > tag.locals.faq = faq
> > tag.expand
> > end
> >
> > tag "faqhello" do |tag|
> > "Hello #{tag.attr['name'] || 'mundo'}!"
> > end
> >
> > end
> >
> > * "faqhello" (<r:faqhello/>) works and "faq" tag is retrieving from
> > db.
> > (Obviously, I have an Answerbookpages class
> >
> > I'm looking for some insight to take it further.
> >
> > In my FAQ page, I'd like to use something like the following:
> >
> > <r:faq>
> > <r:answername />
> > <r:summary />
> > </r:faq>
> >
> > where "answername" and "summary" are fields in the answerbookpages
> > table.
> >
> > Not sure where to begin..
> >
> > In the StandardTags class, I see:
> > #
> > # <r:url />
> > # <r:title />
> > # etc...
> > #
> > ((Page.column_names.dup << 'url') - ['class_name', 'created_by',
> > 'updated_by']).each do |method|
> > tag(method.to_s) do |tag|
> > tag.locals.page.send(method)
> > end
> >
> > Maybe the answer I'm looking for is something similar to this?
> >
> > Any thoughts or suggestions are really appreciated
> >
> > Thank you,
> > Todd
> >
> > _______________________________________________
> > 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
>
_______________________________________________
Radiant mailing list
Post: [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site: http://lists.radiantcms.org/mailman/listinfo/radiant