806795ac87fbf1f814011617edb81fbcdbcc1591
[zzz-spline-forum.git] / splinext / forum / __init__.py
1 from pkg_resources import resource_filename
2
3 from pylons import session, tmpl_context as c
4
5 from spline.lib.plugin import PluginBase
6 from spline.lib.plugin import PluginBase, PluginLink, Priority
7
8 import splinext.forum.controllers.forum
9
10 def add_routes_hook(map, *args, **kwargs):
11 """Hook to inject some of our behavior into the routes configuration."""
12 require_GET = dict(conditions=dict(method=['GET']))
13 require_POST = dict(conditions=dict(method=['POST']))
14
15 map.connect('/forums', controller='forum', action='forums')
16 map.connect(r'/forums/{forum_id:\d+}', controller='forum', action='threads')
17 map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}', controller='forum', action='posts')
18
19 map.connect(r'/forums/{forum_id:\d+}/write', controller='forum', action='write_thread', **require_GET)
20 map.connect(r'/forums/{forum_id:\d+}/write', controller='forum', action='write_thread_commit', **require_POST)
21 map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}/write', controller='forum', action='write', **require_GET)
22 map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}/write', controller='forum', action='write_commit', **require_POST)
23
24
25 class ForumPlugin(PluginBase):
26 def controllers(self):
27 return dict(
28 forum = splinext.forum.controllers.forum.ForumController,
29 )
30
31 def hooks(self):
32 hooks = [
33 ('routes_mapping', Priority.NORMAL, add_routes_hook),
34 ]
35
36 # frontpage plugin may or may not be installed
37 try:
38 from splinext.forum.frontpage_sources import ForumSource
39 hooks.append(
40 ('frontpage_updates_forum', Priority.NORMAL, ForumSource))
41 except ImportError:
42 pass
43
44 return hooks