change templates to remove all class/staticmethods, make Helpers a context-aware class, and fix defaults/URLIntegerType bugs in URLTree
"""
Helper functions for use in templates
"""
import time, cgi
from qmsk.web import config
class Helpers (object) :
"""
A bunch of useful helper methods for use in templates
"""
def _bind_ctx (self, ctx) :
"""
Initialize with the given render context
"""
self.ctx = ctx
def now (self) :
"""
Returns the current date/time
"""
return time.strftime(config.DATETIME_FMT)
def copyright_year (self) :
"""
Returns the current year
"""
return time.strftime("%Y")
def validation_notice (self, site_host) :
"""
Returns a short "Validated XHTML & CSS" link text for the given site hostname
"""
return 'Validated <a href="http://validator.w3.org/check?uri=http://%(host)s">XHTML 1.0 Strict</a> & <a href="http://jigsaw.w3.org/css-validator/validator?uri=http://%(host)s">CSS 2.1</a>' % dict(
host = site_host
)
def breadcrumb (self, trail, links=True) :
"""
Returns a nicely formatted breadcrumb tail, optinally with links
"""
return ' » '.join(
(
'<a href="$site_url/%s">%s</a>' % (page.url, page.title) if links else page.title
) for page in trail
)
def escape (self, data) :
"""
Escape data as HTML
"""
return cgi.escape(data)