@Matt, thanks so much, will work through that with interest...
@Owen - YES, now your talking !

regards, Dave


On Dec 4, 10:21 am, Owen <[email protected]> wrote:
> ...however, I hope we get to the point that the 100 top "simple"
> things can be as easy as:
>
> <preview-with-more>
>    <model:Recipe/>
>    <count:10/>
> </preview-with-more>
>
> ..which will use the default cards, etc.
>
> Matt, I am confident you can do this for people like me with many
> brain cells killed over the past 30 years. :-)
>
> On Dec 3, 9:01 pm, Owen Dall <[email protected]> wrote:
>
>
>
> > Thanks much again, Matt, for your expertise!
>
> > On Thu, Dec 3, 2009 at 8:07 PM, Matt Jones <[email protected]> wrote:
>
> > > On Dec 3, 2009, at 6:08 PM, Dave Porter wrote:
>
> > > > Hi Owen,  Sorry yes this was a bit vague !
>
> > > > This is what is currently in the Cookbook index.dryml for the front
> > > > page
> > > > So the '<preview-with-more name="recent recipes"
> > > > with="&Recipe.recent"/
> > > >> '
>
> > > > Is the code that is displaying the list of recipes on the front page.
>
> > > > I need to understand how this works ?
>
> > > To start with, you typically want to figure out the context the tag
> > > ends up running in. Here, the with= attribute is setting the context
> > > to Recipe.recent (a named scope on Recipe that sorts models in
> > > descending order by created_at - it's defined in automatic_scopes).
> > > The recent scope accepts the number of records to limit the source as
> > > a parameter, or defaults it to 6 (as in this case).
>
> > > For the rest, track down the source of preview-with-more; you'll find
> > > it in rapid_plus.dryml (in the hobo plugin). As an aside, a good text
> > > editor with "Search all files" pointed at the hobo source is pretty
> > > much a standard tool - heck, it used to *be* the documentation.
>
> > > Anyway, the source of preview-with-more:
>
> > > <!-- Captures the common pattern of a list of "the first few" cards,
> > > along with a link to the rest. -->
> > > <def tag="preview-with-more" attrs="name">
> > >   <% name ||= collection_name.pluralize -%>
> > >   <section class="#{name.gsub(' ', '-').dasherize} preview-with-more"
> > > param="default">
> > >     <h3 param="heading"><%= name.titleize %></h3>
> > >     <a param="more">More <type-name plural lowercase/>...</a>
> > >     <collection param/>
> > >     <a action="new" if="&can_create?(this.new)" param="new-link">New <
> > > %= this.member_class.view_hints.model_name %></a>
> > >   </section>
> > > </def>
>
> > > Most of this should be pretty self-explanatory. The meat of the action
> > > here is in the collection tag. That's defined over in
> > > rapid_generics.dryml:
>
> > > <def tag="collection">
> > >   <ul class="collection #{collection_name :dasherize => true}" merge-
> > > attrs unless="empty?">
> > >     <li param="item" class="#{scope.even_odd} #{model_id_class}"
> > > repeat="&select_viewable">
> > >       <do param="default"><card param/></do>
> > >     </li>
> > >   </ul>
> > >   <empty-collection-message param="empty-message"/>
> > > </def>
>
> > > This creates the actual list of Recipe cards; note that the card tag
> > > is just a default here, as calling the collection tag like this:
>
> > > <collection>
> > >   <some-tag />
> > > </collection>
>
> > > Will repeat some-tag instead of card.
>
> > > Next you look up where the card for Recipe is defined; in this case,
> > > it's in app/views/taglibs/application.dryml (in the hobocookbook
> > > source):
>
> > > <extend tag="card" for="Recipe">
> > >   <old-card merge without-count>
> > >     <before-heading:><gravatar:user size='50' param/></before-heading:>
> > >     <creator-link: replace><div param="user">By: <a:user/></div></
> > > creator-link:>
> > >     <append-body:>
> > >       <div param="timestamp">
> > >         <if test="&this.created_at == this.updated_at">
> > >           <view:created-at.to-date/>
> > >         </if>
> > >         <else>
> > >           Updated: <view:updated-at.to-date/>
> > >         </else>
> > >       </div>
> > >     </append-body:>
> > >   </old-card>
> > > </extend>
>
> > > Note that this is extending the base card (autogenerated in app/views/
> > > taglibs/auto/rapid/cards.dryml):
>
> > > <def tag="card" for="Recipe">
> > >   <card class="recipe" param="default" merge>
> > >     <header: param>
> > >       <h4 param="heading"><a><name/></a></h4>
> > >     </header:>
> > >     <body: param>
> > >       <a:user param="creator-link"/>
> > >       <ht key="comments.collection.count" count="&this.comments.size">
> > >          <count:comments param/>
> > >       </ht>
> > >     </body:>
> > >   </card>
> > > </def>
>
> > > With the modifiers in the extended definition, the actual definition
> > > looks more like:
>
> > > <def tag="card" for="Recipe">
> > >   <card class="recipe" param="default" merge>
> > >     <gravatar:user size='50' param/>
> > >     <header: param>
> > >       <h4 param="heading"><a><name/></a></h4>
> > >     </header:>
> > >     <body: param>
> > >       <div param="user">By: <a:user/></div>
> > >       <ht key="comments.collection.count" count="&this.comments.size">
> > >          <count:comments param/>
> > >       </ht>
> > >       <div param="timestamp">
> > >         <if test="&this.created_at == this.updated_at">
> > >           <view:created-at.to-date/>
> > >         </if>
> > >         <else>
> > >           Updated: <view:updated-at.to-date/>
> > >         </else>
> > >       </div>
> > >     </body:>
> > >   </card>
> > > </def>
>
> > > One can follow this rabbit hole for quite a while longer, but I hope
> > > this helps!
>
> > > --Matt Jones
>
> > > --
>
> > > You received this message because you are subscribed to the Google Groups
> > > "Hobo Users" group.
> > > To post to this group, send email to [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<hobousers%2bunsubscr...@googlegroups
> > >  .com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/hobousers?hl=en.
>
> > --
> > Thanks,
>
> > Owen
>
> > Owen Dall
> > Barquin International
> > 410-991-0811

--

You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.


Reply via email to