from pkg_resources import resource_filename
-from pylons import c, session
+from pylons import session, tmpl_context as c
from spline.lib.plugin import PluginBase
from spline.lib.plugin import PluginBase, PluginLink, Priority
-import spline.model as model
-import spline.model.meta as meta
import splinext.forum.controllers.forum
-import splinext.forum.model
def add_routes_hook(map, *args, **kwargs):
"""Hook to inject some of our behavior into the routes configuration."""
+ require_POST = dict(conditions=dict(method=['POST']))
+
map.connect('/forums', controller='forum', action='forums')
- map.connect('/forums/{forum_id}', controller='forum', action='threads')
- map.connect('/forums/{forum_id}/threads/{thread_id}', controller='forum', action='posts')
+ map.connect(r'/forums/{forum_id:\d+}', controller='forum', action='threads')
+ map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}', controller='forum', action='posts')
+
+ map.connect(r'/forums/{forum_id:\d+}/write', controller='forum', action='write_thread')
+ map.connect(r'/forums/{forum_id:\d+}/threads/{thread_id:\d+}/write', controller='forum', action='write')
class ForumPlugin(PluginBase):
forum = splinext.forum.controllers.forum.ForumController,
)
- def model(self):
- return [
- model.Forum,
- model.Thread,
- model.Post,
- ]
-
- def template_dirs(self):
- return [
- (resource_filename(__name__, 'templates'), Priority.NORMAL)
- ]
-
def hooks(self):
- return [
+ hooks = [
('routes_mapping', Priority.NORMAL, add_routes_hook),
]
+
+ # frontpage plugin may or may not be installed
+ try:
+ from splinext.forum.frontpage_sources import ForumSource
+ hooks.append(
+ ('frontpage_updates_forum', Priority.NORMAL, ForumSource))
+ except ImportError:
+ pass
+
+ return hooks