db.define_table('tag',dbField('name'))
db.define_table('taggable,db.Field('description'),db.Field
('tags','text'))
db.taggable.tags.requires=IS_IN_DB(db,'tag.id','%(name)
s',multiple=True)
Optional:
def tag_widget(self,value,tags=[]):
script=SCRIPT
("""
function web2py_tag(self,other,tag)
{
var o=document.getElementById
(other)
if(self.className=='tag_on')
{
self.setAttribute
('class','tag_off');
o.value=o.value.replace('|'+tag
+'|','|');
} else if(self.className=='tag_off')
{
self.setAttribute
('class','tag_on');
o.value=o.value+'|'+tag
+'|';
}
}""")
id=self._tablename+'_'+self.name
def onclick(x): return "web2py_tag(this,'%s','%s');"%(id,x)
if tags and not isinstance(tags[0],(list,tuple)): tags=[tags]
buttons=[DIV(_class='tag_row',
*[SPAN(A(x,_class='tag_on' if value and '|%s|'%x \
in value else 'tag_off',_onclick=onclick(x)),\
_class="tag_col") for x in tag_line]) for tag_line in
tags]
return DIV(script,INPUT(_type='hidden',_id=id,_name=self.name,
_value=value),*buttons)
db.tagging.tags.widget=tag_widget
Massimo
On Feb 7, 4:44 am, mickgardner <[email protected]> wrote:
> Hi,
>
> i've been trying all day to work out how to do this and cannot get it
> working completely the way I want it to.
>
> I'm building a blog and want to implement tagging.
> The tagging would work as such:
>
> There would be a text, tagging field that would accept multiple comma
> or space separated 'tags'.
>
> each word or tag would then be listed with each post,
> each word would be a hyperlinked so that when its clicked on it would
> list all articles that have that tag on it.
>
> Now I can get this working, if I have one word only. When I use spaces
> and or multiple words / tags the system rightfully treats it as one
> tag.
>
> I'm trying to work out how to accept multiple tags in one field and
> have them treated as multiple tags not one giant tag with spaces.
> I was thinking that perhaps I could use some sort of custom validator
> or something behind the form that split the words up so that they were
> treated separately but cannot figure it.
>
> Any assistance / advice would be welcome!
>
> thanks
> Michael Gardner
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" 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/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---