events.rst 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. .. _events:
  2. Events
  3. ======
  4. In order to extend FlaskBB you will need to connect your callbacks with
  5. events.
  6. .. admonition:: Additional events
  7. If you miss an event, feel free to open a new issue or create a pull
  8. request. The pull request should always contain a entry in this document
  9. with a small example.
  10. A event can be created by placing a :func:`~flask.ext.plugins.emit_event`
  11. function at specific places in the code which then can modify the behavior
  12. of FlaskBB. The same thing applies for template events.
  13. Python Event:
  14. .. sourcecode:: python
  15. def foobar(data)
  16. somedata = "foobar"
  17. emit_event("your-newly-contributed-event", somedata)
  18. Template Event:
  19. .. sourcecode:: html+jinja
  20. {{ emit_event("your-newly-contributed-template-event") }}
  21. Available Events
  22. ----------------
  23. Python Events
  24. ~~~~~~~~~~~~~
  25. None at the moment. :(
  26. Template Events
  27. ~~~~~~~~~~~~~~~
  28. .. data:: before-first-navigation-element
  29. This event inserts a navigation link **before** the **first** navigation
  30. element is rendered.
  31. Example:
  32. .. sourcecode:: python
  33. def inject_navigation_element():
  34. return render_template("navigation_element_snippet.html")
  35. connect_event("before-first-navigation-element", inject_navigation_element)
  36. .. data:: after-last-navigation-element
  37. This event inserts a navigation link **after** the **last** navigation
  38. element is rendered.
  39. Example:
  40. .. sourcecode:: python
  41. def inject_navigation_element():
  42. return render_template("navigation_element_snippet.html")
  43. connect_event("after-last-navigation-element", inject_navigation_element)