Browse Source

Updated to Flask-Plugins 1.1

sh4nks 11 years ago
parent
commit
3a665ad51f

+ 4 - 13
flaskbb/app.py

@@ -25,7 +25,7 @@ from flaskbb.admin.views import admin
 # Import the forum blueprint
 from flaskbb.forum.views import forum
 from flaskbb.forum.models import Post, Topic, Category, Forum
-# extenesions
+# extensions
 from flaskbb.extensions import db, login_manager, mail, cache, redis, \
     debugtoolbar, migrate, themes, plugin_manager
 from flask.ext.whooshalchemy import whoosh_index
@@ -37,7 +37,6 @@ from flaskbb.utils.helpers import format_date, time_since, crop_title, \
 from flaskbb.utils.permissions import can_post_reply, can_post_topic, \
     can_delete_topic, can_delete_post, can_edit_post, can_lock_topic, \
     can_move_topic
-from flaskbb.hooks import hooks
 
 
 def create_app(config=None):
@@ -54,7 +53,6 @@ def create_app(config=None):
     # try to update the config via the environment variable
     app.config.from_envvar("FLASKBB_SETTINGS", silent=True)
 
-    configure_hooks(app)
     configure_blueprints(app)
     configure_extensions(app)
     configure_template_filters(app)
@@ -77,6 +75,9 @@ def configure_extensions(app):
     Configures the extensions
     """
 
+    # Flask-Plugins
+    plugin_manager.init_app(app)
+
     # Flask-SQLAlchemy
     db.init_app(app)
 
@@ -129,16 +130,6 @@ def configure_extensions(app):
 
     login_manager.init_app(app)
 
-    app.logger.debug("Loading plugins...")
-    plugin_manager.init_app(app)
-
-    # Register the blueprints before the app is serving requests.
-    plugin_manager.setup_plugins()
-
-
-def configure_hooks(app):
-    app.jinja_env.globals.update(hooks=hooks)
-
 
 def configure_template_filters(app):
     """

+ 0 - 6
flaskbb/hooks.py

@@ -1,6 +0,0 @@
-from flask.ext.plugins import HookManager
-
-hooks = HookManager()
-
-hooks.new("tmpl_before_navigation")
-hooks.new("tmpl_after_navigation")

+ 3 - 14
flaskbb/plugins/portal/__init__.py

@@ -1,6 +1,6 @@
-from flaskbb.hooks import hooks
-from flaskbb.plugins import FlaskBBPlugin
+from flask.ext.plugins import connect_event
 
+from flaskbb.plugins import FlaskBBPlugin
 from .views import portal, inject_portal_link
 
 __version__ = "0.1"
@@ -21,15 +21,4 @@ class PortalPlugin(FlaskBBPlugin):
 
     def setup(self):
         self.register_blueprint(portal, url_prefix="/portal")
-
-    def enable(self):
-        hooks.add("tmpl_before_navigation", inject_portal_link)
-
-    def disable(self):
-        hooks.remove("tmpl_before_navigation", inject_portal_link)
-
-    def install(self):
-        pass
-
-    def uninstall(self):
-        pass
+        connect_event("before-first-navigation-element", inject_portal_link)

+ 8 - 0
flaskbb/plugins/portal/info.json

@@ -0,0 +1,8 @@
+{
+    "identifier": "portal",
+    "name": "Portal",
+    "author": "sh4nks",
+    "license": "BSD",
+    "description": "A Portal Plugin for FlaskBB",
+    "version": "0.1"
+}

+ 2 - 2
flaskbb/templates/layout.html

@@ -43,14 +43,14 @@
                     </div>
                     <div class="collapse navbar-collapse navbar-ex1-collapse">
                         <ul class="nav navbar-nav">
-                            {{ hooks.run_template_hook("tmpl_before_navigation") | safe }}
+                            {{ emit_event("before-first-navigation-element") }}
 
                             {# active_forum_nav is set in {forum, category, topic}.html and new_{topic, post}.html #}
                             {{ topnav(endpoint='forum.index', name='Forum', icon='fa fa-comment', active=active_forum_nav) }}
                             {{ topnav(endpoint='forum.memberlist', name='Memberlist', icon='fa fa-user') }}
                             {{ topnav(endpoint='forum.search', name='Search', icon='fa fa-search') }}
 
-                            {{ hooks.run_template_hook("tmpl_after_navigation") | safe }}
+                            {{ emit_event("after-last-navigation-element") }}
                         </ul>
 
                     {% if current_user and current_user.is_authenticated() %}

+ 4 - 0
flaskbb/themes/bootstrap2/templates/layout.html

@@ -44,10 +44,14 @@
                     </div>
                     <div class="collapse navbar-collapse navbar-ex1-collapse">
                         <ul class="nav navbar-nav">
+                            {{ emit_event("before-first-navigation-element") }}
+
                             {# active_forum_nav is set in {forum, category, topic}.html and new_{topic, post}.html #}
                             {{ topnav(endpoint='forum.index', name='Forum', icon='fa fa-comment', active=active_forum_nav) }}
                             {{ topnav(endpoint='forum.memberlist', name='Memberlist', icon='fa fa-user') }}
                             {{ topnav(endpoint='forum.search', name='Search', icon='fa fa-search') }}
+
+                            {{ emit_event("after-last-navigation-element") }}
                         </ul>
 
                     {% if current_user and current_user.is_authenticated() %}

+ 2 - 2
flaskbb/themes/bootstrap3/templates/layout.html

@@ -43,14 +43,14 @@
                     </div>
                     <div class="collapse navbar-collapse navbar-ex1-collapse">
                         <ul class="nav navbar-nav">
-                            {{ hooks.run_template_hook("tmpl_before_navigation") | safe }}
+                            {{ emit_event("before-first-navigation-element") }}
 
                             {# active_forum_nav is set in {forum, category, topic}.html and new_{topic, post}.html #}
                             {{ topnav(endpoint='forum.index', name='Forum', icon='fa fa-comment', active=active_forum_nav) }}
                             {{ topnav(endpoint='forum.memberlist', name='Memberlist', icon='fa fa-user') }}
                             {{ topnav(endpoint='forum.search', name='Search', icon='fa fa-search') }}
 
-                            {{ hooks.run_template_hook("tmpl_after_navigation") | safe }}
+                            {{ emit_event("after-last-navigation-element") }}
                         </ul>
 
                     {% if current_user and current_user.is_authenticated() %}