123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- .. _events:
- Events
- ======
- In order to extend FlaskBB you will need to connect your callbacks with
- events.
- .. admonition:: Additional events
- If you miss an event, feel free to open a new issue or create a pull
- request. The pull request should always contain a entry in this document
- with a small example.
- An event can be created by placing a :func:`~flask_plugins.emit_event`
- function at specific places in the code which then can modify the behavior
- of FlaskBB. The same thing applies for template events.
- Python Event:
- .. sourcecode:: python
- def foobar(data)
- somedata = "foobar"
- emit_event("your-newly-contributed-event", somedata)
- Template Event:
- .. sourcecode:: html+jinja
- {{ emit_event("your-newly-contributed-template-event") }}
- Python Events
- -------------
- None at the moment.
- Template Events
- ---------------
- Template events, which are used in forms, are usually rendered after the
- hidden CSRF token field and before an submit field.
- .. data:: before-first-navigation-element
- in ``templates/layout.html``
- This event inserts a navigation link **before** the **first** navigation
- element is rendered.
- .. sourcecode:: python
- def inject_navigation_element():
- return render_template("navigation_element_snippet.html")
- connect_event("before-first-navigation-element", inject_navigation_element)
- .. data:: after-last-navigation-element
- in ``templates/layout.html``
- This event inserts a navigation link **after** the **last** navigation
- element is rendered.
- .. sourcecode:: python
- def inject_navigation_element():
- return render_template("navigation_element_snippet.html")
- connect_event("after-last-navigation-element", inject_navigation_element)
- .. data:: before-registration-form
- in ``templates/auth/register.html``
- This event is emitted in the Registration form **before** the first
- input field but after the hidden CSRF token field.
- .. sourcecode:: python
- connect_event("before-registration-form", do_before_register_form)
- .. data:: after-registration-form
- in ``templates/auth/register.html``
- This event is emitted in the Registration form **after** the last
- input field but before the submit field.
- .. sourcecode:: python
- connect_event("after-registration-form", do_after_register_form)
- .. data:: before-update-user-details
- in ``templates/user/change_user_details.html``
- This event is emitted in the Change User Details form **before** an
- input field is rendered.
- .. sourcecode:: python
- connect_event("before-update-user-details", do_before_update_user_form)
- .. data:: after-update-user-details
- in ``templates/user/change_user_details.html``
- This event is emitted in the Change User Details form **after** the last
- input field has been rendered but before the submit field.
- .. sourcecode:: python
- connect_event("after-update-user-details", do_after_update_user_form)
|