Allen Gilliland wrote: > > > Elias Torres wrote: >> >> Allen Gilliland wrote: >>> >>> Elias Torres wrote: >>>> Allen Gilliland wrote: >>>>> Elias Torres wrote: >>>>>> Allen Gilliland wrote: >>>>>>> On a slightly separate note, one other thing we need to think more >>>>>>> about >>>>>>> is the model methods. Just like macros we want to keep those as >>>>>>> trimmed >>>>>>> and clean as possible. >>>>>>> >>>>>>> In general the models like page and feed which are stateful and >>>>>>> represent a request should provide methods to get at the data from >>>>>>> that >>>>>>> request. So I think for these models the getTags() method should >>>>>>> return >>>>>>> the set of tags specified by the request, and null if no tags were >>>>>>> specified. >>>>>> I'm not sure I understand what does: "set of tags specified by the >>>>>> request". Could you please clarify a bit more? >>>>> meaning that when someone requests the url /weblog/tags/foo+bar or >>>>> /weblog/feed/entries/rss?tags=foo+bar then the output of >>>>> $model.getTags() should be the 2 EntryTagData objects for "foo" and >>>>> "bar". this follows the existing pattern where getLocale() or >>>>> getCategory() will return the value that is being used to render the >>>>> content (i.e. as specified by the request). >>>> getTags() returns just the tag name and the tag count. I don't want to >>>> use the tags specified in the request. getTags() is what we feed into >>>> the #showTagCloud macro to render. The difference between getHotTags() >>>> and getTags() is the sortBy method and the limit. In getHotTags() we >>>> only want 10,20,50. In getTags() we want them all (at least for a >>>> blog). >>>> Enter the limit parameter. If the site-wide tag cloud is too big we can >>>> restrict it to the top 100 and use a slider to get 300, 1000 via a url >>>> parameter or AJAX if needed (Note: your idea below of a lastUsed would >>>> be a much better tie-breaker when fetching top XXX instead of >>>> alphabetical sorting). >>> well, I think it's very important that you provide a method in the >>> stateful models like pageModel & FeedModel that they have a method that >>> returns the tags which are part of the weblog request, and by convention >>> that method should be named getTags(). I don't care if you return the >>> TagAggData object instead of the EntryTagData object. >> >> I see what you mean now. Just a method for accessing the request tags. >> >>> I still don't understand what you intend to do with a tag cloud which >>> has hundreds or thousands of tags, that seems absurdly large to me. So >>> I am still not okay with having a way for users to get *all* of their >>> tags. Look at most sites like flickr.com/tags/ or technorati.com/tags/ >>> or del.icio.us/tag/, none of them offer tag clouds of more than 150ish >>> tags. >> >> I didn't say I wanted all tags for a site-wide. Maybe I have mistakenly >> said so somewhere else. > > I wasn't actually being specific for site-wide vs. weblog, I think the > issue holds for both cases. > >> >> "If the site-wide tag cloud is too big we can restrict it to the top 100 >> and use a slider to get 300, 1000 ..." > > I am still thinking ... 300? 1000? Where do you see tag clouds that > big? Why do people need tag clouds that big? >
You are right that 1000 is WAY overkill, but see my comment below. > >> >> We must remember the "long tail" (I can't believe I said that). > > I don't know what that means :/ > It's just the fact that sometimes more people are interested in looking for different tags less popular as opposed to a whole bunch of people looking for the same tags always. http://en.wikipedia.org/wiki/Long_tail >> >> I said a *weblog* would most likely need all of its tags for entry >> navigation and I doubt that would get to 10,000 or more. But sure, we >> can/should limit that (at least parameterize it with a default). > > Why would it need all of its tags? I think we are fully justified in > setting a maximum value for the number of tags which get returned to > users. If you are really concerned about what this value would be then > make it configurable, so that it can default to something like 150 but > be changed to 1000 if someone thinks that's okay. > > In any case, despite this issue over an imposed limit on the result set > size of querying for tags, I am also still of the opinion that it > doesn't really make sense to have a method called getTags() for a > site/weblog. I was thinking about this a bit more and I think that it > would be totally fine if we only had a getHotTags() method which returns > the XXX tags with the highest counts. Then to give users a little more > freedom I suggest we try adding in that "lastUsed" column to the tagagg > table so we can track dates and then have a getHotTags(sinceDays) method > which would let users get their hottest tags in the last XX days. > > IMO that covers the majority of scenarios where I think users are going > to want to get their tag data and make clouds. Agreed. I'll get back to work. Thanks for all your feedback/dialogue/suggestions/evil comments/etc. I like the Roller team. > > -- Allen > > >> >>> -- Allen >>> >>> >>> >
