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:   Radiant@lists.radiantcms.org
> > Search: http://radiantcms.org/mailing-list/search/
> > Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
> 
> _______________________________________________
> Radiant mailing list
> Post:   Radiant@lists.radiantcms.org
> Search: http://radiantcms.org/mailing-list/search/
> Site:   http://lists.radiantcms.org/mailman/listinfo/radiant
> 


_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to