# A Vellum plugin: adds category support
# Remember, plugins that add an attribute to an Entry object can't
# assume that it's there; some entries may have been created before
# the plugin was installed.
import vellum.hooks,vellum.Entry
# Add a new blank category attribute to every Entry
vellum.Entry.Entry.category = ''
# Print an entry's category in the entry list
def printListCategory(entry):
print ' '
if hasattr(entry,"category"):
print entry.category
print ''
vellum.hooks.register_hook("entry-listdisplay-print",printListCategory)
# Print a form element on the new entry screen
def printNewCategory():
print '
\n'
print 'Category: \n'
print '\n'
print '
'
vellum.hooks.register_hook("entry-new-print",printNewCategory)
# Print a form element on the edit entry screen
def printEditCategory(entry):
if hasattr(entry,"category"):
category = entry.category
else:
category = ''
print '''
Category:
''' % category
vellum.hooks.register_hook("entry-edit-print",printEditCategory)
# Grab the value that our form element has provided and add it to the entry
def saveCategoryText(entry,form):
if form.has_key("category"):
category = form.getvalue("category")
entry.category = category
vellum.hooks.register_hook("entry-new-save",saveCategoryText)
vellum.hooks.register_hook("entry-edit-save",saveCategoryText)
__pluginname__ = "Categories"
__description__ = """The categories plugin allows you to add categories
to your entries. An entry's category appears in its entry.category attribute
for reference in your templates."""