+{%- endif %}
diff --git a/development/auth/authentication.rst b/development/auth/authentication.rst
new file mode 100644
index 00000000..1b60844f
--- /dev/null
+++ b/development/auth/authentication.rst
@@ -0,0 +1,163 @@
+Auth API
+========
+
+This is an explanation of how to use the phpBB auth/acl API.
+
+.. contents::
+ :local:
+ :depth: 2
+
+1. Introduction
+---------------
+
+What is it?
+^^^^^^^^^^^
+
+The ``auth`` class contains methods related to authorisation of users to access various board functions, e.g., posting, viewing, replying, logging in (and out), etc. If you need to check whether a user can carry out a task or handle user login/logouts, this class is required.
+
+Initialisation
+^^^^^^^^^^^^^^
+
+To use any methods contained within the ``auth`` class, it first needs to be instantiated. This is best achieved early in the execution of the script in the following manner:
+
+.. code-block:: php
+
+ $auth = new phpbb\auth\auth();
+
+Once an instance of the class has been created you are free to call the various methods it contains. Note: if you wish to use the ``auth_admin`` methods you will need to instantiate this separately in the same way.
+
+2. Methods
+----------
+
+Following are the methods you are able to use.
+
+2.i. acl
+^^^^^^^^
+
+The ``acl`` method is the initialisation routine for all the ACL functions. It must be called before any ACL method. It takes one parameter: an associative array containing user information.
+
+.. code-block:: php
+
+ $auth->acl($userdata);
+
+Where ``$userdata`` includes at least: ``user_id``, ``user_permissions``, and ``user_type``.
+
+2.ii. acl_get
+^^^^^^^^^^^^^
+
+This method determines if a user can perform an action either globally or in a specific forum.
+
+.. code-block:: php
+
+ $result = $auth->acl_get('option'[, forum]);
+
+- ``option``: e.g., 'f_list', 'm_edit', 'a_adduser', etc. Use ``!option`` to negate.
+- ``forum`` (optional): integer ``forum_id``.
+
+Returns a positive integer if allowed, zero if denied.
+
+2.iii. acl_gets
+^^^^^^^^^^^^^^^
+
+This method checks multiple permissions at once.
+
+.. code-block:: php
+
+ $result = $auth->acl_gets('option1'[, 'option2', ..., forum]);
+
+Returns a positive integer if *any* of the permissions is granted.
+
+2.iv. acl_getf
+^^^^^^^^^^^^^^
+
+This method checks in which forums a user has a certain permission.
+
+.. code-block:: php
+
+ $result = $auth->acl_getf('option'[, clean]);
+
+- ``option``: permission string (negation with ``!`` allowed)
+- ``clean``: boolean. If true, only forums where permission is granted are returned.
+
+Returns an associative array:
+
+.. code-block:: php
+
+ array(forum_id1 => array(option => integer), forum_id2 => ...)
+
+2.v. acl_getf_global
+^^^^^^^^^^^^^^^^^^^^
+
+Checks if a user has a permission globally or in at least one forum.
+
+.. code-block:: php
+
+ $result = $auth->acl_getf_global('option');
+
+Returns a positive integer or zero.
+
+2.vi. acl_cache
+^^^^^^^^^^^^^^^
+
+**Private method.** Automatically called when needed. Generates user_permissions data.
+
+2.vii. acl_clear_prefetch
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Clears the ``user_permissions`` column in the users table.
+
+.. code-block:: php
+
+ $user_id = 2;
+ $auth->acl_clear_prefetch($user_id);
+
+Use ``$user_id = 0`` to clear cache for all users. Returns null.
+
+2.viii. acl_get_list
+^^^^^^^^^^^^^^^^^^^^
+
+Returns an array describing which users have which permissions in which forums.
+
+.. code-block:: php
+
+ $user_id = array(2, 53);
+ $permissions = array('f_list', 'f_read');
+ $forum_id = array(1, 2, 3);
+ $result = $auth->acl_get_list($user_id, $permissions, $forum_id);
+
+Parameter types:
+- ``$user_id``: ``false``, int, or array of int
+- ``$permissions``: ``false``, string, or array of string
+- ``$forum_id``: ``false``, int, or array of int
+
+2.ix. Miscellaneous
+^^^^^^^^^^^^^^^^^^^
+
+Additional methods for pulling raw permission data:
+
+.. code-block:: php
+
+ function acl_group_raw_data($group_id = false, $opts = false, $forum_id = false)
+ function acl_user_raw_data($user_id = false, $opts = false, $forum_id = false)
+ function acl_raw_data_single_user($user_id)
+ function acl_raw_data($user_id = false, $opts = false, $forum_id = false)
+ function acl_role_data($user_type, $role_type, $ug_id = false, $forum_id = false)
+
+Use ``acl_raw_data`` for general queries; others are optimized for specific data.
+
+3. Admin Related Functions
+--------------------------
+
+Additional methods are available within the ``auth_admin`` class for managing permissions, options, and user cache. It is found in:
+
+::
+
+ includes/acp/auth.php
+
+Instantiate separately:
+
+.. code-block:: php
+
+ $auth_admin = new auth_admin();
+
+This gives access to both ``auth_admin`` and ``auth`` methods.
diff --git a/development/cli/getting_started.rst b/development/cli/getting_started.rst
index 8da62f67..871b3995 100644
--- a/development/cli/getting_started.rst
+++ b/development/cli/getting_started.rst
@@ -64,11 +64,95 @@ Common options that can be used with any of phpBB's CLI commands.
:header: "Option", "Usage"
:delim: |
- --help (-h) | Display a help message
- --quiet (-q) | Do not output any message
- --verbose (-v,-vv,-vvv) | Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
- --version (-V) | Display this application version
- --ansi | Force ANSI (colors) output
- --no-ansi | Disable ANSI (colors) output
- --no-interaction (-n) | Do not ask any interactive question
- --safe-mode | Run in Safe Mode (without extensions)
+ ``--help, -h`` | Display a help message
+ ``--quiet, -q`` | Do not output any message
+ ``--verbose, -v, -vv, -vvv`` | Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
+ ``--version, -V`` | Display this application version
+ ``--ansi`` | Force ANSI (colors) output
+ ``--no-ansi`` | Disable ANSI (colors) output
+ ``--no-interaction, -n`` | Do not ask any interactive question
+ ``--safe-mode`` | Run in Safe Mode (without extensions)
+
+Install phpBB using the CLI
+===========================
+
+The phpBB CLI installer uses a YAML file populated with the data needed to configure a database for a new phpBB installation. You can find a sample configuration file in ``docs/install-config.sample.yml``. Copy this file to ``install/install-config.yml``. Adjust the sample parameters to your needs. For example, a MySQL database using the ``mysqli`` interface hosted on a ``localhost`` server with the root user ``bertie`` and password ``bertiepasswd`` and named ``bertiedb`` would look like:
+
+.. code-block:: console
+
+ installer:
+ admin:
+ name: admin
+ password: mypassword
+ email: admin@example.org
+
+ board:
+ lang: en
+ name: My Board
+ description: My amazing new phpBB board
+
+ database:
+ dbms: mysqli
+ dbhost: ~
+ dbport: ~
+ dbuser: bertie
+ dbpasswd: bertiepasswd
+ dbname: bertiedb
+ table_prefix: phpbb_
+
+ email:
+ enabled: false
+ smtp_delivery : ~
+ smtp_host: ~
+ smtp_port: ~
+ smtp_auth: ~
+ smtp_user: ~
+ smtp_pass: ~
+
+ server:
+ cookie_secure: false
+ server_protocol: http://
+ force_server_vars: false
+ server_name: localhost
+ server_port: 80
+ script_path: /
+
+ extensions: ['phpbb/viglink']
+
+You can adjust additional settings like the admin's username, email address and the board info. Make sure the file is readable by the CLI.
+
+To install the board, run the following command:
+
+.. code-block:: console
+
+ $ php install/phpbbcli.php install install-config.yml
+
+The installer will start now and show its progress during the installation.
+
+Update phpBB using the CLI
+==========================
+
+Much like installing from the CLI, phpBB can also be updated from the CLI using a YAML file with update instructions. You can find a sample update configuration file in ``docs/update-config.sample.yml``. Copy this file to ``install/update-config.yml``.
+
+.. code-block:: console
+
+ updater:
+ type: all
+ extensions: ['phpbb/viglink']
+
+In this state, the updater will update your phpBB database and it will also replace all phpBB files with the updated files, giving you a complete upgrade.
+
+However, if you have already replaced the files via the filesystem or FTP, you can choose to update the database only by changing the ``type`` from ``all` to ``db_only``:
+
+.. code-block:: console
+
+ updater:
+ type: db_only
+
+To update the board, run the following command:
+
+.. code-block:: console
+
+ $ php install/phpbbcli.php update update-config.yml
+
+The updater will start and show its progress.
\ No newline at end of file
diff --git a/development/conf.py b/development/conf.py
index bfa74170..45d49f30 100644
--- a/development/conf.py
+++ b/development/conf.py
@@ -33,7 +33,9 @@
'sensio.sphinx.configurationblock',
'sensio.sphinx.phpcode',
'sensio.sphinx.bestpractice',
- 'sphinxcontrib.phpdomain'
+ 'sphinxcontrib.phpdomain',
+ 'sphinx_multiversion',
+ 'sphinx_rtd_theme'
]
# Add any paths that contain templates here, relative to this directory.
@@ -50,16 +52,16 @@
# General information about the project.
project = u'phpBB'
-copyright = u'2015, phpBB Limited'
+copyright = u'2015 - 2021, phpBB Limited'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
-version = '3.1'
+version = '3.3'
# The full version, including alpha/beta/rc tags.
-release = '3.1.x'
+release = '3.3.x'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -91,7 +93,7 @@
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
+pygments_style = 'monokai'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
@@ -99,6 +101,10 @@
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
+# Options for sphinx_multiversion
+smv_tag_whitelist = 'None'
+smv_branch_whitelist = r'^(3.2.x|3.3.x|master)$'
+smv_latest_version = r"master"
# -- Options for HTML output ----------------------------------------------
import sphinx_rtd_theme
@@ -117,13 +123,25 @@
display_github=True,
github_repo='documentation',
github_user='phpbb',
- github_version=version + ".x",
+ github_version=release,
source_suffix='.rst',
)
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
+# Additional CSS files to include
+html_css_files = [
+ 'css/phpbb.css',
+ 'css/jquery.dataTables.min.css',
+]
+
+# Additional JS files to include
+html_js_files = [
+ 'js/jquery.dataTables.min.js',
+ 'js/main.js'
+]
+
# The name for this set of Sphinx documents. If None, it defaults to
# " v documentation".
#html_title = None
diff --git a/development/db/dbal.rst b/development/db/dbal.rst
index 73a4f6d9..34e7000d 100644
--- a/development/db/dbal.rst
+++ b/development/db/dbal.rst
@@ -2,125 +2,177 @@
Database Abstraction Layer
==========================
-phpBB uses a **d**\ ata\ **b**\ ase **a**\ bstraction **l**\ ayer to access the database instead of directly calling e.g. `mysql_query `_ functions. You usually access the DBAL using the global variable $db. This variable is defined in common.php:
+phpBB uses a **D**\ ata\ **B**\ ase **A**\ bstraction **L**\ ayer to access the database instead of directly calling e.g. `mysql_query `_ functions.
+You usually access the :abbr:`DBAL (Database Abstraction Layer)` using the global variable ``$db``.
+This variable is included from :class:`common.php` through :class:`includes/compatibility_globals.php`:
.. code-block:: php
- require($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
- // ...
- $db = new $sql_db();
+ /** @var \phpbb\db\driver\driver_interface $db */
+ $db = $phpbb_container->get('dbal.conn');
+
+Some database functions are within the base driver and others are within specific database drivers.
+Each function below will indicate whether it is defined in the base driver or in each specific driver.
+The *MySQLi* specific database driver will be used in the examples throughout this page.
+|br| All drivers are located in the :class:`\\phpbb\\db\\driver` namespace.
+|br| Base driver is located at :class:`\\phpbb\\db\\driver\\driver.php`
+|br| Specific driver is located at :class:`\\phpbb\\db\\driver\\mysqli.php`
Connecting and disconnecting
============================
-Use these methods only if you cannot include common.php (to connect) or run garbage_collection() (to disconnect; you may also use other functions that run this function, for example page_footer()).
+Use these methods only if you cannot include :class:`common.php` (to connect) or run ``garbage_collection()`` (to disconnect; you may also use other functions that run this function, for example ``page_footer()``).
sql_connect
-----------
-Connects to the database. Defined in dbal_* class.
+Connects to the database. Defined in the specific drivers.
Example:
.. code-block:: php
- include($phpbb_root_path . 'includes/db/mysql.' . $phpEx);
-
- $db = new dbal_mysql();
- // we're using bertie and bertiezilla as our example user credentials. You need to fill in your own ;D
+ // We're using bertie and bertiezilla as our example user credentials.
+ // You need to fill in your own ;D
+ $db = new \phpbb\db\driver\mysqli();
$db->sql_connect('localhost', 'bertie', 'bertiezilla', 'phpbb', '', false, false);
-
-Example using config.php:
+Example using :class:`config.php`:
.. code-block:: php
- include($phpbb_root_path . 'config.' . $phpEx);
- include($phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx);
-
- $db = new $sql_db();
+ // Extract the config.php file's data
+ $phpbb_config_php_file = new \phpbb\config_php_file($phpbb_root_path, $phpEx);
+ extract($phpbb_config_php_file->get_all());
+ $db = new $dbms();
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false);
// We do not need this any longer, unset for safety purposes
unset($dbpasswd);
-**Important**: The variable $dbms must be set to the name of the used driver. This variable is needed in /includes/db/dbal.php to set $sql_db.
-
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
- Host | The host of the database. When using config.php you should use $dbhost instead.
- Database User | The database user to connect to the database. When using config.php you should use $dbuser instead.
- Database Password | The password for the user to connect to the database. When using config.php you should use $dbpasswd instead.
- Database Name | The database where the phpBB tables are located. When using config.php you should use $dbname instead.
- Database Port (optional) | The port to the database server. Leave empty/false to use the default port. When using config.php you should use $dbport instead.
- Persistance (optional) | Database connection persistence, defaults to false.
- New Link (optional) | Use a new connection to the database for this instance of the DBAL. Defaults to false.
+ Host # The host of the database. |br| When using config.php you should use $dbhost instead.
+ Database User # The database user to connect to the database. |br| When using config.php you should use $dbuser instead.
+ Database Password # The password for the user to connect to the database. |br| When using config.php you should use $dbpasswd instead.
+ Database Name # The database where the phpBB tables are located. |br| When using config.php you should use $dbname instead.
+ Database Port (optional) # The port to the database server. |br| Leave empty/false to use the default port. |br| When using config.php you should use $dbport instead.
+ Persistence (optional) # Database connection persistence, defaults to false.
+ New Link (optional) # Use a new connection to the database for this instance of the DBAL. |br| Defaults to false.
sql_close
---------
-Disconnects from the DB. Defined in dbal class (_sql_close is defined in dbal_* class).
+Disconnects from the DB. Defined in the base driver (``_sql_close`` is defined in the specific drivers).
Example: ``$db->sql_close();``
Preparing SQL queries
========================
+sql_build_query
+---------------
+Builds a full SQL statement from an array.
+This function should be used if you need to JOIN on more than one table to ensure the resulting statement works on all supported databases. Defined in the base driver.
+
+Possible types of queries: SELECT, SELECT_DISTINCT.
+|br| Required keys are SELECT and FROM.
+|br| Optional keys are LEFT_JOIN, WHERE, GROUP_BY and ORDER_BY.
+
+Example:
+
+.. code-block:: php
+
+ // Array with data for the full SQL statement
+ $sql_array = [
+ 'SELECT' => 'f.*, ft.mark_time',
+
+ 'FROM' => [
+ FORUMS_WATCH_TABLE => 'fw',
+ FORUMS_TABLE => 'f',
+ ],
+
+ 'LEFT_JOIN' => [
+ [
+ 'FROM' => [FORUMS_TRACK_TABLE => 'ft'],
+ 'ON' => 'ft.forum_id = f.forum_id
+ AND ft.user_id = ' . (int) $user->data['user_id'],
+ ],
+ ],
+
+ 'WHERE' => 'f.forum_id = fw.forum_id
+ AND fw.user_id = ' . (int) $user->data['user_id'],
+
+ 'ORDER_BY' => 'f.left_id',
+ ];
+
+ // Build the SQL statement
+ $sql = $db->sql_build_query('SELECT', $sql_array);
+
+ // Now run the query...
+ $result = $db->sql_query($sql);
+
+Parameters
+^^^^^^^^^^
+.. csv-table::
+ :header: "Parameter", "Usage"
+ :delim: #
+
+ Query Type # Type of query which needs to be created (SELECT, SELECT_DISTINCT)
+ Associative array # An associative array with the items to add to the query. |br| SELECT and FROM are required. |br| LEFT_JOIN, WHERE, GROUP_BY and ORDER_BY are optional.
+
sql_build_array
---------------
-Builds SQL statement from array. Possible types of queries: INSERT, INSERT_SELECT, UPDATE, SELECT. Defined in dbal class.
+Builds part of a SQL statement from an array. Possible types of queries: INSERT, INSERT_SELECT, UPDATE, SELECT. Defined in the base driver.
Example:
.. code-block:: php
- //Array with the data to insert
- $data = array(
+ // Array with the data to build
+ $data = [
'username' => 'Bertie',
'email' => 'bertie@example.com',
- );
+ ];
- // First doing a select with this data.
- // Note: By using the SELECT type, it uses always AND in the query.
+ // First executing a SELECT query.
+ // Note: By using the SELECT type, it always uses AND in the conditions.
$sql = 'SELECT user_password
FROM ' . USERS_TABLE . '
WHERE ' . $db->sql_build_array('SELECT', $data);
$result = $db->sql_query($sql);
- // And doing an update query: (Using the same data as for SELECT)
- $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $data) . ' WHERE user_id = ' . (int) $user_id;
+ // And executing an UPDATE query: (Using the same data as for SELECT)
+ $sql = 'UPDATE ' . USERS_TABLE . '
+ SET ' . $db->sql_build_array('UPDATE', $data) . '
+ WHERE user_id = ' . (int) $user_id;
$db->sql_query($sql);
- // And as last, a insert query
+ // And lastly, executing an INSERT query
$sql = 'INSERT INTO ' . USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $data);
$db->sql_query($sql);
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
- Query Type | Type of query which needs to be created (UPDATE, INSERT, INSERT_SELECT or SELECT)
- Associative array (optional) | An associative array with the items to add to the query. The key of the array is the field name, the value of the array is the value for that field. If left empty, ''false'' will be returned.
-
-..
- [sql_build_query]
- Builds full SQL statement from array. Possible types of queries: SELECT, SELECT_DISTINCT Defined in dbal class.
- See [[db.sql_build_query|dbal::sql_build_query]] manual page.
+ Query Type # Type of query which needs to be created (UPDATE, INSERT, INSERT_SELECT or SELECT)
+ Associative array (optional) # An associative array with the items to add to the query. |br| The key of the array is the field name, the value of the array is the value for that field. |br| If left empty, ''false'' will be returned.
sql_in_set
----------
-Builds IN, NOT IN, = and <> sql comparison string. Defined in dbal class.
+Builds IN, NOT IN, = and <> sql comparison string. Defined in the base driver.
Example:
.. code-block:: php
- $sql_in = array(2, 58, 62);
+ $sql_in = [2, 58, 62];
$sql = 'SELECT *
FROM ' . USERS_TABLE . '
@@ -128,7 +180,7 @@ Example:
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
:delim: |
@@ -141,7 +193,7 @@ Parameters
sql_escape
----------
-Escapes a string in a SQL query. sql_escape is different for every DBAL driver and written specially for that driver, to be sure all characters that need escaping are escaped. Defined in dbal_* class.
+Escapes a string in a SQL query. ``sql_escape`` is different for every DBAL driver and written specially for that driver, to be sure all characters that need escaping are escaped. Defined in the specific drivers.
Example:
@@ -150,39 +202,101 @@ Example:
$sql = 'SELECT *
FROM ' . POSTS_TABLE . '
WHERE post_id = ' . (int) $integer . "
- AND post_text = '" . $db->sql_escape($data) . "'";
+ AND post_text = '" . $db->sql_escape($string) . "'";
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
:delim: |
String | The string that needs to be escaped.
+sql_like_expression
+-------------------
+Correctly adjust LIKE statements for special characters.
+This should be used to ensure the resulting statement works on all databases.
+Defined in the base driver (``_sql_like_expression`` is defined in the specific drivers).
+
+The ``sql_not_like_expression`` is identical to ``sql_like_expression`` apart from that it builds a NOT LIKE statement.
+
+Parameters
+^^^^^^^^^^
+.. csv-table::
+ :header: "Parameter", "Usage"
+ :delim: |
+
+ Expression | The expression to use. Every wildcard is escaped, except $db->get_any_char() and $db->get_one_char()
+
+get_one_char
+^^^^^^^^^^^^
+Wildcards for matching exactly one (``_``) character within LIKE expressions.
+
+get_any_char
+^^^^^^^^^^^^
+Wildcards for matching any (``%``) character within LIKE expressions
+
+Example:
+
+.. code-block:: php
+
+ $username = 'Bert';
+
+ // Lets try to find "Bertie"
+ $sql = 'SELECT username, user_id, user_colour
+ FROM ' . USERS_TABLE . '
+ WHERE username_clean ' . $db->sql_like_expression(utf8_clean_string($username) . $db->get_any_char());
+ $result = $db->sql_query($sql);
+
+sql_lower_text
+--------------
+For running LOWER on a database text column, so it returns lowered text strings. Defined in the base driver.
+
+Example:
+
+.. code-block:: php
+
+ $keyword = 'Bertie';
+ $keyword = strtolower($keyword);
+
+ $like = $db->sql_like_expression($db->get_any_char() . $keyword . $db->get_any_char());
+
+ $sql = 'SELECT *
+ FROM ' . LOGS_TABLE . '
+ WHERE ' . $db->sql_lower_text('log_data') . ' ' . $like;
+ $result = $db->sql_query_limit($sql, 10);
+
+Parameters
+^^^^^^^^^^
+.. csv-table::
+ :header: "Parameter", "Usage"
+ :delim: |
+
+ Column name | The column name to LOWER the value for.
+
Running SQL queries
===================
sql_query
---------
-For selecting basic data from the database, the function sql_query() is enough. If you want to use any variable in your query, you should use (If it isn't a integer) [[Database_Abstraction_Layer#sql_escape|$db->sql_escape()]] to be sure the data is safe. Defined in dbal_* class.
+For selecting basic data from the database, the function ``sql_query()`` is enough. If you want to use any variable in your query, you should use (if it isn't an integer) ``$db->sql_escape()`` to be sure the data is safe. Defined in the specific drivers.
Example:
.. code-block:: php
$integer = 0;
- $data = "This is ' some data";
+ $string = "This is ' some string";
$sql = 'SELECT *
FROM ' . POSTS_TABLE . '
WHERE post_id = ' . (int) $integer . "
- AND post_text = '" . $db->sql_escape($data) . "'";
+ AND post_text = '" . $db->sql_escape($string) . "'";
$result = $db->sql_query($sql);
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
:delim: |
@@ -192,13 +306,14 @@ Parameters
sql_query_limit
---------------
-Gets/changes/deletes only selected number of rows. Defined in dbal class (_sql_query_limit is defined in dbal_* class).
+Gets/changes/deletes only selected number of rows. Defined in the base driver (``_sql_query_limit`` is defined in the specific drivers).
Example:
.. code-block:: php
$start = 25;
+
$sql = 'SELECT *
FROM ' . POSTS_TABLE . '
WHERE topic_id = 1045';
@@ -206,7 +321,7 @@ Example:
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
:delim: |
@@ -218,31 +333,31 @@ Parameters
sql_multi_insert
----------------
-Builds and runs more than one insert statement. Defined in dbal class.
+Builds and runs more than one INSERT statement. Defined in the base driver.
Example:
.. code-block:: php
// Users which will be added to group
- $users = array(11, 57, 87, 98, 154, 211);
- $sql_ary = array();
+ $users = [11, 57, 87, 98, 154, 211];
+ $sql_ary = [];
foreach ($users as $user_id)
{
- $sql_ary[] = array(
- 'user_id' => (int) $user_id,
- 'group_id' => 154,
+ $sql_ary[] = [
+ 'user_id' => (int) $user_id,
+ 'group_id' => 154,
'group_leader' => 0,
'user_pending' => 0,
- );
+ ];
}
$db->sql_multi_insert(USER_GROUP_TABLE, $sql_ary);
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
:delim: |
@@ -252,7 +367,7 @@ Parameters
Methods useful after running INSERT and UPDATE queries
======================================================
-All methods in this part of article are defined in dbal_* class.
+All methods in this part of article are defined in the specific drivers.
sql_affectedrows
----------------
@@ -268,6 +383,13 @@ Example:
$affected_rows = $db->sql_affectedrows();
+.. warning::
+ Be cautious when using ``sql_affectedrows()`` to determine the number of rows affected by your query, especially with **SELECT** queries.
+ This function's behavior can differ depending on the used database driver and whether the query was cached.
+
+ Do not rely solely on ``sql_affectedrows()`` to confirm the number of impacted rows. Consider alternative approaches
+ like checking the number of rows returned by `sql_fetchrow`_ or `sql_fetchrowset`_.
+
sql_nextid
----------
Retrieves the ID generated for an AUTO_INCREMENT column by the previous INSERT query.
@@ -286,7 +408,7 @@ Methods useful after running SELECT queries
sql_fetchfield
--------------
-Fetches field. Defined in dbal class.
+Fetches field. Defined in the base driver.
Example:
@@ -296,38 +418,38 @@ Example:
FROM ' . POSTS_TABLE . "
WHERE topic_id = $topic_id
AND post_time >= $min_post_time
- " . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND post_approved = 1');
+ " . (($auth->acl_get('m_approve', $forum_id)) ? '' : 'AND post_approved = 1');
$result = $db->sql_query($sql);
$total_posts = (int) $db->sql_fetchfield('num_posts');
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
- Field | Name of the field that needs to be fetched.
- Row number (Optional) | If false, the current row is used, else it is pointing to the row (zero-based).
- Result (Optional) | The result that is being evaluated. This result comes from a call to the sql_query method. If left empty the last result will be called.
+ Field # Name of the field that needs to be fetched.
+ Row number (Optional) # If false, the current row is used, else it is pointing to the row (zero-based).
+ Result (Optional) # The result that is being evaluated. |br| This result comes from a call to the sql_query method. |br| If left empty the last result will be called.
sql_fetchrowset
---------------
-Returns an array with the result of using the sql_fetchrow method on every row. Defined in dbal class.
+Returns an array with the result of using the ``sql_fetchrow`` method on every row. Defined in the base driver.
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
- Result (Optional) | The result that is being evaluated. This result comes from a call to the sql_query-Method. If left empty the last result will be called.
+ Result (Optional) # The result that is being evaluated. |br| This result comes from a call to the sql_query method. |br| If left empty the last result will be called.
sql_fetchrow
------------
-Fetches current row. Defined in dbal_* class.
+Fetches current row. Defined in the specific drivers.
Example:
@@ -356,30 +478,30 @@ Example with a while-loop:
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
- Result (Optional) | The result that is being evaluated. The result comes from a call to the sql_query method. If left empty the last result will be called.
+ Result (Optional) # The result that is being evaluated. |br| The result comes from a call to the sql_query method. |br| If left empty the last result will be called.
sql_rowseek
-----------
-Seeks to given row number. The row number is zero-based. Defined in dbal_* class.
+Seeks to given row number. The row number is zero-based. Defined in the specific drivers.
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
- Row number | The number of the row which needs to be found (zero-based).
- Result | The result that is being evaluted. This result comes from a call to sql_query method. If left empty the last result will be called.
+ Row number # The number of the row which needs to be found (zero-based).
+ Result # The result that is being evaluated. |br| This result comes from a call to sql_query method. |br| If left empty the last result will be called.
sql_freeresult
--------------
-Clears result of SELECT query. Defined in dbal_* class.
+Clears result of SELECT query. Defined in the specific drivers.
Example:
@@ -388,7 +510,7 @@ Example:
$sql = 'SELECT *
FROM ' . POSTS_TABLE . '
WHERE post_id = ' . (int) $integer . "
- AND post_text = '" . $db->sql_escape($data) . "'";
+ AND post_text = '" . $db->sql_escape($string) . "'";
$result = $db->sql_query($sql);
// Fetch the data
@@ -399,9 +521,13 @@ Example:
Parameters
-++++++++++
+^^^^^^^^^^
.. csv-table::
:header: "Parameter", "Usage"
- :delim: |
+ :delim: #
+
+ Result (Optional) # The result that is being evaluated. |br| This result comes from a call to the sql_query method. |br| If left empty the last result will be called.
+
+.. |br| raw:: html
- Result (Optional) | The result that is being evaluated. This result comes from a call to the sql_query method. If left empty the last result will be called.
+
diff --git a/development/db/structured_conditionals.rst b/development/db/structured_conditionals.rst
new file mode 100644
index 00000000..8c5323fa
--- /dev/null
+++ b/development/db/structured_conditionals.rst
@@ -0,0 +1,524 @@
+============================
+The boolean structure system
+============================
+
+Intro
+=====
+
+This feature helps extension authors to edit SQL queries in an easy and quick way without the need to parse the SQL queries, most likely, using regex and complex text editing.
+Instead of a single string, this allows editing the WHERE clause in an SQL query by adding, removing and editing php arrays. Using this method, finding the portion of the query to edit should be much more straightforward.
+
+If done correctly, incompatibilities between extensions that use the same SQL query can be averted. Where a regex match could easly force the author into making very complex matches. With this, finding and replacing the content is just tree-like transversal as they are only arrays. Compatibility between extensions becomes much easier.
+
+Althought this will definitely reduce the probability of inter-incompatibilities between extensions, it is not magic. This is just a tool that helps solving the same issue.
+
+
+Main use-case ideals
+====================
+
+1. To flexibly the build of the WHERE clause in SQL queries
+2. To ease, simplify and prevent errors when doing SQL query editing by phpBB's extensions
+
+Why not...
+==========
+
+1. Doctrine dbal -> The issue with Doctrine dbal is that its query builder is not ready for the 2nd major use case listed above. There is no way of altering an SQL query. If you want to alter something, you have to rebuild the whole SQL query.
+2. Linq -> I didn't know the assistance of Linq until today. From what I searched, not only it has the same issue as Doctrine, while also its interface is unnecessarily complex for the common folk who just wants to change a small amount of information.
+
+
+The Data structure
+==================
+
+This builder uses a tree-like information organization for the boolean comparisons in SQL queries.
+Each node of such tree is a php array.
+Each node can have one of 3 formats:
+
+type1
+-----
+
+The 1st type contains 3 elements:
+
+Left hand, operator, right hand.
+E.g.
+
+.. code-block:: php
+
+ ['f.forum_id', '=', 1]
+ ['f.forum_id', '<>', 1]
+ ['f.forum_id', 'IN', []]
+ ['f.forum_id', 'IN', [1,2,5,6,7]]
+ ['f.forum_id', 'NOT_IN', [1,2,5,6,7]]
+ ['f.forum_id', 'IS', NULL]
+
+For the operator, there are 6 special values (everything else is taken literally):
+
+1. IN
+2. NOT_IN
+3. LIKE
+4. NOT_LIKE
+5. IS
+6. IS_NOT
+
+All of them are special because they call the dbal's methods to process the data.
+For example, if you use the **IN** operator, it calls $db->sql_in_set() with the right hand data.
+
+type2
+-----
+
+The 2nd type is variable length. It is identified by having the string 'AND', 'OR' or 'NOT' in the first position of the array.
+
+The first element contains the boolean operator that is used to join together all its other elements.
+
+E.g.
+
+.. code-block:: php
+
+ ['OR',
+ ['t.forum_id', '=', 3],
+ ['t.topic_type', '=', 0],
+ ['t.topic_id', 'IN', [2,3,4]],
+ )
+
+which outputs (after reindenting)
+
+.. code-block:: SQL
+
+ t.forum_id = 3 OR
+ t.topic_type = 0 OR
+ t.topic_id IN (2, 3, 4)
+
+
+type3
+-----
+
+The 3rd type has 5 elements
+Left hand, operator, sub query operator, sub query SELECT type, the sub query.
+
+This is used when you require a subquery in your DB query.
+Essentially, what this does is that it will call sql_build_query() recursively with the 4th and the 5th elements.
+
+.. code-block:: php
+
+ ['f.forum_id', '=', 'ANY', 'SELECT', [
+ 'SELECT' => [/*...*/],
+ 'FROM' => [/*...*/],
+ ]]
+
+ ['f.forum_id', '', 'IN', 'SELECT', [
+ 'SELECT' => [/*...*/],
+ 'FROM' => [/*...*/],
+ ]]
+
+Why arrays?
+===========
+
+The motivation to use arrays comes from the needs:
+
+1. This is information that is going to be used quite a lot.
+ 1.1. In the ideal case, every SQL query with either an ON or a WHERE clause (just about all) will use this.
+2. The implementation on which this works on top of already uses arrays.
+3. Editing arrays is a quite trivial task for any piece of code.
+
+Why not Objects?
+----------------
+
+1. Tranversing Objects forming a tree is **seriously slow** in php.
+ 1.1. This wouldn't much be noticed on vanilla phpBB but, as you add extensions, it would easily be dead slow.
+2. Doing this with immutable objects is completely unviable.
+ 2.1. It would require the code that manipulates it to know how to rebuild everything related for almost any change.
+3. Mutable objects with an easy-enough-to-use API is hell to design.
+ 3.1. How would a script know how to specify the changes that are required to make without using a complex API?
+ 3.2. How would a user script swiftly test if a query has the correct format?
+
+Mostly due to those reasons above arrays was decided as the medium.
+
+How to use
+==========
+
+This system is used when building queries using the db's sql_build_query() method.
+
+While building the array to send to it as the 2nd parameter, when writing the WHERE clause, you may use this system instead of simply typing a string or making your own accumulator of conditionals.
+
+For the sake of the examples below, I will simulate an execution that exists in phpBB and assume that the query has to go through an event that does a small change to it.
+
+
+How to use in phpBB
+===================
+In the ideal situation, all DB queries that may use multiple stages where SQL data is manipulated or changed should use this, specially if they also go through an event.
+
+
+Translate SQL to the structured conditional
+-------------------------------------------
+Here's a step-by-step guide to transform a query made using a string into the format that this feature uses.
+
+Now imagine you want something like this (source: viewforum.php:277):
+
+.. code-block:: php
+
+ $sql = 'SELECT COUNT(topic_id) AS num_topics
+ FROM ' . TOPICS_TABLE . "
+ WHERE forum_id = $forum_id
+ AND (topic_last_post_time >= $min_post_time
+ OR topic_type = " . POST_ANNOUNCE . '
+ OR topic_type = ' . POST_GLOBAL . ')
+ AND ' . $phpbb_content_visibility->get_visibility_sql('topic', $forum_id);
+
+
+Looks quite direct to the point, right?
+OK, **step1**, prepare it for sql_build_query();
+
+According to the manual for this transformation, it should look like this:
+
+
+.. code-block:: php
+
+ $sql_ary = [
+ 'SELECT' => 'COUNT(topic_id) AS num_topics',
+ 'FROM' => [
+ TOPICS_TABLE => '',
+ ],
+ 'WHERE' => "forum_id = $forum_id
+ AND (topic_last_post_time >= $min_post_time
+ OR topic_type = " . POST_ANNOUNCE . '
+ OR topic_type = ' . POST_GLOBAL . ')
+ AND ' . $phpbb_content_visibility->get_visibility_sql('topic', $forum_id),
+ ];
+
+ $db->sql_build_query('SELECT', $sql_ary);
+
+That's fine and all but it does not use this processor yet.
+**Step 2**
+Now to focus on the WHERE clause only
+
+Hum... Let's see... There's a set of AND's to join in. Let's start there.
+
+.. code-block:: php
+
+ // ...
+ 'WHERE' => ['AND,
+ "forum_id = $forum_id",
+ "(topic_last_post_time >= $min_post_time
+ OR topic_type = " . POST_ANNOUNCE . '
+ OR topic_type = ' . POST_GLOBAL . ')',
+ $phpbb_content_visibility->get_visibility_sql('topic', $forum_id)
+ ],
+ // ...
+
+Inside the set of AND's, one of them is a set of OR's.
+
+.. code-block:: php
+
+ // ...
+ 'WHERE' => ['AND,
+ "forum_id = $forum_id",
+ ['OR',
+ "topic_last_post_time >= $min_post_time",
+ 'topic_type = ' . POST_ANNOUNCE,
+ 'topic_type = ' . POST_GLOBAL,
+ ),
+ $phpbb_content_visibility->get_visibility_sql('topic', $forum_id)
+ ),
+ // ...
+
+There! Better! But it still isn't that easy to work with. There's a string for each comparison. BUT! If I use the type1 array mentioned above, I can separate each one of those into a single thing! In this case...
+
+.. code-block:: php
+
+ // ...
+ 'WHERE' => ['AND,
+ ['forum_id', '=', $forum_id],
+ ['OR',
+ ['topic_last_post_time', '>=', $min_post_time],
+ ['topic_type', '=', POST_ANNOUNCE],
+ ['topic_type', '=', POST_GLOBAL],
+ ),
+ [$phpbb_content_visibility->get_visibility_sql('topic', $forum_id)],
+ // ...
+
+There you go! No variable interpolation, no explicit string concatenation, in case of a requirement to build it or change it later, it becomes a very straightforward task (see next section) and all data is properly escaped.
+
+Just for the last piece of code in this section, here's how the full SQL query should be written when using this system:
+
+
+.. code-block:: php
+
+ $sql_ary = [
+ 'SELECT' => 'COUNT(topic_id) AS num_topics',
+ 'FROM' => [
+ TOPICS_TABLE => '',
+ ],
+ 'WHERE' => ['AND,
+ ['forum_id', '=', $forum_id],
+ ['OR',
+ ['topic_last_post_time', '>=', $min_post_time],
+ ['topic_type', '=', POST_ANNOUNCE],
+ ['topic_type', '=', POST_GLOBAL],
+ ],
+ [$phpbb_content_visibility->get_visibility_sql('topic', $forum_id)],
+ ],
+ ];
+
+ $db->sql_build_query('SELECT', $sql_ary);
+
+
+Modify the structured conditional in an extension
+-------------------------------------------------
+One of the major reasons why this feature is designed in this very way is mostly because of what is exemplified in this section.
+Same as the sub-section above, I will present you practical example(s) on how to use this feature.
+Piking up the code above as an example:
+
+.. code-block:: php
+
+ $sql = [
+ 'SELECT' => 'COUNT(topic_id) AS num_topics',
+ 'FROM' => [
+ TOPICS_TABLE => '',
+ ],
+ 'WHERE' => ['AND,
+ ['forum_id', '=', $forum_id],
+ ['OR',
+ ['topic_last_post_time', '>=', $min_post_time],
+ ['topic_type', '=', POST_ANNOUNCE],
+ ['topic_type', '=', POST_GLOBAL],
+ ),
+ [$phpbb_content_visibility->get_visibility_sql('topic', $forum_id)]
+ ],
+ ];
+
+
+Imagine you are building an extension that requires modifying that query above. For example, you want to make topic_last_post_time as a forced requirement for this query.
+In other words, you want the query to be like this:
+
+.. code-block:: php
+
+ $sql = [
+ 'SELECT' => 'COUNT(topic_id) AS num_topics',
+ 'FROM' => [
+ TOPICS_TABLE => '',
+ ],
+ 'WHERE' => ['AND,
+ ['forum_id', '=', $forum_id],
+ ['topic_last_post_time', '>=', $min_post_time],
+ [$phpbb_content_visibility->get_visibility_sql('topic', $forum_id)],
+ ],
+ ];
+
+Just as a good practice and to help other extension writers to modify this query in an easier way, let's make it like this instead:
+
+.. code-block:: php
+
+ $sql = [
+ 'SELECT' => 'COUNT(topic_id) AS num_topics',
+ 'FROM' => [
+ TOPICS_TABLE => '',
+ ],
+ 'WHERE' => ['AND,
+ ['forum_id', '=', $forum_id],
+ ['OR',
+ ['topic_last_post_time', '>=', $min_post_time],
+ ],
+ [$phpbb_content_visibility->get_visibility_sql('topic', $forum_id)],
+ ],
+ ];
+
+Do notice that I kept the OR clause. This is just so that these changes have as little chance as possible to break other extensions.
+Anyway, moving on.
+
+In your function:
+
+.. code-block:: php
+
+ function eventGrabber($event)
+ {
+
+You will have an $event['sql'] which will contain the query.
+Below, I use nesting of "if", if you prefer, you may use exceptions instead.
+In order to access what we want, we can do it like this:
+
+.. code-block:: php
+
+ // May be required by PHP
+ $sql = $event['sql'];
+ // Is the element I expect there?
+ if(isset($sql['WHERE'][2][0]))
+ {
+ if(is_array($sql['WHERE'][2]))
+ {
+ if($sql['WHERE'][2][0] === 'OR')
+ {
+ // This should be the array with the OR I wanted
+ if(isset($sql['WHERE'][2][0][1]) && $sql['WHERE'][2][0][1][0] === 'topic_last_post_time')
+ {
+ // Confirmed to be what I want it to be!
+ // this array_slice() will remove the elements after the above-mentioned topic_last_post_time
+ $sql['WHERE'][2][0][1] = array_slice($sql['WHERE'][2][0][1], 1);
+
+ $event['sql'] = $sql;
+ return;
+ }
+ }
+ else
+ {
+ // For example, write code to log this happened so that an admin can help you making your
+ // extension compatible with other extensions or even for you to be warned about phpBB changes.
+ }
+ }
+ else
+ {
+ // For example, write code to log this happened so that an admin can help you making your
+ // extension compatible with other extensions or even for you to be warned about phpBB changes.
+ }
+ }
+ else
+ {
+ // For example, write code to log this happened so that an admin can help you making your
+ // extension compatible with other extensions or even for you to be warned about phpBB changes.
+ }
+
+
+
+If you are thinking:
+Eh?!??!? That's too complicated... How is this better than before?!?!
+
+Well, I'm just safeguarding myself above. I'm just doing in a way to make sure it will surely work.
+If you don't feel like it, however, then this is enough:
+
+.. code-block:: php
+
+ function myEventListener($event)
+ {
+ $sql = $event['sql'];
+ $sql['WHERE'][2][0][1] = array_slice($sql['WHERE'][2][0][1], 1);
+ $event['sql'] = $sql;
+ }
+
+Or to protect yourself slightly:
+
+.. code-block:: php
+
+ function myEventListener($event)
+ {
+ $sql = $event['sql'];
+ if(!empty($sql['WHERE'][2][0][1]) && is_array($sql['WHERE'][2][0][1]))
+ {
+ $sql['WHERE'][2][0][1] = array_slice($sql['WHERE'][2][0][1], 1);
+ }
+ else
+ {
+ // For example, write code to log this happened so that an admin can help you making your
+ // extension compatible with other extensions or even for you to be warned about phpBB changes.
+ }
+ $event['sql'] = $sql;
+ }
+
+I've shown you the above one first because I wanted you to experience the will to do everybody's work the easiest and most flexible way.
+
+**Example 2:**
+
+Now imagining that you want to add a condition to the OR statement list.
+For example, you want sticky posts to not be counted.
+
+The long/self.protected way uses just about the same formula as 3 samples above.
+The short way is about as much as this:
+
+.. code-block:: php
+
+ function myEventListener($event)
+ {
+ $sql = $event['sql'];
+ if(!empty($sql['WHERE'][2][0][1]) && is_array($sql['WHERE'][2][0][1]))
+ {
+ $sql['WHERE'][2][0][1][] = ['topic_type', '=', POST_STICKY];
+ }
+ else
+ {
+ // For example, write code to log this happened so that an admin can help you making your
+ // extension compatible with other extensions or even for you to be warned about phpBB changes.
+ }
+ $event['sql'] = $sql;
+ }
+
+... And you are done. No Regex, no need to write down your own 'OR' or anything like that.
+As a bonus, if what you write follows basic rules on how SQL is written, it is guaranteed that the output will be valid SQL.
+
+Usage examples
+==============
+Here I present code samples that exemplify how to use this system.
+
+In phpBB's code
+---------------
+
+
+.. code-block:: php
+
+ $db->sql_build_query('SELECT', [
+ 'SELECT' => ['f.forum_id', 'f.forum_title'],
+ 'FROM' => [
+ FORUMS_TABLE => 'f',
+ TOPICS_TABLE => 't',
+ ],
+ 'WHERE' => [
+ 'AND',
+ ['t.topic_poster', '=', 1],
+ ['f.forum_id', '>=', 'ALL', 'SELECT', [
+ 'SELECT' => ['t.forum_id'],
+ 'FROM' => [TOPICS_TABLE => 't'],
+ 'WHERE' => ['t.topic_poster', '=', 1],
+ ],
+ ],
+ );
+
+
+
+.. code-block:: php
+
+ ['OR',
+ ['t.forum_id', '=', 3],
+ ['t.topic_type', '=', 0],
+ )
+
+.. code-block:: php
+
+ ['AND,
+ ['t.forum_id', '=', 3],
+ ['t.topic_type', '=', 0],
+ ['t.topic_id', '>', 5],
+ ['t.topic_poster', '<>', 5],
+ ),
+
+.. code-block:: php
+
+ ['AND,
+ ['t.forum_id', '=', 3],
+ ['NOT',
+ ['t.topic_type', '=', 0],
+ ],
+ ['t.topic_id', '>', 5],
+ ['t.topic_poster', '<>', 5],
+ ],
+
+
+.. code-block:: php
+
+ t.forum_id = 3
+ AND NOT ( t.topic_type = 0 )
+ AND t.topic_id > 5
+ AND t.topic_poster <> 5
+
+
+In phpBB's extensions code
+--------------------------
+
+.. code-block:: php
+
+ function myEventListener($event)
+ {
+ $sql = $event['sql'];
+ $sql['WHERE'][2][0][1] = array_slice($sql['WHERE'][2][0][1], 1);
+ $event['sql'] = $sql;
+ }
+
+
+
+
+More will come as people submit more useful examples
diff --git a/development/development/coding_guidelines.rst b/development/development/coding_guidelines.rst
index 23eb5695..9a7a0c10 100644
--- a/development/development/coding_guidelines.rst
+++ b/development/development/coding_guidelines.rst
@@ -7,6 +7,8 @@ latest versions on area51:
* Rules for `Olympus (3.0.x) code `_
* Rules for `Ascraeus (3.1.x) code `_
+* Rules for `Rhea (3.2.x) code `_
+* Rules for `Proteus (3.3.x) code `_
These documents are automatically updated when changes are made to them.
diff --git a/development/development/git.rst b/development/development/git.rst
index 062dd83f..70ea3a5d 100644
--- a/development/development/git.rst
+++ b/development/development/git.rst
@@ -22,7 +22,7 @@ phpBB Repository
----------------
Forking and Cloning
-+++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^
To contribute to phpBB development, you should sign up for a
`GitHub `_ user account if you don't already have one.
@@ -35,7 +35,7 @@ Clone your fork of phpBB's repository to your computer:
See `Set Up Git `_ for help on setting up Git.
Branches
-++++++++
+^^^^^^^^
- `master `_ - The latest unstable development version with new features etc.
- `3.3.x `_ - Development branch of the 3.3 line. Bug fixes and minor feature changes are applied here.
- `3.2.x `_ - Development branch of the 3.2 line. Bug fixes and minor feature changes are applied here.
@@ -44,7 +44,7 @@ Branches
- `2.0.x `_ - Development branch of the deprecated 2.0 line.
Tags
-++++
+^^^^
Tags are released versions. Stable ones get merged into the master branch.
- release-3.Y.Z-aX - Alpha release X of the 3.Y.Z line.
@@ -58,7 +58,7 @@ will be merged into higher branches, including master. All feature development
should take place in master. Read more about the workflow in the next section.
How to contribute?
-++++++++++++++++++
+^^^^^^^^^^^^^^^^^^
When fixing a bug, please post in the `bug tracker `__.
When adding a feature to 3.x post your patch for review in a new topic on the
`[3.x] Discussion forum `__ at
@@ -112,7 +112,7 @@ An example:
implements the phpbb_request_interface which is available for easy mocking
of input in tests.
- PHPBB3-1234
+ PHPBB-1234
The structure of a commit message which is verified by the commit-msg hook is as follows:
@@ -139,7 +139,7 @@ Review `Forking and Cloning`_.
Configuration
-------------
Git
-+++
+^^^
Add your Username to Git on your system:
::
@@ -163,7 +163,7 @@ Add the upstream remote (you can change 'upstream' to whatever you like):
fork of the phpBB GitHub repo will, by default, use the *origin* remote url.
Composer
-++++++++
+^^^^^^^^
To be able to run an installation from the repo (and not from a pre-built package) you
need to run the following shell commands to install phpBB's dependencies.
@@ -180,7 +180,7 @@ Ignore any *abandoned package* warnings.
further information.
Hooks
-+++++
+^^^^^
The phpBB repository contains some client-side hooks that can aid development. They are
located in the ``git-tools/hooks`` directory. These hooks do things like preparing and
validating commit messages, checking for PHP syntax errors. There is a script to set
@@ -214,7 +214,7 @@ Workflow
---------
Pulling in upstream changes
-+++++++++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
You will need to merge in changes made to the upstream repository for them to appear in
your fork, the steps to do this follow. We're assuming you are performing this on the **master**
branch, but it could be a bug fix branch or a develop release branch, so ensure you are on
@@ -236,7 +236,7 @@ different branches this section refers to later.
.. image:: images/Phpbb-git-workflow.png
Bug fixing
-++++++++++
+^^^^^^^^^^
Ensure you are using the correct develop branch (e.g. *3.2.x*) first and not the *master*
branch. In this example we are using 3.2.x.
@@ -252,7 +252,7 @@ branch. In this example we are using 3.2.x.
git push origin ticket/12345 # Push the branch back to GitHub
Starting a new feature
-++++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^^^
Ensure you are using the correct develop branch (e.g. *master*) first. In this example
we are using master.
@@ -267,7 +267,7 @@ we are using master.
git push origin feature/my-fancy-new-feature # Push the branch back to GitHub
Collaborating with other developers on a feature
-++++++++++++++++++++++++++++++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You have pushed a new feature to GitHub and another developer has worked on it. This is
how you can integrate their changes into your own feature branch.
@@ -281,7 +281,7 @@ how you can integrate their changes into your own feature branch.
git push origin feature/my-fancy-new-feature # Push the branch back to GitHub
Merging a feature or bugfix branch
-++++++++++++++++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Once a feature or bug-fix is complete it can be merged back into the master branch. To preserve
history we never fast-forward such merges. In this example we will merge the bug-fix created
earlier into 3.2.x. We then merge the changes into 3.3.x and then merge 3.3.x into master
@@ -300,15 +300,14 @@ to keep these branches up to date.
Additionally the merge.log config setting of Git is set to true, producing a summary of merged commits.
Merging into phpBB repository
-+++++++++++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This *only* applies to Development Team Members. The following steps should be taken when
merging a topic branch into the phpBB repository.
.. note::
Note that tests should be run prior to merging to the official repository. Tests are run
- for each push to a pull request by `Travis (Continuous Integration) `_
- and `AppVeyor `_
+ for each push to a pull request by `Github Actions `_
but it is a good idea to run them yourself as well. For more information, read :doc:`../testing/index`.
Merging only to master
@@ -413,6 +412,46 @@ Merging to 3.2.x, 3.3.x and master with different patches
12. Merger verifies the results
13. Merger pushes 3.2.x, 3.3.x and master to phpbb
+Fixing merge conflicts
+^^^^^^^^^^^^^^^^^^^^^^
+Merge conflicts **must** always be solved by using the `git rebase` functionality.
+**Do not** merge the base branch, e.g. `master`, in order to solve potential merge conflicts
+or in order to update your branch.
+
+To update your branch, you can often run a simple rebase:
+
+1. Checkout your feature or bugfix branch
+2. Make sure there are no unstaged changes and that your branch has already been pushed to your remote (this can later allow you to undo your rebase changes)
+3. Run git rebase
+4. Force push your branch to your remote
+
+The commands for this are as follows:
+
+.. code-block:: shell
+
+ git checkout ticket/12345
+ git fetch upstream # ensure upstream is up to date
+ git rebase upstream/3.3.x # rebase on top of upstream's 3.3.x branch
+ git push origin ticket/12345 -f
+
+In case you think something went wrong or there are too many merge conflicts, you can abort the rebase by running:
+
+.. code-block:: shell
+
+ git rebase --abort
+
+More difficult rebases and when switching the base branch, it makes sense to use the three-way `--onto` for rebasing:
+
+.. code-block:: shell
+
+ git rebase --onto new_base_branch old_base_branch ticket/12345
+
+Where
+
+- `new_base_branch` is the new base branch your bugfix branch should be based on
+- `old_base_branch` is the old base branch your bugfix branch is based on before the rebase
+- `ticket/12345` is the name of your bugfix or feature branch
+
Windows
=======
diff --git a/development/development/images/new_feature_process.svg b/development/development/images/new_feature_process.svg
new file mode 100644
index 00000000..4baca669
--- /dev/null
+++ b/development/development/images/new_feature_process.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/development/development/phpstorm.rst b/development/development/phpstorm.rst
index 1fe37067..968362dd 100644
--- a/development/development/phpstorm.rst
+++ b/development/development/phpstorm.rst
@@ -76,8 +76,6 @@ The default inspection settings should work just fine. However there are a coupl
.. note:: phpBB uses jQuery. The Javascript inspections need to be made aware of jQuery to avoid any false warnings/errors. To do this, simply go to **Languages & Frameworks > JavaScript > Libraries** and enable jQuery. If jQuery is not in the list, you can use the "Download" button to download a copy of jQuery to PhpStorm.
-.. seealso:: For your convenience we have provided an XML export of the above code inspection settings for phpBB (see `phpBB Inspection Profile`_). You can import these settings into your project and all the above inspection settings will be configured for you.
-
Plugins
=======
@@ -119,31 +117,24 @@ To set up PHPunit within PhpStorm, go to:
PhpStorm Setting Exports for phpBB
==================================
-Copy and save these code blocks as XML files, and they can be imported into PhpStorm's settings to automatically set up most of the configuration recommendations mentioned in this documentation for phpBB.
+What follows is the code style we recommend for your phpBB project in PhpStorm. Copy and save this code block as ``phpbb.xml``. Then in PhpStorm, go to **Settings > Editor > Code Style**. Click the setting cog icon next to **Scheme** and choose **Import Scheme...** and import the ``phpbb.xml`` file.
phpBB Code Style Scheme
#######################
.. code-block:: xml
-
+
-
-
-
-
-
-
diff --git a/development/development/processes.rst b/development/development/processes.rst
new file mode 100644
index 00000000..18b18779
--- /dev/null
+++ b/development/development/processes.rst
@@ -0,0 +1,113 @@
+Development Processes
+=====================
+
+New Features
+------------
+This document outlines the process that is in place to propose new features that can be added to phpBB.
+phpBB uses this system to assure that a given feature is added as proposed and to make sure that feature requests
+are handled transparently by relying on community input.
+
+When proposing features or adjustments to phpBB, there are two possible routes to take:
+
+- **Ideas**
+ Generally more informal ideas from a user perspective. Usually short descriptions without too much technical detail.
+
+- **Feature Requests**
+ More technical proposal for new features. Should take a deeper look at the technical background
+ and ways to implement this new feature. Base for further discussions with the development team.
+
+In the end, both of these will end up following the same general process:
+
+.. image:: images/new_feature_process.svg
+
+Ideas
+^^^^^
+Ideas are generally more informal ideas that describe the request for a new feature from the user perspective.
+They are aimed at quickly gathering new ideas based on day to day use of phpBB.
+
+Informal Ideas should be proposed in `phpBB Ideas `_.
+There it's possible to both gather feedback and support of other users.
+
+More detailed technical discussions should however take place in a *Feature request*.
+
+Feature Requests
+^^^^^^^^^^^^^^^^
+In contrast to the above mentioned *Ideas*, a *Feature Request* should be focused more on the technical solution for
+the proposed feature. They maybe be based on an *Idea* but that is not mandatory.
+
+New feature requests can either be started by creating a ticket in the `phpBB Tracker `_ or
+by creating a new discussion topic on the `Area51 Forums `_.
+
+Try to describe the technical details of the proposed features, how it will be used, and recommendations for an possible
+implementation. Include your expectations of the amount of changes that are needed and attempt to discuss the complexity
+of the proposal.
+
+Members of the community will be able to participate in the discussion, give their feedback, and help with preparing a
+plan on how to best implement the feature in small and easy to track steps.
+
+Feature Acceptance
+^^^^^^^^^^^^^^^^^^
+After a feature has been accepted by the *phpBB Development Team*, there should be at least one ticket in the
+`phpBB Tracker `_.
+A new feature should be split up into smaller, intermediate steps to ease implementation and review of the proposed
+changes. It is also possible to use *Epics* in the tracker for a better overview of necessary steps.
+
+Each step of a feature can then be reviewed and integrated separately. As a result of that, code reviews will be easier,
+quicker, and should also result in overall better code and features.
+
+Implementation & Review
+^^^^^^^^^^^^^^^^^^^^^^^
+Implementation of a feature or its intermediate steps usually follows the acceptance by the *phpBB Development Team*.
+All code needs to follow our `Coding Guidelines `_. The implementation itself can be done by
+the requester, a *phpBB Development Team* member, or any other developer. Feature acceptance by the
+*phpBB Development Team* does not mean that implementation of it is mandatory or that it will have to be implemented
+by the *phpBB Development Team* itself.
+
+When using external libraries, please make sure that they are compatible with our license. If you are unsure about
+whether a certain type of license is acceptable, please ask the *phpBB Development Team*.
+PHP libraries **MUST** be installed with composer and should generally be considered well maintained.
+
+Once the code is ready to be reviewed, a pull request should be created in our `GitHub repository `_.
+Target versions should be picked in accordance with `Target Versions`_.
+
+Finalisation / Feature Merge
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+After the code has been reviewed by the *phpBB Development Team*, it is typically approved and merged. In case there are
+issues with the code, these should be resolved as part of the code review. It can however also make sense to create
+follow-up tickets to take care of some additional work or adjustments to the proposed feature.
+
+Once a pull request has been merged, typical follow-up work should be adding documentation for the new feature, creating
+blog posts as a form of pre-announcement, or starting work on the next intermediate step.
+
+
+Target Versions
+---------------
+The appropriate target version for any given change or feature usually depends on the following attributes:
+
+- Type: Bugfix, behavioural change, or new feature
+- Size & complexity
+- Backwards compatibility (BC)
+
+Based on these and the semantic versioning scheme these general rules should apply:
+
+- **PATCH** version releases:
+ - Bug fixes without BC breaks
+ - Security fixes incl. BC breaks
+ - Minor behavioural changes without BC breaks
+ - Minor new features without BC breaks
+ - Updates to third parties without BC breaks
+
+- **MINOR** version releases:
+ Same as in **PATCH** version releases with addition of:
+
+ - Bug fixes incl. BC breaks
+ - Major behavioural changes without BC breaks
+ - Major new features without BC breaks
+ - Updates to third parties without *significant* BC breaks
+
+- **MAJOR** version releases:
+ Same as in **PATCH** and **MINOR** version releases with addition of:
+
+ - Major behavioural changes incl. BC breaks
+ - Major new features incl. BC breaks
+ - Updates to third parties incl. *significant* BC breaks,
diff --git a/development/extensions/database_types_list.rst b/development/extensions/database_types_list.rst
new file mode 100644
index 00000000..24651d68
--- /dev/null
+++ b/development/extensions/database_types_list.rst
@@ -0,0 +1,160 @@
+===================
+Database Types List
+===================
+
+Introduction
+============
+
+The purpose of the Database Type Map is to simplify the process of creating installations for multiple database systems.
+Instead of writing specific installation instructions for each individual database system, you can create a single set of
+instructions and use the Database Type Map to modify any supported database system with just one command. This makes it
+easier and more efficient to work with multiple database systems, as you don't need to write and maintain separate
+instructions for each one.
+
+.. note::
+
+ With some commands you may enter the `Zerofill `_,
+ example ``INT:11``, if the field is a numeric one. With some you may enter the length of the field, example ``VARCHAR:255``,
+ which will make a varchar(255) column in MySQL. In all of the fields supporting this, they will have a colon followed by ``%d``
+ meaning any number may fill the space of the ``%d``.
+
+Numeric
+=======
+
+.. list-table::
+ :widths: 20 20 60
+ :header-rows: 1
+
+ * - Command
+ - MySQL Equivalent
+ - Storage Range (on MySQL)
+ * - TINT:%d
+ - tinyint(%d)
+ - -128 to 127
+ * - INT:%d
+ - int(%d)
+ - -2,147,483,648 to 2,147,483,648
+ * - BINT
+ - bigint(20)
+ - -9,223,372,036,854,775,808 to 9,223,372,036,854,775,808
+ * - USINT
+ - smallint(4) UNSIGNED
+ - 0 to 65,535
+ * - UINT
+ - mediumint(8) UNSIGNED
+ - 0 to 16,777,215
+ * - UINT:%d
+ - int(%d) UNSIGNED
+ - 0 to 4,294,967,295
+ * - ULINT
+ - int(10) UNSIGNED
+ - 0 to 4,294,967,295
+
+Decimal
+=======
+
+.. list-table::
+ :widths: 20 20 60
+ :header-rows: 1
+
+ * - Command
+ - MySQL Equivalent
+ - Storage Range (on MySQL)
+ * - DECIMAL
+ - decimal(5,2)
+ - -999.99 to 999.99
+ * - DECIMAL:%d
+ - decimal(%d, 2)
+ - -(%d - 2 digits to the left of the decimal).99 to (%d - 2 digits to the left of the decimal).99
+ * - PDECIMAL
+ - decimal(6,3)
+ - -999.999 to 999.999
+ * - PDECIMAL:%d
+ - decimal(%d,3)
+ - -(%d - 3 digits to the left of the decimal).999 to (%d - 3 digits to the left of the decimal).999
+
+Text
+====
+
+These should only be used for ASCII characters. If you plan to use it for something like message text read the Unicode Text section
+
+.. list-table::
+ :widths: 20 20 60
+ :header-rows: 1
+
+ * - Command
+ - MySQL Equivalent
+ - Explain
+ * - VCHAR
+ - varchar(255)
+ - text for storing 255 characters (normal input field with a max of 255 chars)
+ * - VCHAR:%d
+ - varchar(%d)
+ - text for storing %d characters (normal input field with a max of %d chars)
+ * - CHAR:%d
+ - char(%d)
+ - text for storing up to 30 characters (normal input field with a max of 30 chars)
+ * - XSTEXT
+ - text
+ - text for storing 100 characters
+ * - STEXT
+ - text
+ - text for storing 255 characters
+ * - TEXT
+ - text
+ - text for storing 3000 characters
+ * - MTEXT
+ - mediumtext
+ - (post text, large text)
+
+Unicode Text
+============
+
+.. list-table::
+ :widths: 20 20 60
+ :header-rows: 1
+
+ * - Command
+ - MySQL Equivalent
+ - Explain
+ * - VCHAR_UNI
+ - varchar(255)
+ - text for storing 255 characters (normal input field with a max of 255 single-byte chars)
+ * - VCHAR_UNI:%d
+ - varchar(%d)
+ - text for storing %d characters (normal input field with a max of %d single-byte chars)
+ * - XSTEXT_UNI
+ - varchar(100)
+ - text for storing 100 characters (topic_title for example)
+ * - STEXT_UNI
+ - varchar(255)
+ - text for storing 255 characters (normal input field with a max of 255 single-byte chars)
+ * - TEXT_UNI
+ - text
+ - text for storing 3000 characters (short text, descriptions, comments, etc.)
+ * - MTEXT_UNI
+ - mediumtext
+ - (post text, large text)
+
+Miscellaneous
+=============
+
+.. list-table::
+ :widths: 20 20 60
+ :header-rows: 1
+
+ * - Command
+ - MySQL Equivalent
+ - Explain
+ * - BOOL
+ - tinyint(1) UNSIGNED
+ - Storing boolean values (true/false)
+ * - TIMESTAMP
+ - int(11) UNSIGNED
+ - For storing UNIX timestamps
+ * - VCHAR_CI
+ - varchar(255)
+ - varchar_ci for postgresql, others VCHAR
+ * - VARBINARY
+ - varbinary(255)
+ - Binary storage
diff --git a/development/extensions/events_list.rst b/development/extensions/events_list.rst
new file mode 100644
index 00000000..f88661e6
--- /dev/null
+++ b/development/extensions/events_list.rst
@@ -0,0 +1,2232 @@
+==========================
+Events List
+==========================
+
+PHP Events
+==========
+
+.. table::
+ :class: events-list
+
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | Identifier | Placement | Arguments | Added in Release | Explanation |
+ +=======================================================================+=======================================================+====================================================================================================================================================================================================================================================================================================================+==================+=====================================================================================================================================================================================================================================================================================================================================================================================+
+ | core.acl_clear_prefetch_after | phpbb/auth/auth.php | user_id | 3.1.11-RC1 | Event is triggered after user(s) permission settings cache has been cleared |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_attachments_config_edit_add | includes/acp/acp_attachments.php | display_vars, mode, submit | 3.1.11-RC1 | Event to add and/or modify acp_attachement configurations |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_ban_after | includes/acp/acp_ban.php | ban, ban_exclude, ban_give_reason, ban_length, ban_length_other, ban_reason, mode | 3.1.0-RC5 | Use this event to perform actions after the ban has been performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_ban_before | includes/acp/acp_ban.php | abort_ban, ban, ban_exclude, ban_give_reason, ban_length, ban_length_other, ban_reason, mode | 3.1.0-RC5 | Use this event to modify the ban details before the ban is performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_bbcodes_delete_after | includes/acp/acp_bbcodes.php | action, bbcode_id, bbcode_tag | 3.2.4-RC1 | Event after a BBCode has been deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_bbcodes_display_bbcodes | includes/acp/acp_bbcodes.php | bbcodes_array, row, u_action | 3.1.0-a3 | Modify display of custom bbcodes in the form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_bbcodes_display_form | includes/acp/acp_bbcodes.php | action, sql_ary, template_data, u_action | 3.1.0-a3 | Modify custom bbcode template data before we display the form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_bbcodes_edit_add | includes/acp/acp_bbcodes.php | action, bbcode_id, bbcode_tokens, tpl_ary | 3.1.0-a3 | Modify custom bbcode template data before we display the add/edit form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_bbcodes_modify_create | includes/acp/acp_bbcodes.php | action, bbcode_helpline, bbcode_id, bbcode_match, bbcode_tpl, display_on_posting, hidden_fields, sql_ary | 3.1.0-a3 | Modify custom bbcode data before the modify/create action |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_bbcodes_modify_create_after | includes/acp/acp_bbcodes.php | action, bbcode_id, sql_ary | 3.2.4-RC1 | Event after a BBCode has been added or updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_board_config_edit_add | includes/acp/acp_board.php | display_vars, mode, submit | 3.1.0-a4 | Event to add and/or modify acp_board configurations |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_board_config_emoji_enabled | includes/acp/acp_board.php | config_name_ary | 3.3.3-RC1 | Event to manage the array of emoji-enabled configurations |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_email_display | includes/acp/acp_email.php | exclude, template_data, usernames | 3.1.4-RC1 | Modify custom email template data before we display the form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_email_modify_sql | includes/acp/acp_email.php | sql_ary | 3.1.2-RC1 | Modify sql query to change the list of users the email is sent to |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_email_send_before | includes/acp/acp_email.php | email_template, generate_log_entry, group_id, priority, subject, template_data, use_queue, usernames | 3.1.3-RC1 | Modify email template data before the emails are sent |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_extensions_run_action_after | includes/acp/acp_extensions.php | action, ext_name, safe_time_limit, start_time, tpl_name, u_action | 3.1.11-RC1 | Event to run after a specific action on extension has completed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_extensions_run_action_before | includes/acp/acp_extensions.php | action, ext_name, safe_time_limit, start_time, tpl_name, u_action | 3.1.11-RC1 | Event to run a specific action on extension |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_help_phpbb_submit_before | includes/acp/acp_help_phpbb.php | submit | 3.2.0-RC2 | Event to modify ACP help phpBB page and/or listen to submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_language_after_delete | includes/acp/acp_language.php | delete_message, lang_iso | 3.2.2-RC1 | Run code after language deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_logs_info_modify_modes | includes/acp/info/acp_logs.php | modes | 3.2.1-RC1 | Event to add or modify ACP log modulemodes |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_main_notice | includes/acp/acp_main.php | | 3.1.0-RC3 | Notice admin |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_display_form | includes/acp/acp_forums.php | action, errors, forum_data, forum_id, parents_list, row, template_data, update | 3.1.0-a1 | Modify forum template data before we display the form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_initialise_data | includes/acp/acp_forums.php | action, forum_data, forum_id, parents_list, row, update | 3.1.0-a1 | Initialise data before we display the add/edit form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_modify_forum_list | includes/acp/acp_forums.php | rowset | 3.1.10-RC1 | Modify the forum list data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_move_children | includes/acp/acp_forums.php | errors, from_id, to_id | 3.1.0-a1 | Event when we move all children of one forum to another |
+ | | | | | |
+ | | | | | This event may be triggered, when a forum is deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_move_content | includes/acp/acp_forums.php | errors, from_id, sync, to_id | 3.1.0-a1 | Event when we move content from one forum to another |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_move_content_after | includes/acp/acp_forums.php | from_id, sync, to_id | 3.2.9-RC1 | Event when content has been moved from one forum to another |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_move_content_sql_before | includes/acp/acp_forums.php | table_ary | 3.2.4-RC1 | Perform additional actions before move forum content |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_request_data | includes/acp/acp_forums.php | action, forum_data | 3.1.0-a1 | Request forum data and operate on it (parse texts, etc.) |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_update_data_after | includes/acp/acp_forums.php | errors, forum_data, forum_data_sql, is_new_forum | 3.1.0-a1 | Event after a forum was updated or created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_update_data_before | includes/acp/acp_forums.php | forum_data, forum_data_sql | 3.1.0-a1 | Remove invalid values from forum_data_sql that should not be updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_forums_validate_data | includes/acp/acp_forums.php | errors, forum_data | 3.1.0-a1 | Validate the forum data before we create/update the forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_group_display_form | includes/acp/acp_groups.php | action, error, group_desc_data, group_id, group_name, group_rank, group_row, group_type, rank_options, update | 3.1.0-b5 | Modify group template data before we display the form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_group_initialise_data | includes/acp/acp_groups.php | action, allow_desc_bbcode, allow_desc_smilies, allow_desc_urls, error, group_desc, group_id, group_name, group_row, group_type, submit_ary, test_variables | 3.1.0-b5 | Initialise data before we display the add/edit form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_manage_group_request_data | includes/acp/acp_groups.php | action, allow_desc_bbcode, allow_desc_smilies, allow_desc_urls, error, group_desc, group_id, group_name, group_row, group_type, submit_ary, validation_checks | 3.1.0-b5 | Request group data and operate on it |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_profile_action | includes/acp/acp_profile.php | action, page_title, tpl_name, u_action | 3.2.2-RC1 | Event to handle actions on the ACP profile fields page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_profile_create_edit_after | includes/acp/acp_profile.php | action, field_data, field_type, options, s_hidden_fields, save, step, submit | 3.1.6-RC1 | Event to add template variables for new profile field table fields |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_profile_create_edit_init | includes/acp/acp_profile.php | action, exclude, field_row, field_type, save, step, submit, visibility_ary | 3.1.6-RC1 | Event to add initialization for new profile field table fields |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_profile_create_edit_save_before | includes/acp/acp_profile.php | action, field_data, field_type, profile_fields | 3.1.6-RC1 | Event to modify profile field configuration data before saving to database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_profile_modify_profile_row | includes/acp/acp_profile.php | field_block, profile_field, row | 3.2.2-RC1 | Event to modify profile field data before it is assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_ranks_edit_modify_tpl_ary | includes/acp/acp_ranks.php | ranks, tpl_ary | 3.1.0-RC3 | Modify the template output array for editing/adding ranks |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_ranks_list_modify_rank_row | includes/acp/acp_ranks.php | rank_row, row | 3.1.0-RC3 | Modify the template output array for each listed rank |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_ranks_save_modify_sql_ary | includes/acp/acp_ranks.php | rank_id, sql_ary | 3.1.0-RC3 | Modify the SQL array when saving a rank |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_styles_action_before | includes/acp/acp_styles.php | action, id, mode | 3.1.7-RC1 | Run code before ACP styles action execution |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_avatar_sql | includes/acp/acp_users.php | result, user_row | 3.2.4-RC1 | Modify users preferences data before assigning it to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_display_overview | includes/acp/acp_users.php | quick_tool_ary, user_row | 3.1.0-a1 | Add additional quick tool options and overwrite user data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_mode_add | includes/acp/acp_users.php | error, mode, u_action, user_id, user_row | 3.2.2-RC1 | Additional modes provided by extensions |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_modify_profile | includes/acp/acp_users.php | data, submit, user_id, user_row | 3.1.4-RC1 | Modify user data on editing profile in ACP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_modify_signature_sql_ary | includes/acp/acp_users.php | sql_ary, user_row | 3.2.4-RC1 | Modify user signature before it is stored in the DB |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_overview_before | includes/acp/acp_users.php | action, error, mode, submit, user_row | 3.1.3-RC1 | Run code at beginning of ACP users overview |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_overview_modify_data | includes/acp/acp_users.php | data, sql_ary, user_row | 3.1.0-a1 | Modify user data before we update it |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_overview_run_quicktool | includes/acp/acp_users.php | action, u_action, user_id, user_row | 3.1.0-a1 | Run custom quicktool code |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_prefs_modify_data | includes/acp/acp_users.php | data, user_row | 3.1.0-b3 | Modify users preferences data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_prefs_modify_sql | includes/acp/acp_users.php | data, error, sql_ary, user_row | 3.1.0-b3 | Modify SQL query before users preferences are updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_prefs_modify_template_data | includes/acp/acp_users.php | data, user_prefs_data, user_row | 3.1.0-b3 | Modify users preferences data before assigning it to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_profile_modify_sql_ary | includes/acp/acp_users.php | cp_data, data, sql_ary, user_id, user_row | 3.1.4-RC1 | Modify profile data in ACP before submitting to the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.acp_users_profile_validate | includes/acp/acp_users.php | data, error, user_id, user_row | 3.1.4-RC1 | Validate profile data in ACP before submitting to the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.add_form_key | includes/functions.php | form_name, now, s_fields, template_variable_suffix, token, token_sid | 3.1.0-RC3 | Perform additional actions on creation of the form token |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.add_log | phpbb/log/log.php | additional_data, log_ip, log_operation, log_time, mode, sql_ary, user_id | 3.1.0-a1 | Allows to modify log data before we add it to the database |
+ | | | | | |
+ | | | | | NOTE: if sql_ary does not contain a log_type value, the entry will |
+ | | | | | not be stored in the database. So ensure to set it, if needed. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.adm_page_footer | includes/functions_acp.php | adm_page_footer_override, copyright_html | 3.1.0-a1 | Execute code and/or overwrite adm_page_footer() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.adm_page_header | includes/functions_acp.php | adm_page_header_override, page_title | 3.1.0-a1 | Execute code and/or overwrite adm_page_header() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.adm_page_header_after | includes/functions_acp.php | http_headers, page_title | 3.1.0-RC3 | Execute code and/or overwrite _common_ template variables after they have been assigned. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.append_sid | includes/functions.php | append_sid_overwrite, is_amp, is_route, params, session_id, url | 3.1.0-a1 | This event can either supplement or override the append_sid() function |
+ | | | | | |
+ | | | | | To override this function, the event must set $append_sid_overwrite to |
+ | | | | | the new URL value, which will be returned following the event |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.approve_posts_after | includes/mcp/mcp_queue.php | action, notify_poster, num_topics, post_info, redirect, success_msg, topic_info | 3.1.4-RC1 | Perform additional actions during post(s) approval |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.approve_topics_after | includes/mcp/mcp_queue.php | action, first_post_ids, notify_poster, redirect, success_msg, topic_info | 3.1.4-RC1 | Perform additional actions during topics(s) approval |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.auth_login_session_create_before | phpbb/auth/auth.php | admin, autologin, login, username | 3.1.7-RC1 | Event is triggered after checking for valid username and password, and before the actual session creation. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.auth_oauth_link_after | phpbb/auth/provider/oauth/oauth.php | data | 3.1.11-RC1 | Event is triggered after user links account. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.auth_oauth_login_after | phpbb/auth/provider/oauth/oauth.php | row | 3.1.11-RC1 | Event is triggered after user is successfully logged in via OAuth. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.avatar_driver_upload_delete_before | phpbb/avatar/driver/upload.php | destination, error, prefix, row | 3.1.6-RC1 | Before deleting an existing avatar |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.avatar_driver_upload_move_file_before | phpbb/avatar/driver/upload.php | destination, error, file, filedata, prefix, row | 3.1.6-RC1 | Before moving new file in place (and eventually overwriting the existing avatar with the newly uploaded avatar) |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.avatar_manager_avatar_delete_after | phpbb/avatar/manager.php | avatar_data, prefix, table, user | 3.2.4-RC1 | Event is triggered after user avatar has been deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.bbcode_cache_init_end | includes/bbcode.php | bbcode_bitfield, bbcode_cache, bbcode_uid | 3.1.3-RC1 | Use this event to modify the bbcode_cache |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.bbcode_second_pass_by_extension | includes/bbcode.php | params_array, return | 3.1.5-RC1 | Event to perform bbcode second pass with |
+ | | | | | the custom validating methods provided by extensions |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.build_config_template | includes/functions_acp.php | key, name, new, tpl, tpl_type, vars | 3.1.0-a1 | Overwrite the html code we display for the config value |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.common | common.php | | 3.1.0-a1 | Main event which is triggered on every page |
+ | | | | | |
+ | | | | | You can use this event to load function files and initiate objects |
+ | | | | | |
+ | | | | | NOTE: At this point the global session ($user) and permissions ($auth) |
+ | | | | | do NOT exist yet. If you need to use the user object |
+ | | | | | (f.e. to include language files) or need to check permissions, |
+ | | | | | please use the core.user_setup event instead! |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.confirm_box_ajax_before | includes/functions.php | data, hidden, s_hidden_fields, u_action | 3.2.8-RC1 | This event allows an extension to modify the ajax output of confirm box. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.controller_helper_render_response | phpbb/controller/helper.php | response | 3.3.1-RC1 | Modify response before output |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.decode_message_after | includes/functions_content.php | bbcode_uid, message_text | 3.1.9-RC1 | Use this event to modify the message after it is decoded |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.decode_message_before | includes/functions_content.php | bbcode_uid, message_text | 3.1.9-RC1 | Use this event to modify the message before it is decoded |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_attachments_before | phpbb/attachment/delete.php | ids, message_ids, mode, physical, post_ids, resync, sql_id, topic_ids | 3.1.7-RC1 | Perform additional actions before attachment(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_attachments_collect_data_before | phpbb/attachment/delete.php | ids, mode, resync, sql_id | 3.1.7-RC1 | Perform additional actions before collecting data for attachment(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_attachments_from_database_after | phpbb/attachment/delete.php | ids, message_ids, mode, num_deleted, physical, post_ids, resync, sql_id, topic_ids | 3.1.7-RC1 | Perform additional actions after attachment(s) deletion from the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_attachments_from_filesystem_after | phpbb/attachment/delete.php | files_removed, ids, message_ids, mode, num_deleted, physical, post_ids, resync, space_removed, sql_id, topic_ids | 3.1.7-RC1 | Perform additional actions after attachment(s) deletion from the filesystem |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_forum_content_before_query | includes/acp/acp_forums.php | forum_id, post_counts, table_ary, topic_ids | 3.1.6-RC1 | Perform additional actions before forum content deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_group_after | includes/functions_user.php | group_id, group_name | 3.1.0-a1 | Event after a group is deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_log | phpbb/log/log.php | conditions, log_type, mode | 3.1.0-b4 | Allows to modify log data before we delete it from the database |
+ | | | | | |
+ | | | | | NOTE: if sql_ary does not contain a log_type value, the entry will |
+ | | | | | not be deleted in the database. So ensure to set it, if needed. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_pm_before | includes/functions_privmsgs.php | folder_id, msg_ids, user_id | 3.1.0-b5 | Get all info for PM(s) before they are deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_post_after | includes/functions_posting.php | data, forum_id, is_soft, next_post_id, post_id, post_mode, softdelete_reason, topic_id | 3.1.11-RC1 | This event is used for performing actions directly after a post or topic |
+ | | | | | has been deleted. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_posts_after | includes/functions_admin.php | delete_notifications_types, forum_ids, post_ids, poster_ids, topic_ids, where_ids, where_type | 3.1.0-a4 | Perform additional actions after post(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_posts_before | includes/functions_admin.php | auto_sync, call_delete_topics, delete_notifications_types, post_count_sync, posted_sync, where_ids, where_type | 3.1.0-a4 | Perform additional actions before post(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_posts_in_transaction | includes/functions_admin.php | delete_notifications_types, forum_ids, post_ids, poster_ids, topic_ids, where_ids, where_type | 3.1.0-a4 | Perform additional actions during post(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_posts_in_transaction_before | includes/functions_admin.php | delete_notifications_types, forum_ids, post_ids, poster_ids, table_ary, topic_ids, where_ids, where_type | 3.1.7-RC1 | Perform additional actions during post(s) deletion before running the queries |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_topics_after_query | includes/functions_admin.php | topic_ids | 3.1.4-RC1 | Perform additional actions after topic(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_topics_before_query | includes/functions_admin.php | table_ary, topic_ids | 3.1.4-RC1 | Perform additional actions before topic(s) deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_user_after | includes/functions_user.php | mode, retain_username, user_ids, user_rows | 3.1.0-a1 | Event after the user(s) delete action has been performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.delete_user_before | includes/functions_user.php | mode, retain_username, user_ids, user_rows | 3.1.0-a1 | Event before of the performing of the user(s) delete action |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.disapprove_posts_after | includes/mcp/mcp_queue.php | disapprove_reason, disapprove_reason_lang, is_disapproving, lang_reasons, notify_poster, num_disapproved_posts, num_disapproved_topics, post_disapprove_list, post_info, redirect, success_msg, topic_information, topic_posts_unapproved | 3.1.4-RC1 | Perform additional actions during post(s) disapproval |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_custom_bbcodes | includes/functions_display.php | | 3.1.0-a1 | Display custom bbcodes |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_custom_bbcodes_modify_row | includes/functions_display.php | custom_tags, row | 3.1.0-a1 | Event to modify the template data block of a custom bbcode |
+ | | | | | |
+ | | | | | This event is triggered once per bbcode |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_custom_bbcodes_modify_sql | includes/functions_display.php | num_predefined_bbcodes, sql_ary | 3.1.0-a3 | Event to modify the SQL query before custom bbcode data is queried |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_add_template_data | includes/functions_display.php | catless, forum_row, row, subforums_list, subforums_row | 3.1.0-b5 | Modify and/or assign additional template data for the forum |
+ | | | | | after forumrow loop has been assigned. This can be used |
+ | | | | | to create additional forumrow subloops in extensions. |
+ | | | | | |
+ | | | | | This event is triggered once per forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_after | includes/functions_display.php | active_forum_ary, display_moderators, forum_moderators, forum_rows, return_moderators, root_data | 3.1.0-RC5 | Event to perform additional actions after the forum list has been generated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_before | includes/functions_display.php | active_forum_ary, display_moderators, forum_moderators, forum_rows, return_moderators, root_data | 3.1.4-RC1 | Event to perform additional actions before the forum list is being generated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_modify_category_template_vars | includes/functions_display.php | cat_row, last_catless, root_data, row | 3.1.0-RC4 | Modify the template data block of the 'category' |
+ | | | | | |
+ | | | | | This event is triggered once per 'category' |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_modify_forum_rows | includes/functions_display.php | branch_root_id, forum_rows, parent_id, row, subforums | 3.1.0-a1 | Event to modify the forum rows data set |
+ | | | | | |
+ | | | | | This event is triggered once per forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_modify_row | includes/functions_display.php | branch_root_id, row | 3.1.0-a1 | Event to modify the data set of a forum |
+ | | | | | |
+ | | | | | This event is triggered once per forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_modify_sql | includes/functions_display.php | sql_ary | 3.1.0-a1 | Event to modify the SQL query before the forum data is queried |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_forums_modify_template_vars | includes/functions_display.php | forum_row, row, subforums_row | 3.1.0-a1 | Modify the template data block of the forum |
+ | | | | | |
+ | | | | | This event is triggered once per forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.display_user_activity_modify_actives | includes/functions_display.php | active_f_row, active_t_row, show_user_activity, userdata | 3.1.0-RC3 | Alter list of forums and topics to display as active |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.download_file_send_to_browser_before | download/file.php | attach_id, attachment, display_cat, download_mode, extensions, mode, thumbnail | 3.1.6-RC1 | Event to modify data before sending file to browser |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.faq_mode_validation | phpbb/help/controller/help.php | ext_name, lang_file, mode, page_title, template_file | 3.1.4-RC1 | You can use this event display a custom help page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.feed_base_modify_item_sql | phpbb/feed/base.php | sql_ary | 3.1.10-RC1 | Event to modify the feed item sql |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.feed_modify_feed_row | phpbb/feed/controller/feed.php | feed, row | 3.1.10-RC1 | Event to modify the feed row |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.functions.redirect | includes/functions.php | disable_cd_check, return, url | 3.1.0-RC3 | Execute code and/or overwrite redirect() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.garbage_collection | includes/functions.php | | 3.1.0-a1 | Unload some objects, to free some memory, before we finish our task |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.gen_sort_selects_after | includes/functions_content.php | def_sd, def_sk, def_st, limit_days, s_limit_days, s_sort_dir, s_sort_key, sort_by_text, sort_days, sort_dir, sort_key, sorts, u_sort_param | 3.1.9-RC1 | Run code before generated sort selects are returned |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_forum_nav | includes/functions_display.php | forum_data, forum_template_data, microdata_attr, navlinks, navlinks_parents | 3.1.5-RC1 | Event to modify the navlinks text |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_profile_fields_template_data | phpbb/profilefields/manager.php | profile_row, tpl_fields, use_contact_fields | 3.1.0-b3 | Event to modify template data of the generated profile fields |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_profile_fields_template_data_before | phpbb/profilefields/manager.php | profile_row, tpl_fields, use_contact_fields | 3.1.0-b3 | Event to modify data of the generated profile fields, before the template assignment loop |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_profile_fields_template_headlines | phpbb/profilefields/manager.php | profile_cache, restrict_option, tpl_fields | 3.1.6-RC1 | Event to modify template headlines of the generated profile fields |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_smilies_after | includes/functions_posting.php | base_url, display_link, forum_id, mode | 3.1.0-a1 | This event is called after the smilies are populated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_smilies_before | includes/functions_posting.php | root_path | 3.1.11-RC1 | Modify smiley root path before populating smiley list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_smilies_count_sql_before | includes/functions_posting.php | base_url, forum_id, sql_ary | 3.2.9-RC1 | Modify SQL query that fetches the total number of smilies in window mode |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_smilies_modify_rowset | includes/functions_posting.php | forum_id, mode, smilies | 3.2.9-RC1 | Modify smilies before they are assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.generate_smilies_modify_sql | includes/functions_posting.php | forum_id, mode, sql_ary | 3.3.1-RC1 | Modify the SQL query that fetches the smilies |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_avatar_after | includes/functions.php | alt, avatar_data, html, ignore_config, row | 3.1.6-RC1 | Event to modify HTML tag of avatar |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_forum_list_modify_data | includes/functions_admin.php | rowset | 3.1.10-RC1 | Modify the forum list data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_gravatar_url_after | phpbb/avatar/driver/gravatar.php | row, url | 3.1.7-RC1 | Modify gravatar url |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_group_rank_after | phpbb/group/helper.php | group_data, group_rank_data | 3.2.8-RC1 | Modify a group's rank before displaying |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_group_rank_before | phpbb/group/helper.php | group_data | 3.2.8-RC1 | Preparing a group's rank before displaying |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_logs_after | phpbb/log/log.php | count_logs, forum_id, keywords, limit, log, log_time, log_type, mode, offset, profile_url, reportee_id_list, sort_by, topic_id, topic_id_list, user_id | 3.1.3-RC1 | Allow modifying or execute extra final filter on log entries |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_logs_get_additional_data | phpbb/log/log.php | log, reportee_id_list, topic_id_list | 3.1.0-a1 | Get some additional data after we got all log entries |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_logs_main_query_before | phpbb/log/log.php | count_logs, forum_id, get_logs_sql_ary, keywords, limit, log_time, log_type, mode, offset, profile_url, sort_by, sql_additional, topic_id, user_id | 3.1.5-RC1 | Modify the query to obtain the logs data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_logs_modify_entry_data | phpbb/log/log.php | log_entry_data, row | 3.1.0-a1 | Modify the entry's data before it is returned |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_logs_modify_type | phpbb/log/log.php | count_logs, forum_id, keywords, limit, log_time, log_type, mode, offset, profile_url, sort_by, sql_additional, topic_id, user_id | 3.1.0-a1 | Overwrite log type and limitations before we count and get the logs |
+ | | | | | |
+ | | | | | NOTE: if log_type is false, no entries will be returned. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_unread_topics_modify_sql | includes/functions.php | last_mark, sql_array, sql_extra, sql_sort | 3.1.4-RC1 | Change SQL query for fetching unread topics data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.get_user_rank_after | includes/functions_display.php | user_data, user_posts, user_rank_data | 3.1.11-RC1 | Modify a user's rank before displaying |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.grab_profile_fields_data | phpbb/profilefields/manager.php | field_data, user_ids | 3.1.0-b3 | Event to modify profile fields data retrieved from the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.group_add_user_after | includes/functions_user.php | group_id, group_name, pending, user_id_ary, username_ary | 3.1.7-RC1 | Event after users are added to a group |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.group_delete_user_after | includes/functions_user.php | group_id, group_name, user_id_ary, username_ary | 3.1.7-RC1 | Event after users are removed from a group |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.group_delete_user_before | includes/functions_user.php | group_id, group_name, user_id_ary, username_ary | 3.1.0-a1 | Event before users are removed from a group |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.handle_post_delete_conditions | includes/functions_posting.php | delete_reason, force_delete_allowed, force_softdelete_allowed, forum_id, is_soft, perm_check, post_data, post_id, topic_id | 3.1.11-RC1 | This event allows to modify the conditions for the post deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.help_manager_add_block_after | phpbb/help/manager.php | block_name, questions, switch_column | 3.2.0-a1 | You can use this event to add a block after the current one. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.help_manager_add_block_before | phpbb/help/manager.php | block_name, questions, switch_column | 3.2.0-a1 | You can use this event to add a block before the current one. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.help_manager_add_question_after | phpbb/help/manager.php | answer, question | 3.2.0-a1 | You can use this event to add a question after the current one. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.help_manager_add_question_before | phpbb/help/manager.php | answer, question | 3.2.0-a1 | You can use this event to add a question before the current one. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.index_mark_notification_after | index.php | mark_notification, notification | 3.2.6-RC1 | You can use this event to perform additional tasks or redirect user elsewhere. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.index_modify_birthdays_list | index.php | birthdays, rows | 3.1.7-RC1 | Event to modify the birthdays list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.index_modify_birthdays_sql | index.php | now, sql_ary, time | 3.1.7-RC1 | Event to modify the SQL query to get birthdays data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.index_modify_page_title | index.php | page_title | 3.1.0-a1 | You can use this event to modify the page title and load data for the index |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.load_drafts_draft_list_result | includes/functions_posting.php | draft_rows, topic_ids, topic_rows | 3.1.0-RC3 | Drafts found and their topics |
+ | | | | | Edit $draft_rows in order to add or remove drafts loaded |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.login_box_before | includes/functions.php | admin, err, l_explain, l_success, redirect, s_display | 3.1.9-RC1 | This event allows an extension to modify the login process |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.login_box_failed | includes/functions.php | err, password, result, username | 3.1.3-RC1 | This event allows an extension to process when a user fails a login attempt |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.login_box_modify_template_data | includes/functions.php | admin, autologin, login_box_template_data, redirect, username | 3.2.3-RC2 | Event to add/modify login box template data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.login_box_redirect | includes/functions.php | admin, redirect, result | 3.1.0-RC5 | This event allows an extension to modify the redirection when a user successfully logs in |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.login_forum_box | includes/functions.php | forum_data, password | 3.1.0-RC3 | Performing additional actions, load additional data on forum login |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.make_forum_select_modify_forum_list | includes/functions_admin.php | rowset | 3.1.10-RC1 | Modify the forum list data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.make_jumpbox_modify_forum_list | includes/functions_content.php | rowset | 3.1.10-RC1 | Modify the jumpbox forum list data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.make_jumpbox_modify_tpl_ary | includes/functions_content.php | row, tpl_ary | 3.1.10-RC1 | Modify the jumpbox before it is assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.markread_after | includes/functions.php | forum_id, mode, post_time, topic_id, user_id | 3.2.6-RC1 | This event is used for performing actions directly after forums, |
+ | | | | | topics or posts have been marked as read. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.markread_before | includes/functions.php | forum_id, mode, post_time, should_markread, topic_id, user_id | 3.1.4-RC1 | This event is used for performing actions directly before marking forums, |
+ | | | | | topics or posts as read. |
+ | | | | | |
+ | | | | | It is also possible to prevent the marking. For that, the $should_markread parameter |
+ | | | | | should be set to FALSE. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_ban_after | includes/mcp/mcp_ban.php | ban, ban_exclude, ban_give_reason, ban_length, ban_length_other, ban_reason, mode | 3.1.0-RC5 | Use this event to perform actions after the ban has been performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_ban_before | includes/mcp/mcp_ban.php | abort_ban, ban, ban_exclude, ban_give_reason, ban_length, ban_length_other, ban_reason, mode | 3.1.0-RC5 | Use this event to modify the ban details before the ban is performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_ban_confirm | includes/mcp/mcp_ban.php | hidden_fields | 3.1.0-RC5 | Use this event to pass data from the ban form to the confirmation screen |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_ban_main | includes/mcp/mcp_ban.php | bansubmit, mode, unbansubmit | 3.1.0-RC5 | Use this event to pass perform actions when a ban is issued or revoked |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_change_poster_after | includes/mcp/mcp_post.php | post_info, userdata | 3.1.6-RC1 | This event allows you to perform additional tasks after changing a post's poster |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_change_topic_type_after | includes/mcp/mcp_main.php | forum_id, new_topic_type, topic_ids | 3.2.6-RC1 | Perform additional actions after changing topic types |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_change_topic_type_before | includes/mcp/mcp_main.php | forum_id, new_topic_type, topic_ids | 3.2.6-RC1 | Perform additional actions before changing topic(s) type |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_delete_topic_modify_hidden_fields | includes/mcp/mcp_main.php | forum_id, l_confirm, only_shadow, only_softdeleted, s_hidden_fields, topic_ids | 3.3.3-RC1 | This event allows you to modify the hidden form fields when deleting topics |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_delete_topic_modify_permissions | includes/mcp/mcp_main.php | action, check_permission, forum_id, is_soft, soft_delete_reason, topic_ids | 3.3.3-RC1 | This event allows you to modify the current user's checked permissions when deleting a topic |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_forum_merge_topics_after | includes/mcp/mcp_forum.php | all_topic_data, to_topic_id | 3.1.11-RC1 | Perform additional actions after merging topics. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_forum_topic_data_modify_sql | includes/mcp/mcp_forum.php | forum_id, sql_ary, topic_list | 3.3.4-RC1 | Event to modify SQL query before MCP forum topic data is queried |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_forum_view_before | includes/mcp/mcp_forum.php | action, forum_info, post_id_list, source_topic_ids, start, to_topic_id, topic_id_list | 3.1.6-RC1 | Get some data in order to execute other actions. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_queue_unapproved_total_before | includes/mcp/mcp_front.php | forum_list, sql_ary | 3.1.5-RC1 | Allow altering the query to get the number of unapproved posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_reports_count_query_before | includes/mcp/mcp_front.php | forum_list, sql | 3.1.5-RC1 | Alter sql query to count the number of reported posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_reports_listing_query_before | includes/mcp/mcp_front.php | forum_list, sql_ary | 3.1.0-RC3 | Alter sql query to get latest reported posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_view_modify_posts_data_sql | includes/mcp/mcp_front.php | forum_list, forum_names, post_list, sql, total | 3.3.5-RC1 | Alter posts data SQL query |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_view_modify_reported_post_row | includes/mcp/mcp_front.php | forum_list, mode, reported_post_row, row | 3.3.5-RC1 | Alter reported posts template block for MCP front page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_view_modify_unapproved_post_row | includes/mcp/mcp_front.php | forum_names, mode, row, unapproved_post_row | 3.3.5-RC1 | Alter unapproved posts template block for MCP front page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_front_view_queue_postid_list_after | includes/mcp/mcp_front.php | forum_list, forum_names, post_list, total | 3.1.0-RC3 | Alter list of posts and total as required |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_get_post_data_after | includes/functions_mcp.php | acl_list, post_ids, read_tracking, rowset | 3.3.1-RC1 | This event allows you to modify post data displayed in the MCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_global_f_read_auth_after | mcp.php | action, forum_id, mode, module, quickmod, topic_id | 3.1.3-RC1 | Allow applying additional permissions to MCP access besides f_read |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_lock_unlock_after | includes/mcp/mcp_main.php | action, data, ids | 3.1.7-RC1 | Perform additional actions after locking/unlocking posts/topics |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_main_before | includes/mcp/mcp_main.php | action, mode, quickmod | 3.2.8-RC1 | Event to perform additional actions before an MCP action is executed. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_main_fork_sql_after | includes/mcp/mcp_main.php | new_post_id, new_topic_id, row, to_forum_id | 3.2.4-RC1 | Perform actions after forked topic is created. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_main_modify_fork_post_sql | includes/mcp/mcp_main.php | counter, new_topic_id, row, sql_ary, to_forum_id | 3.3.5-RC1 | Modify the forked post's sql array before it's inserted into the database. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_main_modify_fork_sql | includes/mcp/mcp_main.php | sql_ary, topic_row | 3.1.11-RC1 | Perform actions before forked topic is created. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_main_modify_shadow_sql | includes/mcp/mcp_main.php | row, shadow | 3.1.11-RC1 | Perform actions before shadow topic is created. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_modify_permissions | mcp.php | allow_user, forum_id, quickmod, topic_id, user_quickmod_actions | 3.3.3-RC1 | Allow modification of the permissions to access the mcp file |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_post_additional_options | includes/mcp/mcp_post.php | action, post_info | 3.1.5-RC1 | This event allows you to handle custom post moderation options |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_post_template_data | includes/mcp/mcp_post.php | attachments, mcp_post_template_data, post_info, s_additional_opts | 3.1.5-RC1 | Event to add/modify MCP post template data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_queue_approve_details_template | includes/mcp/mcp_queue.php | message, post_data, post_id, post_info, post_url, topic_id, topic_info, topic_url | 3.2.2-RC1 | Alter post awaiting approval template before it is rendered |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_queue_get_posts_for_posts_query_before | includes/mcp/mcp_queue.php | forum_list, limit_time_sql, sort_order_sql, sql, topic_id, visibility_const | 3.2.3-RC2 | Alter sql query to get information on all posts in queue |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_queue_get_posts_for_topics_query_before | includes/mcp/mcp_queue.php | forum_list, limit_time_sql, sort_order_sql, sql, topic_id, visibility_const | 3.1.0-RC3 | Alter sql query to get information on all topics in the list of forums provided. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_queue_get_posts_modify_post_row | includes/mcp/mcp_queue.php | forum_names, post_row, row | 3.2.3-RC2 | Alter sql query to get information on all topics in the list of forums provided. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_queue_get_posts_query_before | includes/mcp/mcp_queue.php | forum_list, limit_time_sql, sort_order_sql, sql, topic_id, visibility_const | 3.1.0-RC3 | Alter sql query to get posts in queue to be accepted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_report_template_data | includes/mcp/mcp_reports.php | forum_id, post_id, post_info, report, report_id, report_template, topic_id | 3.2.5-RC1 | Event to add/modify MCP report details template data. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_reports_get_reports_query_before | includes/mcp/mcp_reports.php | forum_list, limit_time_sql, sort_order_sql, sql, topic_id | 3.1.0-RC4 | Alter sql query to get report id of all reports for requested forum and topic or just forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_reports_modify_post_row | includes/mcp/mcp_reports.php | forum_data, mode, post_row, row, start, topic_id | 3.3.5-RC1 | Alter posts template block for MCP reports |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_reports_modify_reports_data_sql | includes/mcp/mcp_reports.php | forum_list, sort_order_sql, sql, topic_id | 3.3.5-RC1 | Alter sql query to get reports data for requested forum and topic or just forum |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_reports_report_details_query_after | includes/mcp/mcp_reports.php | forum_id, post_id, report, report_id, sql_ary | 3.1.5-RC1 | Allow changing the data obtained from the user-submitted report. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_reports_report_details_query_before | includes/mcp/mcp_reports.php | forum_id, post_id, report_id, sql_ary | 3.1.5-RC1 | Allow changing the query to obtain the user-submitted report. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_sorting_query_before | includes/functions_mcp.php | forum_id, limit_days, limit_time_sql, min_time, mode, sort_by_sql, sort_by_text, sort_days, sort_dir, sort_key, sql, topic_id, total, type, where_sql | 3.1.4-RC1 | This event allows you to control the SQL query used to get the total number |
+ | | | | | of reports the user can access. |
+ | | | | | |
+ | | | | | This total is used for the pagination and for displaying the total number |
+ | | | | | of reports to the user |
+ | | | | | |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_topic_modify_post_data | includes/mcp/mcp_topic.php | attachments, forum_id, id, mode, post_id_list, rowset, topic_id | 3.1.7-RC1 | Event to modify the post data for the MCP topic review before assigning the posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_topic_modify_sql_ary | includes/mcp/mcp_topic.php | sql_ary | 3.2.8-RC1 | Event to modify the SQL query before the MCP topic review posts is queried |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_topic_review_modify_row | includes/mcp/mcp_topic.php | current_row_number, forum_id, id, mode, post_row, row, start, topic_id, topic_info, total | 3.1.4-RC1 | Event to modify the template data block for topic reviews in the MCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_topic_review_modify_topic_row | includes/mcp/mcp_topic.php | action, forum_id, has_unapproved_posts, icon_id, id, mode, s_topic_icons, start, subject, to_forum_id, to_topic_id, topic_id, topic_info, topic_row, total | 3.3.5-RC1 | Event to modify the template data block for topic data output in the MCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_topic_split_topic_after | includes/mcp/mcp_topic.php | action, forum_id, start, subject, to_forum_id, to_topic_id, topic_id, topic_info | 3.3.5-RC1 | Event to access topic data after split |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_topics_merge_posts_after | includes/mcp/mcp_topic.php | to_topic_id, topic_id | 3.1.11-RC1 | Perform additional actions after merging posts. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_view_forum_modify_sql | includes/mcp/mcp_forum.php | forum_id, limit_time_sql, sort_order_sql, sql, start, topics_per_page | 3.1.2-RC1 | Modify SQL query before MCP forum view topic list is queried |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_view_forum_modify_topicrow | includes/mcp/mcp_forum.php | row, topic_row | 3.1.0-a1 | Modify the topic data before it is assigned to the template in MCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_warn_post_after | includes/mcp/mcp_warn.php | message, notify, post_id, user_row, warning | 3.1.0-b4 | Event for after warning a user for a post. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_warn_post_before | includes/mcp/mcp_warn.php | notify, post_id, s_mcp_warn_post, user_row, warning | 3.1.0-b4 | Event for before warning a user for a post. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_warn_user_after | includes/mcp/mcp_warn.php | message, notify, user_row, warning | 3.1.0-b4 | Event for after warning a user from MCP. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.mcp_warn_user_before | includes/mcp/mcp_warn.php | notify, s_mcp_warn_user, user_row, warning | 3.1.0-b4 | Event for before warning a user from MCP. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_memberrow_before | memberlist.php | use_contact_fields, user_list | 3.1.7-RC1 | Modify list of users before member row is created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_ip_search_sql_query | memberlist.php | ipdomain, ips, sql | 3.1.7-RC1 | Modify sql query for members search by ip address / hostname |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_memberrow_sql | memberlist.php | mode, sql_array, sql_from, sql_select, user_list | 3.2.6-RC1 | Modify user data SQL before member row is created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_sort_pagination_params | memberlist.php | first_char_block_vars, first_characters, params, sort_params, total_users, u_first_char_params | 3.2.6-RC1 | Modify memberlist sort and pagination parameters |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_sql_query_data | memberlist.php | order_by, sort_dir, sort_key, sort_key_sql, sql_from, sql_select, sql_where, sql_where_data | 3.1.7-RC1 | Modify sql query data for members search |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_template_vars | memberlist.php | params, sort_url, template_vars | 3.2.2-RC1 | Modify memberlist page template vars |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_view_profile_template_vars | memberlist.php | template_ary | 3.2.6-RC1 | Modify user's template vars before we display the profile |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_modify_viewprofile_sql | memberlist.php | sql_array, user_id, username | 3.2.6-RC1 | Modify user data SQL before member profile row is created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_prepare_profile_data | includes/functions_display.php | data, template_data | 3.1.0-a1 | Preparing a user's data before displaying it in profile and memberlist |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_team_modify_query | memberlist.php | group_ids, sql_ary, teampage_data | 3.1.3-RC1 | Modify the query used to get the users for the team page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_team_modify_template_vars | memberlist.php | groups_ary, row, template_vars | 3.1.3-RC1 | Modify the template vars for displaying the user in the groups on the teampage |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.memberlist_view_profile | memberlist.php | foe, foes_enabled, friend, friends_enabled, member, profile_fields, user_notes_enabled, warn_user_enabled, zebra_enabled | 3.1.0-a1 | Modify user data before we display the profile |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.message_admin_form_submit_before | phpbb/message/admin_form.php | body, errors, subject | 3.2.6-RC1 | You can use this event to modify subject and/or body and add new errors. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.message_history_modify_rowset | includes/functions_privmsgs.php | folder, in_post_mode, message_row, msg_id, rowset, title, url, user_id | 3.3.1-RC1 | Modify message rows before displaying the history in private messages |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.message_history_modify_sql_ary | includes/functions_privmsgs.php | sql_ary | 3.2.8-RC1 | Event to modify the SQL query before the message history in private message is queried |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.message_history_modify_template_vars | includes/functions_privmsgs.php | row, template_vars | 3.2.8-RC1 | Modify the template vars for displaying the message history in private message |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.message_list_actions | includes/ucp/ucp_pm_compose.php | add_bcc, add_to, address_list, error, remove_g, remove_u | 3.2.4-RC1 | Event for additional message list actions |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.message_parser_check_message | includes/message_parser.php | allow_bbcode, allow_flash_bbcode, allow_img_bbcode, allow_magic_url, allow_quote_bbcode, allow_smilies, allow_url_bbcode, bbcode_bitfield, bbcode_uid, message, mode, return, update_this_message, warn_msg | 3.1.2-RC1 | This event can be used for additional message checks/cleanup before parsing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_attachment_data_on_submit | includes/message_parser.php | attachment_data | 3.2.2-RC1 | Modify attachment data on submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_attachment_data_on_upload | includes/message_parser.php | attachment_data | 3.2.2-RC1 | Modify attachment data on upload |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_attachment_sql_ary_on_submit | includes/message_parser.php | sql_ary | 3.2.6-RC1 | Modify attachment sql array on submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_attachment_sql_ary_on_upload | includes/message_parser.php | sql_ary | 3.2.6-RC1 | Modify attachment sql array on upload |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_bbcode_init | includes/message_parser.php | bbcodes, rowset | 3.1.0-a3 | Event to modify the bbcode data for later parsing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_default_attachments_template_vars | includes/functions_posting.php | allowed_attachments, default_vars | 3.3.6-RC1 | Modify default attachments template vars |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_email_headers | includes/functions_messenger.php | headers | 3.1.11-RC1 | Event to modify email header entries |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_format_display_text_after | includes/message_parser.php | allow_bbcode, allow_magic_url, allow_smilies, text, uid, update_this_message | 3.1.0-a3 | Event to modify the text after it is parsed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_format_display_text_before | includes/message_parser.php | allow_bbcode, allow_magic_url, allow_smilies, text, uid, update_this_message | 3.1.6-RC1 | Event to modify the text before it is parsed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_group_name_string | phpbb/group/helper.php | custom_profile_url, group_colour, group_id, group_name, group_name_string, mode, name_strings | 3.2.8-RC1 | Use this event to change the output of the group name |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_inline_attachments_template_vars | includes/functions_posting.php | attachment_data, attachrow_template_vars | 3.2.2-RC1 | Modify inline attachments template vars |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_mcp_modules_display_option | mcp.php | forum_id, id, mode, module, post_id, topic_id, user_id, username | 3.1.0-b2 | This event allows you to set display option for custom MCP modules |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_memberlist_viewprofile_group_data | memberlist.php | group_data, group_sort | 3.2.6-RC1 | Modify group data before options is created and data is unset |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_memberlist_viewprofile_group_sql | memberlist.php | sql_ary | 3.2.6-RC1 | Modify the query used to get the group data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_module_row | includes/functions_module.php | custom_func, lang_func, module_row, row, url_func | 3.1.0-b3 | This event allows to modify parameters for building modules list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_notification_message | includes/functions_messenger.php | break, message, method, subject | 3.1.11-RC1 | Event to modify notification message text after parsing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_notification_template | includes/functions_messenger.php | break, method, subject, template | 3.2.4-RC1 | Event to modify the template before parsing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_pm_attach_download_auth | includes/functions_download.php | allowed, msg_id, user_id | 3.1.11-RC1 | Event to modify PM attachments download auth |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_posting_auth | posting.php | draft_id, error, forum_id, is_authed, load, mode, post_data, post_id, preview, refresh, save, submit, topic_id | 3.1.3-RC1 | This event allows you to do extra auth checks and verify if the user |
+ | | | | | has the required permissions |
+ | | | | | |
+ | | | | | Extensions should only change the error and is_authed variables. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_posting_parameters | posting.php | cancel, draft_id, error, forum_id, load, mode, post_id, preview, refresh, save, submit, topic_id | 3.1.0-a1 | This event allows you to alter the above parameters, such as submit and mode |
+ | | | | | |
+ | | | | | Note: $refresh must be true to retain previously submitted form data. |
+ | | | | | |
+ | | | | | Note: The template class will not work properly until $user->setup() is |
+ | | | | | called, and it has not been called yet. Extensions requiring template |
+ | | | | | assignments should use an event that comes later in this file. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_quickmod_actions | includes/mcp/mcp_main.php | action, quickmod | 3.1.0-a4 | This event allows you to handle custom quickmod options |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_quickmod_options | mcp.php | action, is_valid_action, module | 3.1.0-a4 | This event allows you to add custom quickmod options |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_submit_notification_data | includes/functions_posting.php | data_ary, mode, notification_data, poster_id | 3.2.4-RC1 | This event allows you to modify the notification data upon submission |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_submit_post_data | includes/functions_posting.php | data, mode, poll, subject, topic_type, update_message, update_search_index, username | 3.1.0-a4 | Modify the data for post submitting |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_text_for_display_after | includes/functions_content.php | bitfield, flags, text, uid | 3.1.0-a1 | Use this event to modify the text after it is parsed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_text_for_display_before | includes/functions_content.php | bitfield, censor_text, flags, text, uid | 3.1.0-a1 | Use this event to modify the text before it is parsed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_text_for_edit_after | includes/functions_content.php | flags, text | 3.1.0-a1 | Use this event to modify the text after it is decoded for editing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_text_for_edit_before | includes/functions_content.php | flags, text, uid | 3.1.0-a1 | Use this event to modify the text before it is decoded for editing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_text_for_storage_after | includes/functions_content.php | bitfield, flags, message_parser, text, uid | 3.1.0-a1 | Use this event to modify the text after it is prepared for storage |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_text_for_storage_before | includes/functions_content.php | allow_bbcode, allow_flash_bbcode, allow_img_bbcode, allow_quote_bbcode, allow_smilies, allow_url_bbcode, allow_urls, bitfield, flags, mode, text, uid | 3.1.0-a1 | Use this event to modify the text before it is prepared for storage |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_uploaded_file | phpbb/attachment/upload.php | filedata, is_image | 3.1.0-RC3 | Event to modify uploaded file before submit to the post |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_user_rank | includes/functions_display.php | user_data, user_posts | 3.1.0-RC4 | Preparing a user's rank before displaying |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.modify_username_string | includes/functions_content.php | _profile_cache, custom_profile_url, guest_username, mode, user_id, username, username_colour, username_string | 3.1.0-a1 | Use this event to change the output of get_username_string() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.module_auth | includes/functions_module.php | forum_id, module_auth, valid_tokens | 3.1.0-a3 | Alter tokens for module authorisation check |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.move_posts_after | includes/functions_admin.php | auto_sync, forum_ids, forum_row, post_ids, topic_id, topic_ids | 3.1.7-RC1 | Perform additional actions after moving posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.move_posts_before | includes/functions_admin.php | auto_sync, forum_ids, forum_row, post_ids, topic_id, topic_ids | 3.1.7-RC1 | Perform additional actions before moving posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.move_posts_sync_after | includes/functions_admin.php | auto_sync, forum_ids, forum_row, post_ids, topic_id, topic_ids | 3.1.11-RC1 | Perform additional actions after move post sync |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.move_topics_after | includes/functions_admin.php | forum_id, forum_ids, topic_ids | 3.2.9-RC1 | Perform additional actions after topics move |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.move_topics_before | includes/functions_admin.php | forum_id, topic_ids | 3.2.9-RC1 | Perform additional actions before topics move |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.move_topics_before_query | includes/functions_admin.php | auto_sync, forum_id, forum_ids, table_ary, topic_ids | 3.1.5-RC1 | Perform additional actions before topics move |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.notification_manager_add_notifications | phpbb/notification/manager.php | data, notification_type_name, notify_users, options | 3.1.3-RC1 | Allow filtering the notify_users array for a notification that is about to be sent. |
+ | | | | | Here, $notify_users is already filtered by f_read and the ignored list included in the options variable |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.notification_manager_add_notifications_before | phpbb/notification/manager.php | add_notifications_override, data, notification_type_name, notified_users, options | 3.3.6-RC1 | Get notification data before find_users_for_notification() execute |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.notification_manager_add_notifications_for_users_modify_data | phpbb/notification/manager.php | data, notification_type_name, notify_users | 3.3.1-RC1 | Allow filtering the $notify_users array by $notification_type_name for a notification that is about to be sent. |
+ | | | | | Here, $notify_users is already filtered from users who've already been notified. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.notification_message_email | includes/functions_messenger.php | addresses, break, msg, subject | 3.2.4-RC1 | Event to send message via external transport |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.notification_message_process | includes/functions_messenger.php | addresses, break, msg, subject | 3.2.4-RC1 | Event to send message via external transport |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.oauth_login_after_check_if_provider_id_has_match | phpbb/auth/provider/oauth/oauth.php | data, redirect_data, row, service | 3.2.3-RC1 | Event is triggered before check if provider is already associated with an account |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.obtain_users_online_string_before_modify | includes/functions.php | item, item_id, online_users, rowset, user_online_link | 3.1.10-RC1 | Modify online userlist data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.obtain_users_online_string_modify | includes/functions.php | item, item_id, l_online_users, online_userlist, online_users, rowset, user_online_link | 3.1.4-RC1 | Modify online userlist data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.obtain_users_online_string_sql | includes/functions.php | item, item_id, online_users, sql_ary | 3.1.4-RC1 | Modify SQL query to obtain online users data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.page_footer | includes/functions.php | page_footer_override, run_cron | 3.1.0-a1 | Execute code and/or overwrite page_footer() |
+ | | phpbb/controller/helper.php | | | |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.page_footer_after | includes/functions.php | display_template, exit_handler | 3.1.0-RC5 | Execute code and/or modify output before displaying the template. |
+ | | phpbb/controller/helper.php | | | |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.page_header | includes/functions.php | display_online_list, item, item_id, page_header_override, page_title | 3.1.0-a1 | Execute code and/or overwrite page_header() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.page_header_after | includes/functions.php | display_online_list, http_headers, item, item_id, page_title | 3.1.0-b3 | Execute code and/or overwrite _common_ template variables after they have been assigned. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.pagination_generate_page_link | phpbb/pagination.php | base_url, generate_page_link_override, on_page, per_page, start_name | 3.1.0-RC5 | Execute code and/or override generate_page_link() |
+ | | | | | |
+ | | | | | To override the generate_page_link() function generated value |
+ | | | | | set $generate_page_link_override to the new URL value |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.parse_attachments_modify_template_data | includes/functions_content.php | attachment, block_array, display_cat, download_link, extensions, forum_id, preview, update_count | 3.1.0-RC5 | Use this event to modify the attachment template data. |
+ | | | | | |
+ | | | | | This event is triggered once per attachment. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.permissions | phpbb/permissions.php | categories, permissions, types | 3.1.0-a1 | Allows to specify additional permission categories, types and permissions |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_content_visibility_get_forums_visibility_before | phpbb/content_visibility.php | approve_forums, forum_ids, get_forums_visibility_sql_overwrite, mode, table_alias, where_sql | 3.1.3-RC1 | Allow changing the result of calling get_forums_visibility_sql |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_content_visibility_get_global_visibility_before | phpbb/content_visibility.php | approve_forums, exclude_forum_ids, mode, table_alias, visibility_sql_overwrite, where_sqls | 3.1.3-RC1 | Allow changing the result of calling get_global_visibility_sql |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_content_visibility_get_visibility_sql_before | phpbb/content_visibility.php | forum_id, get_visibility_sql_overwrite, mode, table_alias, where_sql | 3.1.4-RC1 | Allow changing the result of calling get_visibility_sql |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_content_visibility_is_visible | phpbb/content_visibility.php | data, forum_id, is_visible, mode | 3.2.2-RC1 | Allow changing the result of calling is_visible |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_generate_debug_output | includes/functions.php | debug_info | 3.1.0-RC3 | Modify debug output information |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_log_get_topic_auth_sql_after | phpbb/log/log.php | forum_auth, row | 3.2.2-RC1 | Allow modifying SQL query after topic data is retrieved (inside loop). |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_log_get_topic_auth_sql_before | phpbb/log/log.php | sql_ary, topic_ids | 3.1.11-RC1 | Allow modifying SQL query before topic data is retrieved. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_mail_after | includes/functions_messenger.php | additional_parameters, eol, headers, msg, result, subject, to | 3.3.6-RC1 | Execute code after sending out emails with PHP's mail function |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.phpbb_mail_before | includes/functions_messenger.php | additional_parameters, eol, headers, msg, subject, to | 3.3.6-RC1 | Modify data before sending out emails with PHP's mail function |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.pm_modify_message_subject | includes/ucp/ucp_pm_compose.php | message_subject | 3.2.8-RC1 | This event allows you to modify the PM subject of the PM being quoted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_bbcode_status | posting.php | bbcode_status, flash_status, img_status, quote_status, smilies_status, url_status | 3.3.3-RC1 | Event to override message BBCode status indications |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_cannot_edit_conditions | posting.php | force_edit_allowed, post_data, s_cannot_edit, s_cannot_edit_locked, s_cannot_edit_time | 3.1.0-b4 | This event allows you to modify the conditions for the "cannot edit post" checks |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_default_variables | posting.php | post_data, uninit | 3.2.5-RC1 | This event allows you to modify the default variables for post_data, and unset them in post_data if needed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_message_text | posting.php | cancel, error, forum_id, load, message_parser, mode, post_data, post_id, preview, refresh, save, submit, topic_id | 3.1.2-RC1 | This event allows you to modify message text before parsing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_post_data | posting.php | forum_id, mode, post_data, post_id, topic_id | 3.2.2-RC1 | This event allows you to modify the post data before parsing |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_post_subject | posting.php | post_subject | 3.2.8-RC1 | This event allows you to modify the post subject of the post being quoted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_quote_attributes | posting.php | post_data, quote_attributes | 3.2.6-RC1 | This event allows you to modify the quote attributes of the post being quoted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_row_data | posting.php | forum_id, mode, post_data, topic_id | 3.2.8-RC1 | This event allows you to bypass reply/quote test of an unapproved post. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_submission_errors | posting.php | error, forum_id, mode, poll, post_data, post_id, submit, topic_id | 3.1.0-RC5 | This event allows you to define errors before the post action is performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_submit_post_after | posting.php | data, forum_id, mode, poll, post_author_name, post_data, post_id, redirect_url, topic_id, update_message, update_subject | 3.1.0-RC5 | This event allows you to define errors after the post action is performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_submit_post_before | posting.php | data, forum_id, mode, poll, post_author_name, post_data, post_id, topic_id, update_message, update_subject | 3.1.0-RC5 | This event allows you to define errors before the post action is performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.posting_modify_template_vars | posting.php | cancel, draft_id, error, form_enctype, forum_id, load, message_parser, mode, moderators, page_data, page_title, post_data, post_id, preview, refresh, s_action, s_hidden_fields, s_topic_icons, save, submit, topic_id | 3.1.0-a1 | This event allows you to modify template variables for the posting screen |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.prune_delete_before | includes/functions_admin.php | topic_list | 3.2.2-RC1 | Perform additional actions before topic deletion via pruning |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.prune_forums_settings_confirm | includes/acp/acp_prune.php | hidden_fields | 3.2.2-RC1 | Use this event to pass data from the prune form to the confirmation screen |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.prune_forums_settings_template_data | includes/acp/acp_prune.php | template_data | 3.2.2-RC1 | Event to add/modify prune forums settings template data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.prune_sql | includes/functions_admin.php | auto_sync, forum_id, prune_date, prune_flags, prune_limit, prune_mode, sql_and | 3.1.3-RC1 | Use this event to modify the SQL that selects topics to be pruned |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.report_post_auth | phpbb/report/report_handler_post.php | acl_check_ary, forum_data, report_data | 3.1.3-RC1 | This event allows you to do extra auth checks and verify if the user |
+ | | | | | has the required permissions |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_backend_search_after | search.php | author_id_ary, ex_fid_ary, id_ary, m_approve_posts_fid_sql, per_page, search_fields, search_terms, show_results, sort_by_sql, sort_days, sort_dir, sort_key, sql_author_match, start, topic_id, total_match_count | 3.1.10-RC1 | Event to search otherwise than by keywords or author |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_get_posts_data | search.php | author_id_ary, ex_fid_ary, keywords, s_limit_days, s_sort_dir, s_sort_key, search_fields, search_id, sort_by_sql, sql_array, start, total_match_count, zebra | 3.1.0-b3 | Event to modify the SQL query before the posts data is retrieved |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_get_topic_data | search.php | sort_by_sql, sort_dir, sort_key, sql_from, sql_order_by, sql_select, sql_where, total_match_count | 3.1.0-a1 | Event to modify the SQL query before the topic data is retrieved |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_forum_select_list | search.php | rowset | 3.1.10-RC1 | Modify the forum select list for advanced search page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_param_after | search.php | l_search_title, search_id, show_results, sql | 3.1.7-RC1 | Event to modify data after pre-made searches |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_param_before | search.php | author_id_ary, ex_fid_ary, id_ary, keywords, search_id, show_results, sort_by_sql | 3.1.3-RC1 | Event to modify the SQL parameters before pre-made searches |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_post_row | search.php | hilit, row, u_hilit, view, zebra | 3.2.2-RC1 | Modify the row of a post result before the post_text is trimmed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_rowset | search.php | attachments, hilit, rowset, show_results, topic_tracking_info, u_hilit, view, zebra | 3.1.0-b4 | Modify the rowset data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_submit_parameters | search.php | author, author_id, keywords, search_id, submit | 3.1.10-RC1 | This event allows you to alter the above parameters, such as keywords and submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_tpl_ary | search.php | attachments, folder_alt, folder_img, posts_unapproved, replies, row, show_results, topic_deleted, topic_title, topic_type, topic_unapproved, tpl_ary, u_mcp_queue, unread_topic, view_topic_url, zebra | 3.1.0-a1 | Modify the topic data before it is assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_modify_url_parameters | search.php | ex_fid_ary, search_id, show_results, sql_where, total_match_count, u_search | 3.1.7-RC1 | Event to add or modify search URL parameters |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_author_query_before | phpbb/search/fulltext_mysql.php | author_ary, author_name, ex_fid_ary, firstpost_only, m_approve_fid_sql, result_count, sort_by_sql, sort_days, sort_dir, sort_key, sql_author, sql_firstpost, sql_fora, sql_sort, sql_sort_join, sql_sort_table, sql_time, sql_topic_id, start, topic_id, type | 3.1.5-RC1 | Allow changing the query used to search for posts by author in fulltext_mysql |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_by_author_modify_search_key | phpbb/search/fulltext_mysql.php | author_ary, author_name, ex_fid_ary, firstpost_only, post_visibility, search_key_array, sort_days, sort_key, topic_id, type | 3.1.7-RC1 | Allow changing the search_key for cached results |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_by_keyword_modify_search_key | phpbb/search/fulltext_mysql.php | author_ary, ex_fid_ary, fields, post_visibility, search_key_array, sort_days, sort_key, terms, topic_id, type | 3.1.7-RC1 | Allow changing the search_key for cached results |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_create_index_before | phpbb/search/fulltext_mysql.php | sql_queries, stats | 3.2.3-RC1 | Event to modify SQL queries before the MySQL search index is created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_delete_index_before | phpbb/search/fulltext_mysql.php | sql_queries, stats | 3.2.3-RC1 | Event to modify SQL queries before the MySQL search index is deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_index_before | phpbb/search/fulltext_mysql.php | forum_id, message, mode, post_id, poster_id, split_text, split_title, subject, words | 3.2.3-RC1 | Event to modify method arguments and words before the MySQL search index is updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_mysql_keywords_main_query_before | phpbb/search/fulltext_mysql.php | author_ary, author_name, ex_fid_ary, join_topic, result_count, search_query, sort_by_sql, sort_days, sort_dir, sort_key, sql_match, sql_match_where, sql_sort, sql_sort_join, sql_sort_table, start, topic_id | 3.1.5-RC1 | Allow changing the query used to search for posts using fulltext_mysql |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_native_author_count_query_before | phpbb/search/fulltext_native.php | ex_fid_ary, firstpost_only, select, sort_by_sql, sort_days, sort_dir, sort_key, sql_author, sql_firstpost, sql_fora, sql_sort, sql_sort_join, sql_sort_table, sql_time, start, topic_id, total_results, type | 3.1.5-RC1 | Allow changing the query used to search for posts by author in fulltext_native |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_native_by_author_modify_search_key | phpbb/search/fulltext_native.php | author_ary, author_name, ex_fid_ary, firstpost_only, post_visibility, search_key_array, sort_days, sort_key, topic_id, type | 3.1.7-RC1 | Allow changing the search_key for cached results |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_native_by_keyword_modify_search_key | phpbb/search/fulltext_native.php | author_ary, ex_fid_ary, fields, must_contain_ids, must_exclude_one_ids, must_not_contain_ids, post_visibility, search_key_array, sort_days, sort_key, terms, topic_id, type | 3.1.7-RC1 | Allow changing the search_key for cached results |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_native_delete_index_before | phpbb/search/fulltext_native.php | sql_queries, stats | 3.2.3-RC1 | Event to modify SQL queries before the native search index is deleted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_native_index_before | phpbb/search/fulltext_native.php | cur_words, forum_id, message, mode, post_id, poster_id, split_text, split_title, subject, words | 3.2.3-RC1 | Event to modify method arguments and words before the native search index is updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_native_keywords_count_query_before | phpbb/search/fulltext_native.php | author_ary, author_name, ex_fid_ary, group_by, left_join_topics, must_contain_ids, must_exclude_one_ids, must_not_contain_ids, search_query, sort_by_sql, sort_days, sort_dir, sort_key, sql_array, sql_match, sql_match_where, sql_sort, sql_sort_join, sql_sort_table, sql_where, start, topic_id, total_results | 3.1.5-RC1 | Allow changing the query used for counting for posts using fulltext_native |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_author_count_query_before | phpbb/search/fulltext_postgres.php | author_ary, author_name, ex_fid_ary, firstpost_only, m_approve_fid_sql, result_count, sort_by_sql, sort_days, sort_dir, sort_key, sql_author, sql_fora, sql_sort, sql_sort_join, sql_sort_table, sql_time, sql_topic_id, start, topic_id | 3.1.5-RC1 | Allow changing the query used to search for posts by author in fulltext_postgres |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_by_author_modify_search_key | phpbb/search/fulltext_postgres.php | author_ary, author_name, ex_fid_ary, firstpost_only, post_visibility, search_key_array, sort_days, sort_key, topic_id, type | 3.1.7-RC1 | Allow changing the search_key for cached results |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_by_keyword_modify_search_key | phpbb/search/fulltext_postgres.php | author_ary, ex_fid_ary, fields, post_visibility, search_key_array, sort_days, sort_key, terms, topic_id, type | 3.1.7-RC1 | Allow changing the search_key for cached results |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_create_index_before | phpbb/search/fulltext_postgres.php | sql_queries, stats | 3.2.3-RC1 | Event to modify SQL queries before the Postgres search index is created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_delete_index_before | phpbb/search/fulltext_postgres.php | sql_queries, stats | 3.2.3-RC1 | Event to modify SQL queries before the Postgres search index is created |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_index_before | phpbb/search/fulltext_postgres.php | forum_id, message, mode, post_id, poster_id, split_text, split_title, subject, words | 3.2.3-RC1 | Event to modify method arguments and words before the PostgreSQL search index is updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_postgres_keywords_main_query_before | phpbb/search/fulltext_postgres.php | author_ary, author_name, ex_fid_ary, join_topic, result_count, sort_by_sql, sort_days, sort_dir, sort_key, sql_match, sql_match_where, sql_sort, sql_sort_join, sql_sort_table, start, topic_id, tsearch_query | 3.1.5-RC1 | Allow changing the query used to search for posts using fulltext_postgres |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_results_modify_search_title | search.php | author_id, keywords, l_search_title, search_id, show_results, start, total_match_count | 3.1.0-RC4 | Modify the title and/or load data for the search results page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_sphinx_index_before | phpbb/search/fulltext_sphinx.php | forum_id, message, mode, post_id, poster_id, subject | 3.2.3-RC1 | Event to modify method arguments before the Sphinx search index is updated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_sphinx_keywords_modify_options | phpbb/search/fulltext_sphinx.php | author_ary, author_name, ex_fid_ary, fields, post_visibility, sort_days, sort_key, sphinx, terms, topic_id, type | 3.1.7-RC1 | Allow modifying the Sphinx search options |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.search_sphinx_modify_config_data | phpbb/search/fulltext_sphinx.php | config_data, delete, non_unique | 3.1.7-RC1 | Allow adding/changing the Sphinx configuration data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.send_file_to_browser_before | includes/functions_download.php | attachment, category, filename, size, upload_dir | 3.1.11-RC1 | Event to alter attachment before it is sent to browser. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.session_create_after | phpbb/session.php | session_data | 3.1.6-RC1 | Event to send new session data to extension |
+ | | | | | Read-only event |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.session_gc_after | phpbb/session.php | | 3.1.6-RC1 | Event to trigger extension on session_gc |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.session_ip_after | phpbb/session.php | ip | 3.1.10-RC1 | Event to alter user IP address |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.session_kill_after | phpbb/session.php | new_session, session_id, user_id | 3.1.6-RC1 | Event to send session kill information to extension |
+ | | | | | Read-only event |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.session_set_custom_ban | phpbb/session.php | ban_row, ban_triggered_by, banned, return | 3.1.3-RC1 | Event to set custom ban type |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.set_cookie | phpbb/session.php | cookiedata, cookietime, disable_cookie, httponly, name | 3.2.9-RC1 | Event to modify or disable setting cookies |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.set_login_key | phpbb/session.php | key, key_id, sql, sql_ary, user_id, user_ip | 3.3.2-RC1 | Event to adjust autologin keys process |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.set_post_visibility_after | phpbb/content_visibility.php | data, forum_id, is_latest, is_starter, post_id, reason, time, topic_id, user_id, visibility | 3.1.10-RC1 | Perform actions after all steps to changing post visibility |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.set_post_visibility_before_sql | phpbb/content_visibility.php | data, forum_id, is_latest, is_starter, post_id, reason, time, topic_id, user_id, visibility | 3.1.10-RC1 | Perform actions right before the query to change post visibility |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.set_topic_visibility_after | phpbb/content_visibility.php | data, force_update_all, forum_id, reason, time, topic_id, user_id, visibility | 3.1.10-RC1 | Perform actions after all steps to changing topic visibility |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.set_topic_visibility_before_sql | phpbb/content_visibility.php | data, force_update_all, forum_id, reason, time, topic_id, user_id, visibility | 3.1.10-RC1 | Perform actions right before the query to change topic visibility |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.smiley_text_root_path | includes/functions_content.php | root_path | 3.1.11-RC1 | Event to override the root_path for smilies |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.submit_pm_after | includes/functions_privmsgs.php | data, mode, pm_data, subject | 3.1.0-b5 | Get PM message ID after submission to DB |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.submit_pm_before | includes/functions_privmsgs.php | data, mode, subject | 3.1.0-b3 | Get all parts of the PM that are to be submited to the DB. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.submit_post_end | includes/functions_posting.php | data, mode, poll, post_visibility, subject, topic_type, update_message, update_search_index, url, username | 3.1.0-a3 | This event is used for performing actions directly after a post or topic |
+ | | | | | has been submitted. When a new topic is posted, the topic ID is |
+ | | | | | available in the $data array. |
+ | | | | | |
+ | | | | | The only action that can be done by altering data made available to this |
+ | | | | | event is to modify the return URL ($url). |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.submit_post_modify_sql_data | includes/functions_posting.php | data, poll, post_mode, sql_data, subject, topic_type, username | 3.1.3-RC1 | Modify sql query data for post submitting |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.sync_forum_last_post_info_sql | includes/functions_admin.php | sql_ary | 3.3.5-RC1 | Event to modify the SQL array to get the post and user data from all forums' last posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.sync_modify_forum_data | includes/functions_admin.php | fieldnames, forum_data, post_info | 3.3.5-RC1 | Event to modify the SQL array to get the post and user data from all forums' last posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.sync_modify_topic_data | includes/functions_admin.php | row, topic_data, topic_id | 3.3.5-RC1 | Event to modify the topic_data when syncing topics |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.sync_topic_last_post_info_sql | includes/functions_admin.php | custom_fieldnames, sql_ary | 3.3.5-RC1 | Event to modify the SQL array to get the post and user data from all topics' last posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_configure_after | phpbb/textformatter/s9e/factory.php | configurator | 3.2.0-a1 | Modify the s9e\TextFormatter configurator after the default settings are set |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_configure_before | phpbb/textformatter/s9e/factory.php | configurator | 3.2.0-a1 | Modify the s9e\TextFormatter configurator before the default settings are set |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_configure_finalize | phpbb/textformatter/s9e/factory.php | objects | 3.2.2-RC1 | Access the objects returned by finalize() before they are saved to cache |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_get_errors | phpbb/textformatter/s9e/parser.php | entries, errors, parser | 3.3.1-RC1 | Modify error messages generated by the s9e\TextFormatter's logger |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_parse_after | phpbb/textformatter/s9e/parser.php | parser, xml | 3.2.0-a1 | Modify a parsed text in its XML form |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_parse_before | phpbb/textformatter/s9e/parser.php | parser, text | 3.2.0-a1 | Modify a text before it is parsed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_parser_setup | phpbb/textformatter/s9e/parser.php | parser | 3.2.0-a1 | Configure the parser service |
+ | | | | | |
+ | | | | | Can be used to: |
+ | | | | | - toggle features or BBCodes |
+ | | | | | - register variables or custom parsers in the s9e\TextFormatter parser |
+ | | | | | - configure the s9e\TextFormatter parser's runtime settings |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_render_after | phpbb/textformatter/s9e/renderer.php | html, renderer | 3.2.0-a1 | Modify a rendered text |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_render_before | phpbb/textformatter/s9e/renderer.php | renderer, xml | 3.2.0-a1 | Modify a parsed text before it is rendered |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.text_formatter_s9e_renderer_setup | phpbb/textformatter/s9e/renderer.php | renderer | 3.2.0-a1 | Configure the renderer service |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.thumbnail_create_before | includes/functions_posting.php | destination, mimetype, new_height, new_width, source, thumbnail_created | 3.2.4 | Create thumbnail event to replace GD thumbnail creation with for example ImageMagick |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.topic_review_modify_post_list | includes/functions_posting.php | attachments, cur_post_id, forum_id, mode, post_list, rowset, show_quote_button, topic_id | 3.1.9-RC1 | Event to modify the posts list for topic reviews |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.topic_review_modify_row | includes/functions_posting.php | cur_post_id, current_row_number, forum_id, mode, post_row, row, topic_id | 3.1.4-RC1 | Event to modify the template data block for topic reviews |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.topic_review_modify_sql_ary | includes/functions_posting.php | cur_post_id, forum_id, mode, post_list, show_quote_button, sql_ary, topic_id | 3.2.8-RC1 | Event to modify the SQL query for topic reviews |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.twig_environment_render_template_after | phpbb/template/twig/environment.php | context, name, output | 3.2.1-RC1 | Allow changing the template output stream after rendering |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.twig_environment_render_template_before | phpbb/template/twig/environment.php | context, name | 3.2.1-RC1 | Allow changing the template output stream before rendering |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_activate_after | includes/ucp/ucp_activate.php | message, user_row | 3.1.6-RC1 | This event can be used to modify data after user account's activation |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_add_zebra | includes/ucp/ucp_zebra.php | mode, sql_ary | 3.1.0-a1 | Add users to friends/foes |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_delete_cookies | ucp.php | cookie_name, retain_cookie | 3.1.3-RC1 | Event to save custom cookies from deletion |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_display_module_before | ucp.php | id, mode, module | 3.1.0-a1 | Use this event to enable and disable additional UCP modules |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_login_link_template_after | includes/ucp/ucp_login_link.php | auth_provider, data, login_error, login_link_error, login_username, tpl_ary | 3.2.4-RC1 | Event to perform additional actions before ucp_login_link is displayed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_front_modify_sql | includes/ucp/ucp_main.php | forum_ary, sql_from, sql_select | 3.2.4-RC1 | Modify sql variables before query is processed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_front_modify_template_vars | includes/ucp/ucp_main.php | folder_alt, folder_img, forum_id, row, topicrow | 3.2.4-RC1 | Add template variables to a front topics row. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_subscribed_forum_modify_template_vars | includes/ucp/ucp_main.php | folder_alt, folder_image, forum_id, last_post_time, last_post_url, row, template_vars, unread_forum | 3.1.10-RC1 | Add template variables to a subscribed forum row. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_subscribed_forums_modify_query | includes/ucp/ucp_main.php | forbidden_forums, sql_array | 3.1.10-RC1 | Modify the query used to retrieve a list of subscribed forums |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_subscribed_post_data | includes/ucp/ucp_main.php | | 3.1.10-RC1 | Read and potentially modify the post data used to remove subscriptions to forums/topics |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_topiclist_count_modify_query | includes/ucp/ucp_main.php | forbidden_forum_ary, mode, sql_array | 3.1.10-RC1 | Modify the query used to retrieve the count of subscribed/bookmarked topics |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_topiclist_modify_query | includes/ucp/ucp_main.php | forbidden_forum_ary, mode, sql_array | 3.1.10-RC1 | Modify the query used to retrieve the list of subscribed/bookmarked topics |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_main_topiclist_topic_modify_template_vars | includes/ucp/ucp_main.php | folder_alt, folder_img, forum_id, icons, replies, row, template_vars, topic_id, topic_type, unread_topic, view_topic_url | 3.1.10-RC1 | Add template variables to a subscribed/bookmarked topic row. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_modify_friends_sql | ucp.php | sql_ary | 3.3.1-RC1 | Event to modify the SQL query before listing of friends |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_modify_friends_template_vars | ucp.php | row, tpl_ary, which | 3.3.1-RC1 | Event to modify the template before listing of friends |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_notifications_output_notification_types_modify_template_vars | includes/ucp/ucp_notifications.php | method_data, subscriptions, tpl_ary, type_data | 3.3.1-RC1 | Event to perform additional actions before ucp_notifications is displayed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_notifications_submit_notification_is_set | includes/ucp/ucp_notifications.php | is_available, is_set_notify, method_data, subscriptions, type_data | 3.3.1-RC1 | Event to perform additional actions before ucp_notifications is submitted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_compose_pm_basic_info_query_after | includes/ucp/ucp_pm_compose.php | action, delete, msg_id, post, preview, reply_to_all, submit, to_group_id, to_user_id | 3.3.1-RC1 | Alter the row of the post being quoted when composing a private message |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_compose_pm_basic_info_query_before | includes/ucp/ucp_pm_compose.php | action, delete, msg_id, preview, reply_to_all, sql, submit, to_group_id, to_user_id | 3.1.0-RC5 | Alter sql query to get message for user to write the PM |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_modify_bbcode_status | includes/ucp/ucp_pm_compose.php | bbcode_status, flash_status, img_status, smilies_status, url_status | 3.3.3-RC1 | Event to override private message BBCode status indications |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_modify_data | includes/ucp/ucp_pm_compose.php | action, delete, msg_id, preview, reply_to_all, submit, to_group_id, to_user_id | 3.1.4-RC1 | Modify the default vars before composing a PM |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_modify_parse_after | includes/ucp/ucp_pm_compose.php | enable_bbcode, enable_sig, enable_smilies, enable_urls, error, message_parser, preview, subject, submit | 3.3.1-RC1 | Modify private message |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_modify_parse_before | includes/ucp/ucp_pm_compose.php | enable_bbcode, enable_sig, enable_smilies, enable_urls, error, message_parser, preview, subject, submit | 3.1.10-RC1 | Modify private message |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_predefined_message | includes/ucp/ucp_pm_compose.php | message_subject, message_text | 3.1.11-RC1 | Predefine message text and subject |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_quotepost_query_after | includes/ucp/ucp_pm_compose.php | action, delete, msg_id, post, preview, reply_to_all, sql, submit, to_group_id, to_user_id | 3.1.0-RC5 | Get the result of querying for the post to be quoted in the pm message |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_compose_template | includes/ucp/ucp_pm_compose.php | template_ary | 3.2.6-RC1 | Modify the default template vars |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_view_folder_get_pm_from_sql | includes/ucp/ucp_pm_viewfolder.php | sql_ary, sql_limit, sql_start | 3.1.11-RC1 | Modify SQL before it is executed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_view_folder_get_pm_from_template | includes/ucp/ucp_pm_viewfolder.php | base_url, folder, folder_id, pm_count, start, template_vars, user_id | 3.1.11-RC1 | Modify template variables before they are assigned |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_view_message | includes/ucp/ucp_pm_viewmessage.php | attachments, cp_row, folder, folder_id, id, message_row, mode, msg_data, msg_id, user_info | 3.2.2-RC1 | Modify pm and sender data before it is assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_view_message_before | includes/ucp/ucp_pm_viewmessage.php | author_id, folder, folder_id, message_row, msg_id | 3.3.1-RC1 | Modify private message data before it is prepared to be displayed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_pm_view_messsage | includes/ucp/ucp_pm_viewmessage.php | cp_row, folder, folder_id, id, message_row, mode, msg_data, msg_id, user_info | 3.1.0-a1 | Modify pm and sender data before it is assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_modify_common | includes/ucp/ucp_prefs.php | data, error, mode, s_hidden_fields | 3.1.0-RC3 | Modify UCP preferences data before the page load |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_personal_data | includes/ucp/ucp_prefs.php | data, error, submit | 3.1.0-a1 | Add UCP edit global settings data before they are assigned to the template or submitted |
+ | | | | | |
+ | | | | | To assign data to the template, use $template->assign_vars() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_personal_update_data | includes/ucp/ucp_prefs.php | data, sql_ary | 3.1.0-a1 | Update UCP edit global settings data on form submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_post_data | includes/ucp/ucp_prefs.php | data, submit | 3.1.0-a1 | Add UCP edit posting defaults data before they are assigned to the template or submitted |
+ | | | | | |
+ | | | | | To assign data to the template, use $template->assign_vars() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_post_update_data | includes/ucp/ucp_prefs.php | data, sql_ary | 3.1.0-a1 | Update UCP edit posting defaults data on form submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_view_after | includes/ucp/ucp_prefs.php | _options, data, limit_post_days, limit_topic_days, s_limit_post_days, s_limit_topic_days, s_sort_post_dir, s_sort_post_key, s_sort_topic_dir, s_sort_topic_key, sort_by_post_sql, sort_by_post_text, sort_by_topic_sql, sort_by_topic_text, sort_dir_text, submit | 3.1.8-RC1 | Run code before view form is displayed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_view_data | includes/ucp/ucp_prefs.php | data, submit | 3.1.0-a1 | Add UCP edit display options data before they are assigned to the template or submitted |
+ | | | | | |
+ | | | | | To assign data to the template, use $template->assign_vars() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_prefs_view_update_data | includes/ucp/ucp_prefs.php | data, sql_ary | 3.1.0-a1 | Update UCP edit display options data on form submit |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_autologin_keys_sql | includes/ucp/ucp_profile.php | sql_ary | 3.3.2-RC1 | Event allows changing SQL query for autologin keys |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_autologin_keys_template_vars | includes/ucp/ucp_profile.php | sessions, template_vars | 3.3.2-RC1 | Event allows changing template variables |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_avatar_sql | includes/ucp/ucp_profile.php | result | 3.1.11-RC1 | Trigger events on successfull avatar change |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_avatar_upload_validation | phpbb/avatar/driver/remote.php | error, height, url, width | 3.2.9-RC1 | Event to make custom validation of avatar upload |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_info_modify_sql_ary | includes/ucp/ucp_profile.php | cp_data, data, sql_ary | 3.1.4-RC1 | Modify profile data in UCP before submitting to the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_modify_profile_info | includes/ucp/ucp_profile.php | data, submit | 3.1.4-RC1 | Modify user data on editing profile in UCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_modify_signature | includes/ucp/ucp_profile.php | enable_bbcode, enable_smilies, enable_urls, error, preview, signature, submit | 3.1.10-RC1 | Modify user signature on editing profile in UCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_modify_signature_sql_ary | includes/ucp/ucp_profile.php | sql_ary | 3.1.10-RC1 | Modify user registration data before submitting it to the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_reg_details_data | includes/ucp/ucp_profile.php | data, submit | 3.1.4-RC1 | Modify user registration data on editing account settings in UCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_reg_details_sql_ary | includes/ucp/ucp_profile.php | data, sql_ary | 3.1.4-RC1 | Modify user registration data before submitting it to the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_reg_details_validate | includes/ucp/ucp_profile.php | data, error, submit | 3.1.4-RC1 | Validate user data on editing registration data in UCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_profile_validate_profile_info | includes/ucp/ucp_profile.php | data, error, submit | 3.1.4-RC1 | Validate user data on editing profile in UCP |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_agreement | includes/ucp/ucp_register.php | | 3.1.6-RC1 | Allows to modify the agreements. |
+ | | | | | |
+ | | | | | To assign data to the template, use $template->assign_vars() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_agreement_modify_template_data | includes/ucp/ucp_register.php | lang_row, s_hidden_fields, template_vars, tpl_name | 3.2.2-RC1 | Allows to modify the agreements. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_data_after | includes/ucp/ucp_register.php | cp_data, data, error, submit | 3.1.4-RC1 | Check UCP registration data after they are submitted |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_data_before | includes/ucp/ucp_register.php | data, submit | 3.1.4-RC1 | Add UCP register data before they are assigned to the template or submitted |
+ | | | | | |
+ | | | | | To assign data to the template, use $template->assign_vars() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_modify_template_data | includes/ucp/ucp_register.php | data, error, s_hidden_fields, template_vars, tpl_name | 3.2.2-RC1 | Modify template data on the registration page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_register_after | includes/ucp/ucp_register.php | cp_data, data, message, server_url, user_actkey, user_id, user_row | 3.2.4-RC1 | Perform additional actions after user registration |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_requests_after | includes/ucp/ucp_register.php | agreed, change_lang, coppa, submit, user_lang | 3.1.11-RC1 | Add UCP register data before they are assigned to the template or submitted |
+ | | | | | |
+ | | | | | To assign data to the template, use $template->assign_vars() |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_user_row_after | includes/ucp/ucp_register.php | cp_data, data, submit, user_row | 3.1.4-RC1 | Add into $user_row before user_add |
+ | | | | | |
+ | | | | | user_add allows adding more data into the users table |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_register_welcome_email_before | includes/ucp/ucp_register.php | cp_data, data, message, messenger, server_url, user_actkey, user_id, user_row | 3.2.4-RC1 | Modify messenger data before welcome mail is sent |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_remind_modify_select_sql | phpbb/ucp/controller/reset_password.php | email, sql_array, username | 3.1.11-RC1 | Change SQL query for fetching user data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_remove_zebra | includes/ucp/ucp_zebra.php | mode, user_ids | 3.1.0-a1 | Remove users from friends/foes |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_reset_password_modify_select_sql | phpbb/ucp/controller/reset_password.php | reset_token, sql_array, user_id | 3.3.0-b1 | Change SQL query for fetching user data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_restore_permissions | ucp.php | message, username | 3.1.11-RC1 | Event to run code after permissions are restored |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.ucp_switch_permissions | ucp.php | message, user_id, user_row | 3.1.11-RC1 | Event to run code after permissions are switched |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.update_post_info_modify_posts_sql | includes/functions_posting.php | sql_ary, type | 3.3.5-RC1 | Event to modify the SQL array to get the post and user data from all last posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.update_post_info_modify_sql | includes/functions_posting.php | rowset, type, update_sql | 3.3.5-RC1 | Event to modify the update_sql array to add new update data for forum or topic last posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.update_session_after | phpbb/session.php | session_data, session_id | 3.1.6-RC1 | Event to send update session information to extension |
+ | | | | | Read-only event |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.update_username | includes/functions_user.php | new_name, old_name | 3.1.0-a1 | Update a username when it is changed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_active_flip_after | includes/functions_user.php | activated, deactivated, mode, reason, sql_statements, user_id_ary | 3.1.4-RC1 | Perform additional actions after the users have been activated/deactivated |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_active_flip_before | includes/functions_user.php | activated, deactivated, mode, reason, sql_statements, user_id_ary | 3.1.4-RC1 | Check or modify activated/deactivated users data before submitting it to the database |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_add_after | includes/functions_user.php | cp_data, user_id, user_row | 3.1.0-b5 | Event that returns user id, user details and user CPF of newly registered user |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_add_modify_data | includes/functions_user.php | cp_data, notifications_data, sql_ary, user_row | 3.1.0-a1 | Use this event to modify the values to be inserted when a user is added |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_add_modify_notifications_data | includes/functions_user.php | cp_data, notifications_data, sql_ary, user_row | 3.2.2-RC1 | Modify the notifications data to be inserted in the database when a user is added |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_format_date_override | phpbb/user.php | format_date_override, function_arguments, utc | 3.2.1-RC1 | Execute code and/or override format_date() |
+ | | | | | |
+ | | | | | To override the format_date() function generated value |
+ | | | | | set $format_date_override to new return value |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_set_default_group | includes/functions_user.php | group_attributes, group_id, sql_ary, update_listing, user_id_ary | 3.1.0-a1 | Event when the default group is set for an array of users |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_set_group_attributes | includes/functions_user.php | action, group_attributes, group_id, group_name, user_id_ary, username_ary | 3.1.10-RC1 | Event to perform additional actions on setting user group attributes |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_setup | phpbb/user.php | lang_set, lang_set_ext, style_id, user_data, user_date_format, user_lang_name, user_timezone | 3.1.0-a1 | Event to load language files and modify user data on every page |
+ | | | | | |
+ | | | | | Note: To load language file with this event, see description |
+ | | | | | of lang_set_ext variable. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_setup_after | phpbb/user.php | | 3.1.6-RC1 | Execute code at the end of user setup |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.user_unban | includes/functions_user.php | mode, user_ids_ary | 3.1.11-RC1 | Use this event to perform actions after the unban has been performed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.validate_bbcode_by_extension | includes/message_parser.php | params_array, return | 3.1.5-RC1 | Event to validate bbcode with the custom validating methods |
+ | | | | | provided by extensions |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.validate_config_variable | includes/functions_acp.php | cfg_array, config_definition, config_name, error | 3.1.0-a1 | Validate a config value |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_generate_page_after | viewforum.php | forum_data | 3.2.2-RC1 | This event is to perform additional actions on viewforum page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_get_announcement_topic_ids_data | viewforum.php | forum_data, forum_id, g_forum_ary, sql_anounce_array, sql_ary | 3.1.10-RC1 | Event to modify the SQL query before the announcement topic ids data is retrieved |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_get_shadowtopic_data | viewforum.php | sql_array | 3.1.0-a1 | Event to modify the SQL query before the shadowtopic data is retrieved |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_get_topic_data | viewforum.php | forum_data, forum_id, sort_days, sort_dir, sort_key, sql_array, topics_count | 3.1.0-a1 | Event to modify the SQL query before the topic data is retrieved |
+ | | | | | |
+ | | | | | It may also be used to override the above assigned template vars |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_get_topic_ids_data | viewforum.php | forum_data, sql_approved, sql_ary, sql_limit, sql_limit_time, sql_sort_order, sql_start, sql_where, store_reverse | 3.1.0-RC4 | Event to modify the SQL query before the topic ids data is retrieved |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_page_title | viewforum.php | forum_data, forum_id, page_title, start | 3.2.2-RC1 | You can use this event to modify the page title of the viewforum page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_sort_data_sql | viewforum.php | forum_id, sort_days, sort_dir, sort_key, sql_array, start | 3.1.9-RC1 | Modify the sort data SQL query for getting additional fields if needed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_sort_direction | viewforum.php | direction | 3.2.5-RC1 | Modify the topics sort ordering if needed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_topic_list_sql | viewforum.php | forum_data, forum_id, sql_array, topic_list | 3.3.1-RC1 | Event to modify the SQL query before obtaining topics/stickies |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_topic_ordering | viewforum.php | sort_by_sql, sort_by_text | 3.2.5-RC1 | Modify the topic ordering if needed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_topicrow | viewforum.php | row, s_type_switch, s_type_switch_test, topic_row | 3.1.0-a1 | Modify the topic data before it is assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_modify_topics_data | viewforum.php | forum_id, rowset, topic_list, total_topic_count | 3.1.0-b3 | Modify topics data before we display the viewforum page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewforum_topic_row_after | viewforum.php | row, rowset, s_type_switch, topic_id, topic_list, topic_row | 3.1.3-RC1 | Event after the topic data has been assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewonline_modify_forum_data_sql | viewonline.php | sql_ary | 3.1.5-RC1 | Modify the forum data SQL query for getting additional fields if needed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewonline_modify_sql | viewonline.php | forum_data, guest_counter, show_guests, sql_ary | 3.1.0-a1 | Modify the SQL query for getting the user data to display viewonline list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewonline_modify_user_row | viewonline.php | forum_data, on_page, row, template_row | 3.1.0-RC4 | Modify viewonline template data before it is displayed in the list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewonline_overwrite_location | viewonline.php | forum_data, location, location_url, on_page, row | 3.1.0-a1 | Overwrite the location's name and URL, which are displayed in the list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_add_quickmod_option_before | viewtopic.php | allow_change_type, forum_id, post_id, quickmod_array, topic_data, topic_id, topic_tracking_info, viewtopic_url | 3.1.9-RC1 | Event to modify data in the quickmod_array before it gets sent to the |
+ | | | | | phpbb_add_quickmod_option function. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_assign_template_vars_before | viewtopic.php | base_url, forum_id, post_id, quickmod_array, start, topic_data, topic_id, topic_tracking_info, total_posts, viewtopic_url | 3.1.0-RC4 | Event to modify data before template variables are being assigned |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_before_f_read_check | viewtopic.php | forum_id, overrides_f_read_check, overrides_forum_password_check, post_id, topic_data, topic_id, topic_tracking_info | 3.1.3-RC1 | Event to apply extra permissions and to override original phpBB's f_read permission and forum password check |
+ | | | | | on viewtopic access |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_cache_guest_data | viewtopic.php | poster_id, row, user_cache_data | 3.1.0-a1 | Modify the guest user's data displayed with the posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_cache_user_data | viewtopic.php | poster_id, row, user_cache_data | 3.1.0-a1 | Modify the users' data displayed with their posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_gen_sort_selects_before | viewtopic.php | join_user_sql, limit_days, s_limit_days, s_sort_dir, s_sort_key, sort_by_sql, sort_by_text, sort_days, sort_dir, sort_key, u_sort_param | 3.2.8-RC1 | Event to add new sorting options |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_get_post_data | viewtopic.php | forum_id, post_list, sort_days, sort_dir, sort_key, sql_ary, start, topic_data, topic_id | 3.1.0-a1 | Event to modify the SQL query before the post and poster data is retrieved |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_highlight_modify | viewtopic.php | highlight, highlight_match, start, topic_data, total_posts, viewtopic_url | 3.1.11-RC1 | Event to modify highlight. |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_forum_id | viewtopic.php | forum_id, topic_data | 3.2.5-RC1 | Modify the forum ID to handle the correct display of viewtopic if needed |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_page_title | viewtopic.php | forum_id, page_title, post_list, start, topic_data | 3.1.0-a1 | You can use this event to modify the page title of the viewtopic page |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_poll_ajax_data | viewtopic.php | data, forum_id, poll_info, topic_data, valid_user_votes, vote_counts | 3.2.4-RC1 | Event to manipulate the poll data sent by AJAX response |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_poll_data | viewtopic.php | cur_voted_id, forum_id, poll_info, s_can_vote, s_display_results, topic_data, topic_id, viewtopic_url, vote_counts, voted_id | 3.1.5-RC1 | Event to manipulate the poll data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_poll_template_data | viewtopic.php | cur_voted_id, poll_end, poll_info, poll_most, poll_options_template_data, poll_template_data, poll_total, topic_data, viewtopic_url, vote_counts, voted_id | 3.1.5-RC1 | Event to add/modify poll template data |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_post_action_conditions | viewtopic.php | force_delete_allowed, force_edit_allowed, force_softdelete_allowed, row, s_cannot_delete, s_cannot_delete_lastpost, s_cannot_delete_locked, s_cannot_delete_time, s_cannot_edit, s_cannot_edit_locked, s_cannot_edit_time, topic_data | 3.1.0-b4 | This event allows you to modify the conditions for the "can edit post" and "can delete post" checks |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_post_data | viewtopic.php | attachments, can_receive_pm_list, display_notice, forum_id, has_approved_attachments, permanently_banned_users, post_list, rowset, sort_days, sort_dir, sort_key, start, topic_data, topic_id, user_cache | 3.1.0-RC3 | Event to modify the post, poster and attachment data before assigning the posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_post_list_sql | viewtopic.php | forum_id, sort_days, sort_key, sql, sql_limit, sql_start | 3.2.4-RC1 | Event to modify the SQL query that gets post_list |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_post_row | viewtopic.php | attachments, cp_row, current_row_number, end, post_edit_list, post_row, poster_id, row, start, topic_data, total_posts, user_cache, user_poster_data | 3.1.0-a1 | Modify the posts template block |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_modify_quick_reply_template_vars | viewtopic.php | topic_data, tpl_ary | 3.2.9-RC1 | Event after the quick-reply has been setup |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_post_row_after | viewtopic.php | attachments, cp_row, current_row_number, end, post_row, row, start, topic_data, total_posts, user_poster_data | 3.1.0-a3 | Event after the post data has been assigned to the template |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | core.viewtopic_post_rowset_data | viewtopic.php | row, rowset_data | 3.1.0-a1 | Modify the post rowset containing data to be displayed with posts |
+ +-----------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+Template Events
+===============
+
+.. table::
+ :class: events-list
+
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | Identifier | Prosilver Placement (If applicable) | Added in Release | Explanation |
+ +=======================================================+==========================================================+==================+==================================================================================================================================+
+ | attachment_file_after | attachment.html | 3.1.6-RC1 | Add content after the attachment. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | attachment_file_append | attachment.html | 3.1.6-RC1 | Add custom attachment types displaying to the bottom of attachment block. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | attachment_file_before | attachment.html | 3.1.6-RC1 | Add content before the attachment. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | attachment_file_prepend | attachment.html | 3.1.6-RC1 | Add custom attachment types displaying to the top of attachment block. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | confirm_delete_body_delete_reason_before | confirm_delete_body.html | 3.2.4-RC1 | Add custom text to the confirmation of a post that is deleted. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_category_header_after | forumlist_body.html | 3.1.0-a4 | Add content after the header of the category on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_category_header_before | forumlist_body.html | 3.1.0-a4 | Add content before the header of the category on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_category_header_row_append | forumlist_body.html | 3.1.5-RC1 | Add content after the header row of the category on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_category_header_row_prepend | forumlist_body.html | 3.1.5-RC1 | Add content before the header row of the category on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_image_after | forumlist_body.html | 3.2.2-RC1 | Add content after the forum image on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_image_append | forumlist_body.html | 3.2.2-RC1 | Add content at the start of the forum image on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_image_before | forumlist_body.html | 3.2.2-RC1 | Add content before the forum image on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_image_prepend | forumlist_body.html | 3.2.2-RC1 | Add content at the end of the forum image on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_row_after | forumlist_body.html | 3.1.0-RC5 | Add content after the forum list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_row_append | forumlist_body.html | 3.1.0-RC5 | Add content at the start of the forum list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_row_before | forumlist_body.html | 3.1.0-RC5 | Add content before the forum list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_forum_row_prepend | forumlist_body.html | 3.1.0-RC5 | Add content at the end of the forum list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_last_post_title_prepend | forumlist_body.html | 3.1.0-a1 | Add content before the post title of the latest post in a forum on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_last_poster_username_append | forumlist_body.html | 3.2.4-RC1 | Append information to last poster username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_last_poster_username_prepend | forumlist_body.html | 3.2.4-RC1 | Prepend information to last poster username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_last_row_after | forumlist_body.html | 3.1.0-b2 | Add content after the very last row of the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_subforum_link_append | forumlist_body.html | 3.1.11-RC1 | Add content at the end of subforum link item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_subforum_link_prepend | forumlist_body.html | 3.1.11-RC1 | Add content at the start of subforum link item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_subforums_after | forumlist_body.html | 3.1.0-a4 | Add content after the list of subforums (if any) for each forum on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | forumlist_body_subforums_before | forumlist_body.html | 3.1.0-a4 | Add content before the list of subforums (if any) for each forum on the forum list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_birthday_block_before | index_body.html | 3.1.11-RC1 | Add new statistic blocks before the Birthday block |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_block_birthday_append | index_body.html | 3.1.0-b3 | Append content to the birthday list on the Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_block_birthday_prepend | index_body.html | 3.1.0-b3 | Prepend content to the birthday list on the Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_block_online_append | index_body.html | 3.1.0-b3 | Append content to the online list on the Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_block_online_prepend | index_body.html | 3.1.0-b3 | Prepend content to the online list on the Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_block_stats_append | index_body.html | 3.1.0-b3 | Append content to the statistics list on the Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_block_stats_prepend | index_body.html | 3.1.0-b3 | Prepend content to the statistics list on the Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_forumlist_body_after | index_body.html | 3.1.1 | Add content after the forum list body on the index page |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_markforums_after | index_body.html | 3.1.0-RC2 | Add content after the mark-read link above the forum list on Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_markforums_before | index_body.html | 3.1.0-RC2 | Add content before the mark-read link above the forum list on Board index |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_stat_blocks_after | index_body.html | 3.1.0-b3 | Add new statistic blocks below the Who Is Online and Board Statistics blocks |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | index_body_stat_blocks_before | index_body.html | 3.1.0-a1 | Add new statistic blocks above the Who Is Online and Board Statistics blocks |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_ban_fields_after | mcp_ban.html | 3.1.0-RC3 | Add additional fields to the ban form in MCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_ban_fields_before | mcp_ban.html | 3.1.0-RC3 | Add additional fields to the ban form in MCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_ban_unban_after | mcp_ban.html | 3.1.0-RC3 | Add additional fields to the unban form in MCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_ban_unban_before | mcp_ban.html | 3.1.0-RC3 | Add additional fields to the unban form in MCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_actions_after | mcp_forum.html | 3.1.11-RC1 | Add some information after actions fieldset |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_actions_append | mcp_forum.html | 3.1.11-RC1 | Add additional options to actions select |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_actions_before | mcp_forum.html | 3.1.11-RC1 | Add some information before actions fieldset |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_last_post_author_username_append | mcp_forum.html | 3.3.4-RC1 | Append information to last post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_last_post_author_username_prepend | mcp_forum.html | 3.3.4-RC1 | Prepend information to last post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_topic_author_username_append | mcp_forum.html | 3.3.4-RC1 | Append information to topic author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_topic_author_username_prepend | mcp_forum.html | 3.3.4-RC1 | Prepend information to topic author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_topic_title_after | mcp_forum.html | 3.1.6-RC1 | Add some information after the topic title |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_forum_topic_title_before | mcp_forum.html | 3.1.6-RC1 | Add some information before the topic title |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_front_latest_logs_after | mcp_front.html | 3.1.3-RC1 | Add content after latest logs list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_front_latest_logs_before | mcp_front.html | 3.1.3-RC1 | Add content before latest logs list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_front_latest_reported_before | mcp_front.html | 3.1.3-RC1 | Add content before latest reported posts list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_front_latest_reported_pms_before | mcp_front.html | 3.1.3-RC1 | Add content before latest reported private messages list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_front_latest_unapproved_before | mcp_front.html | 3.1.3-RC1 | Add content before latest unapproved posts list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_move_before | mcp_move.html | 3.1.10-RC1 | Add content before move topic/post form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_move_destination_forum_after | mcp_move.html | 3.2.8-RC1 | Add content after the destination select element in the move topic/post form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_move_destination_forum_before | mcp_move.html | 3.2.8-RC1 | Add content before the destination select element in the move topic/post form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_post_additional_options | mcp_post.html | 3.1.5-RC1 | Add content within the list of post moderation actions |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_post_report_buttons_top_after | mcp_post.html | 3.2.4-RC1 | Add content after report buttons |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_post_report_buttons_top_before | mcp_post.html | 3.2.4-RC1 | Add content before report buttons |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_post_text_after | mcp_post.html | 3.2.6-RC1 | Add content after the post text |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_post_text_before | mcp_post.html | 3.2.6-RC1 | Add content before the post text |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_options_after | mcp_topic.html | 3.1.6-RC1 | Add some options (field, checkbox, ...) after the subject field when split a subject |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_options_before | mcp_topic.html | 3.1.6-RC1 | Add some options (field, checkbox, ...) before the subject field when split a subject |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_post_author_full_append | mcp_topic.html | 3.2.8-RC1 | Append information to message author username for post details in topic moderation |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_post_author_full_prepend | mcp_topic.html | 3.2.8-RC1 | Prepend information to message author username for post details in topic moderation |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_attachments_after | mcp_topic.html | 3.2.2-RC1 | Show additional content after attachments in mcp topic review |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_attachments_before | mcp_topic.html | 3.2.2-RC1 | Show additional content before attachments in mcp topic review |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_post_before | mcp_topic.html | 3.2.2-RC1 | Show additional content after postrow begins in mcp topic review |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_post_details_after | mcp_topic.html | 3.1.10-RC1 | Add content after post details in topic moderation |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_post_details_before | mcp_topic.html | 3.1.10-RC1 | Add content before post details in topic moderation |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_post_subject_after | mcp_topic.html | 3.1.11-RC1 | Add content after post subject in topic moderation |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_postrow_post_subject_before | mcp_topic.html | 3.1.11-RC1 | Add content before post subject in topic moderation |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_topic_title_after | mcp_topic.html | 3.1.6-RC1 | Add some information after the topic title |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_topic_topic_title_before | mcp_topic.html | 3.1.6-RC1 | Add some information before the topic title |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_warn_post_add_warning_field_after | mcp_warn_post.html | 3.1.0-RC4 | Add content during warning for a post - after add warning field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_warn_post_add_warning_field_before | mcp_warn_post.html | 3.1.0-RC4 | Add content during warning for a post - before add warning field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_warn_user_add_warning_field_after | mcp_warn_user.html | 3.1.0-RC4 | Add content during warning a user - after add warning field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | mcp_warn_user_add_warning_field_before | mcp_warn_user.html | 3.1.0-RC4 | Add content during warning a user - before add warning field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_group_desc_after | memberlist_body.html | 3.2.6-RC1 | Add data after the group description and type in the group profile page. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_group_name_after | memberlist_body.html | 3.2.6-RC1 | Add data after the group name in the group profile page. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_group_name_before | memberlist_body.html | 3.2.6-RC1 | Add data before the group name in the group profile page. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_group_rank_after | memberlist_body.html | 3.2.6-RC1 | Add data after the group rank in the group profile page. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_group_rank_before | memberlist_body.html | 3.2.6-RC1 | Add data before the group rank in the group profile page. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_leaders_set_after | memberlist_body.html | 3.2.6-RC1 | Add data after the last row in the memberlist mode leaders. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_memberlist_after | memberlist_body.html | 3.2.6-RC1 | Add data after the last row in the memberlist. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_memberrow_after | memberlist_body.html | 3.2.6-RC1 | Add data after the last memberrow in the memberlist. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_page_footer_before | memberlist_body.html | 3.2.6-RC1 | Add data before the page footer. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_page_header_after | memberlist_body.html | 3.2.6-RC1 | Add data after the page header. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_page_title_before | memberlist_body.html | 3.2.6-RC1 | Add data before the page title. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_rank_append | memberlist_body.html | 3.1.6-RC1 | Add information after rank in memberlist. Works in |
+ | | | | all display modes (leader, group and normal memberlist). |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_rank_prepend | memberlist_body.html | 3.1.6-RC1 | Add information before rank in memberlist. Works in |
+ | | | | all display modes (leader, group and normal memberlist). |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_show_group_after | memberlist_body.html | 3.2.6-RC1 | Add data after the last row in the memberlist mode group. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_username_append | memberlist_body.html | 3.1.0-a1 | Add information after every username in the memberlist. Works in |
+ | | | | all display modes (leader, group and normal memberlist). |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_body_username_prepend | memberlist_body.html | 3.1.0-a1 | Add information before every username in the memberlist. Works in |
+ | | | | all display modes (leader, group and normal memberlist). |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_email_before | memberlist_email.html | 3.1.10-RC1 | Allow adding customizations before the memberlist_email form. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_search_fields_after | memberlist_search.html | 3.1.2-RC1 | Add information after the search fields column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_search_fields_before | memberlist_search.html | 3.1.2-RC1 | Add information before the search fields column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_search_sorting_options_before | memberlist_search.html | 3.1.2-RC1 | Add information before the search sorting options field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_team_username_append | memberlist_team.html | 3.1.11-RC1 | Append information to username of team member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_team_username_prepend | memberlist_team.html | 3.1.11-RC1 | Add information before team user username |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_contact_after | memberlist_view.html | 3.1.0-b2 | Add content after the user contact part of any user profile |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_contact_before | memberlist_view.html | 3.1.0-b2 | Add content before the user contact part of any user profile |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_contact_custom_fields_after | memberlist_view.html | 3.1.9-RC1 | Add content after the user contact related custom fields |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_contact_custom_fields_before | memberlist_view.html | 3.1.9-RC1 | Add content before the user contact related custom fields |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_content_append | memberlist_view.html | 3.1.0-b2 | Add custom content to the user profile view after the main content |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_content_prepend | memberlist_view.html | 3.1.0-b3 | Add custom content to the user profile view before the main content |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_non_contact_custom_fields_after | memberlist_view.html | 3.1.9-RC1 | Add content after the user not contact related custom fields |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_non_contact_custom_fields_before | memberlist_view.html | 3.1.9-RC1 | Add content before the user not contact related custom fields |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_rank_avatar_after | memberlist_view.html | 3.1.6-RC1 | Add information after rank in memberlist (with avatar) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_rank_avatar_before | memberlist_view.html | 3.1.6-RC1 | Add information before rank in memberlist (with avatar) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_rank_no_avatar_after | memberlist_view.html | 3.1.6-RC1 | Add information after rank in memberlist (without avatar) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_rank_no_avatar_before | memberlist_view.html | 3.1.6-RC1 | Add information before rank in memberlist (without avatar) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_user_statistics_after | memberlist_view.html | 3.1.0-a1 | Add entries after the user statistics part of any user profile |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_user_statistics_before | memberlist_view.html | 3.1.0-a1 | Add entries before the user statistics part of any user profile |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_username_append | memberlist_view.html | 3.2.4-RC1 | Append information to username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_username_prepend | memberlist_view.html | 3.2.4-RC1 | Prepend information to username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_zebra_after | memberlist_view.html | 3.1.9-RC1 | Add content after the user friends/foes links |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | memberlist_view_zebra_before | memberlist_view.html | 3.1.9-RC1 | Add content before the user friends/foes links |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_logged_out_content | navbar_header.html | 3.1.0-RC1 | Add text and HTML in place of the username when not logged in. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_profile_list_after | navbar_header.html | 3.1.0-RC2 | Add links to the bottom of the profile drop-down menu in the header navbar |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_profile_list_before | navbar_header.html | 3.1.0-RC2 | Add links to the top of the profile drop-down menu in the header navbar |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_quick_links_after | navbar_header.html | 3.1.0-RC2 | Add links to the bottom of the quick-links drop-down menu in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_quick_links_before | navbar_header.html | 3.1.0-RC2 | Add links to the top of the quick-links drop-down menu in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_user_profile_append | navbar_header.html | 3.1.8-RC1 | Add links to the right of the user drop down area |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_user_profile_prepend | navbar_header.html | 3.1.8-RC1 | Add links to the left of the notification area |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_username_append | navbar_header.html | 3.1.0-RC1 | Add text and HTMl after the username shown in the navbar. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | navbar_header_username_prepend | navbar_header.html | 3.1.0-RC1 | Add text and HTMl before the username shown in the navbar. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | notification_dropdown_footer_after | notification_dropdown.html | 3.3.12 | Add content after notifications list footer. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | notification_dropdown_footer_before | notification_dropdown.html | 3.3.12 | Add content before notifications list footer. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_after | overall_footer.html | 3.1.0-a1 | Add content at the end of the file, directly prior to the `
` tag |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_body_after | overall_footer.html | 3.1.3-RC1 | Add content before the `` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_breadcrumb_append | navbar_footer.html | 3.1.0-a1 | Add links to the list of breadcrumbs in the footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_breadcrumb_prepend | navbar_footer.html | 3.1.0-RC3 | Add links to the list of breadcrumbs in the footer (after site-home, but before board-index) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_content_after | overall_footer.html | 3.1.0-a3 | Add content on all pages after the main content, before the footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_copyright_append | overall_footer.html | 3.1.0-a1 | Add content after the copyright line (no new line by default), before the ACP link |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_copyright_prepend | overall_footer.html | 3.1.0-a1 | Add content before the copyright line |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_page_body_after | overall_footer.html | 3.1.0-b3 | Add content after the page-body, but before the footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_teamlink_after | navbar_footer.html | 3.1.0-b3 | Add contents after the team-link in the footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_teamlink_before | navbar_footer.html | 3.1.0-b3 | Add contents before the team-link in the footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_timezone_after | navbar_footer.html | 3.1.0-b3 | Add content to the navbar in the page footer, after "Timezone" |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_footer_timezone_before | navbar_footer.html | 3.1.0-b3 | Add content to the navbar in the page footer, before "Timezone" |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_body_before | overall_header.html | 3.1.0-b2 | Add content to the header body |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_breadcrumb_append | navbar_header.html | 3.1.0-a1 | Add links to the list of breadcrumbs in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_breadcrumb_prepend | navbar_header.html | 3.1.0-RC3 | Add links to the list of breadcrumbs in the header (after site-home, but before board-index) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_breadcrumbs_after | navbar_header.html | 3.1.0-RC3 | Add content after the breadcrumbs (outside of the breadcrumbs container) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_breadcrumbs_before | navbar_header.html | 3.1.0-RC3 | Add content before the breadcrumbs (outside of the breadcrumbs container) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_content_before | overall_header.html | 3.1.0-a3 | Add content on all pages before the main content, after the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_feeds | overall_header.html | 3.1.6-RC1 | Add custom feeds |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_head_append | overall_header.html | 3.1.0-a1 | Add asset calls directly before the `` tag |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_headerbar_after | overall_header.html | 3.1.10-RC1 | Add content at the end of the headerbar |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_headerbar_before | overall_header.html | 3.1.10-RC1 | Add content at the beginning of the headerbar |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_navbar_before | overall_header.html | 3.1.4-RC1 | Add content before the navigation bar |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_navigation_append | navbar_header.html | 3.1.0-a1 | Add links after the navigation links in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_navigation_prepend | navbar_header.html | 3.1.0-a1 | Add links before the navigation links in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_navlink_append | navbar_header.html | 3.1.0-b3 | Add content after each individual navlink (breadcrumb) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_navlink_prepend | navbar_header.html | 3.1.0-b3 | Add content before each individual navlink (breadcrumb) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_page_body_before | overall_header.html | 3.1.0-b3 | Add content after the page-header, but before the page-body |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_searchbox_after | overall_header.html | 3.1.11-RC1 | Add content after the search box in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_searchbox_before | overall_header.html | 3.1.4-RC1 | Add content before the search box in the header |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | overall_header_stylesheets_after | overall_header.html | 3.1.0-RC3 | Add asset calls after stylesheets within the `` tag. |
+ | | | | Note that INCLUDECSS will not work with this event. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_attach_row_after | posting_attach_body.html | 3.2.6-RC1 | Add content after attachment row in the file list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_attach_row_append | posting_attach_body.html | 3.2.6-RC1 | Add content appending the attachment row in the file list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_attach_row_before | posting_attach_body.html | 3.2.6-RC1 | Add content before attachment row in the file list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_attach_row_controls_append | posting_attach_body.html | 3.2.2-RC1 | Add content after attachment control elements |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_attach_row_controls_prepend | posting_attach_body.html | 3.2.2-RC1 | Add content before attachment control elements |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_attach_row_prepend | posting_attach_body.html | 3.2.6-RC1 | Add content prepending attachment row in the file list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_file_list_after | posting_attach_body.html | 3.2.6-RC1 | Add content after attachments list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_attach_body_file_list_before | posting_attach_body.html | 3.2.6-RC1 | Add content before attachments list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_add_panel_tab | posting_editor.html | 3.1.6-RC1 | Add custom panel to post editor |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_bbcode_status_after | posting_editor.html | 3.1.4-RC1 | Add content after bbcode status |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_buttons_after | posting_buttons.html | 3.1.0-a3 | Add content after the BBCode posting buttons |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_buttons_before | posting_buttons.html | 3.1.0-a3 | Add content before the BBCode posting buttons |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_buttons_custom_tags_before | posting_buttons.html | 3.1.2-RC1 | Add content inside the BBCode posting buttons and before the customs BBCode |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_message_after | posting_editor.html | 3.1.0-a2 | Add field (e.g. textbox) to the posting screen after the message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_message_before | posting_editor.html | 3.1.0-a2 | Add field (e.g. textbox) to the posting screen before the message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_options_prepend | posting_editor.html | 3.1.0-a1 | Add posting options on the posting screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_smilies_after | posting_editor.html | 3.1.4-RC1 | Add content after smilies |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_smilies_before | posting_editor.html | 3.1.4-RC1 | Add content before the smilies |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_subject_after | posting_editor.html | 3.1.0-a2 | Add field (e.g. textbox) to the posting screen after the subject |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_subject_append | posting_editor.html | 3.1.10-RC1 | Add field, text, etc. to the posting after the subject text box |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_subject_before | posting_editor.html | 3.1.0-a2 | Add field (e.g. textbox) to the posting screen before the subject |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_subject_prepend | posting_editor.html | 3.1.10-RC1 | Add field, text, etc. to the posting before the subject text box |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_submit_buttons | posting_editor.html | 3.1.6-RC1 | Add custom buttons in the posting editor |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_topic_icons_after | posting_editor.html | 3.2.10-RC1 | Add custom data after the topic icons loop |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_topic_icons_append | posting_editor.html | 3.2.10-RC1 | Append custom data to the topic icon |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_topic_icons_before | posting_editor.html | 3.2.10-RC1 | Add custom data before the topic icons loop |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_editor_topic_icons_prepend | posting_editor.html | 3.2.10-RC1 | Prepend custom data to the topic icon |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_layout_include_panel_body | posting_layout.html | 3.1.6-RC1 | Add include of custom panel template body in posting editor |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_pm_header_find_username_after | posting_pm_header.html | 3.1.0-RC4 | Add content after the find username link on composing pm |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_pm_header_find_username_before | posting_pm_header.html | 3.1.0-RC4 | Add content before the find username link on composing pm |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_pm_layout_include_pm_header_after | posting_pm_layout.html | 3.1.4-RC1 | Add content after the include of posting_pm_header.html |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_pm_layout_include_pm_header_before | posting_pm_layout.html | 3.1.4-RC1 | Add content before the include of posting_pm_header.html |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_poll_body_options_after | posting_poll_body.html | 3.1.4-RC1 | Add content after the poll options on creating a poll |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_preview_content_after | posting_preview.html | 3.2.4-RC1 | Add content after the message content preview |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_preview_poll_after | posting_preview.html | 3.1.7-RC1 | Add content after the poll preview block |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_review_row_post_author_username_append | posting_review.html | 3.2.8-RC1 | Append information to post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_review_row_post_author_username_prepend | posting_review.html | 3.2.8-RC1 | Prepend information to post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_review_row_content_after | posting_topic_review.html | 3.2.4-RC1 | Add content after the message content in topic review |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_review_row_post_author_username_append | posting_topic_review.html | 3.2.8-RC1 | Append information to post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_review_row_post_author_username_prepend | posting_topic_review.html | 3.2.8-RC1 | Prepend information to post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_review_row_post_details_after | posting_topic_review.html | 3.1.10-RC1 | Add content after post details in topic review |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_review_row_post_details_before | posting_topic_review.html | 3.1.10-RC1 | Add content before post details in topic review |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_title_after | posting_layout.html | 3.1.7-RC1 | Allows to add some information after the topic title in the posting form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | posting_topic_title_before | posting_layout.html | 3.1.6-RC1 | Allows to add some information on the left of the topic title in the posting form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | quickreply_editor_message_after | quickreply_editor.html | 3.1.0-a4 | Add content after the quick reply textbox |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | quickreply_editor_message_before | quickreply_editor.html | 3.1.0-a4 | Add content before the quick reply textbox |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | quickreply_editor_panel_after | quickreply_editor.html | 3.1.0-b2 | Add content after the quick reply panel (but inside the form) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | quickreply_editor_panel_before | quickreply_editor.html | 3.1.0-b2 | Add content before the quick reply panel (but inside the form) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | quickreply_editor_subject_before | quickreply_editor.html | 3.1.7-RC1 | Add content before the quick reply subject textbox |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_form_after | search_body.html | 3.1.7-RC1 | Add content after the search form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_form_before | search_body.html | 3.1.5-RC1 | Add content before the search form |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_recent_search_after | search_body.html | 3.1.7-RC1 | Add content after the recent search queries list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_recent_search_before | search_body.html | 3.1.7-RC1 | Add content before the recent search queries list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_display_options_append | search_body.html | 3.1.7-RC1 | Put content at the bottom of the search query display options fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_display_options_prepend | search_body.html | 3.1.7-RC1 | Put content at the top of the search query display options fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_options_after | search_body.html | 3.1.7-RC1 | Add content after the search query options fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_options_append | search_body.html | 3.1.7-RC1 | Put content at the bottom of the search query options fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_options_before | search_body.html | 3.1.7-RC1 | Add content before the search query options fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_options_prepend | search_body.html | 3.1.7-RC1 | Put content at the top of the search query options fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_query_after | search_body.html | 3.1.7-RC1 | Add content after the search query fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_query_append | search_body.html | 3.1.7-RC1 | Put content at the bottom of the search query fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_query_before | search_body.html | 3.1.7-RC1 | Add content before the search query fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_body_search_query_prepend | search_body.html | 3.1.7-RC1 | Put content at the top of the search query fields set |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_content_after | search_results.html | 3.2.4-RC1 | Add content after the message content in search results |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_header_after | search_results.html | 3.1.4-RC1 | Add content after the header of the search results |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_header_before | search_results.html | 3.1.4-RC1 | Add content before the header of the search results. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_jumpbox_before | search_results.html | 3.3.4-RC1 | Add content before the jumpbox of the search results. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_last_post_author_username_append | search_results.html | 3.2.4-RC1 | Append information to last post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_last_post_author_username_prepend | search_results.html | 3.2.4-RC1 | Prepend information to last post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_post_after | search_results.html | 3.1.0-b3 | Add data after search result posts |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_post_author_username_append | search_results.html | 3.2.4-RC1 | Append information to post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_post_author_username_prepend | search_results.html | 3.2.4-RC1 | Prepend information to post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_post_before | search_results.html | 3.1.0-b3 | Add data before search result posts |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_post_subject_before | search_results.html | 3.3.4-RC1 | Add data before search result posts subject |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_postprofile_after | search_results.html | 3.1.0-b3 | Add content after the post author and stats in search results (posts view mode) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_postprofile_before | search_results.html | 3.1.0-b3 | Add content directly before the post author in search results (posts view mode) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_searchbox_after | search_results.html | 3.1.4-RC1 | Add content right after the searchbox of the search results. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_after | search_results.html | 3.1.0-b4 | Add data after search result topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_author_username_append | search_results.html | 3.2.4-RC1 | Append information to topic author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_author_username_prepend | search_results.html | 3.2.4-RC1 | Prepend information to topic author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_before | search_results.html | 3.1.0-b4 | Add data before search result topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_header_lastpost_after | search_results.html | 3.3.4-RC1 | Add header column(s) after `lastpost` column in search result topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_row_lastpost_after | search_results.html | 3.3.4-RC1 | Add data column(s) after `lastpost` column in search result topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | search_results_topic_title_after | search_results.html | 3.1.11-RC1 | Add data after search results topic title |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | simple_footer_after | simple_footer.html | 3.1.0-a1 | Add content prior to the scripts of the simple footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | simple_footer_body_after | simple_footer.html | 3.2.4-RC1 | Add content directly prior to the `` tag of the simple footer |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | simple_header_body_before | simple_header.html | 3.1.0-b2 | Add content to the header body |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | simple_header_head_append | simple_header.html | 3.1.0-b4 | Add asset calls directly before the `` tag |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | simple_header_stylesheets_after | simple_header.html | 3.1.0-RC3 | Add asset calls after stylesheets within the `` tag. |
+ | | | | Note that INCLUDECSS will not work with this event. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | topiclist_row_append | search_results.html, viewforum_body.html, mcp_forum.html | 3.1.0-a1 | Add content into topic rows (inside the elements containing topic titles) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | topiclist_row_prepend | search_results.html, viewforum_body.html, mcp_forum.html | 3.1.0-a1 | Add content into topic rows (inside the elements containing topic titles) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | topiclist_row_topic_by_author_after | search_results.html, viewforum_body.html, mcp_forum.html | 3.2.8-RC1 | Add content into topic rows (after the "by topic author" row) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | topiclist_row_topic_by_author_before | search_results.html, viewforum_body.html, mcp_forum.html | 3.2.8-RC1 | Add content into topic rows (before the "by topic author" row) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | topiclist_row_topic_title_after | search_results.html, viewforum_body.html, mcp_forum.html | 3.1.10-RC1 | Add content into topic rows (after the elements containing the topic titles) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_agreement_terms_after | ucp_agreement.html | 3.1.0-b3 | Add content after the terms of agreement text at user registration |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_agreement_terms_before | ucp_agreement.html | 3.1.0-b3 | Add content before the terms of agreement text at user registration |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_footer_content_after | ucp_footer.html | 3.3.12-RC1 | Add optional elements after tab panels content in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_friend_list_after | ucp_zebra_friends.html | 3.1.0-a4 | Add optional elements after list of friends in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_friend_list_before | ucp_zebra_friends.html | 3.1.0-a4 | Add optional elements before list of friends in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_group_settings_after | ucp_groups_manage.html | 3.3.13-RC1 | Add content after options for managing a group in the UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_group_settings_before | ucp_groups_manage.html | 3.3.13-RC1 | Add content before options for managing a group in the UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_header_content_before | ucp_header.html | 3.3.12-RC1 | Add optional elements before tab panels content in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_header_friends_offline_username_full_append | ucp_header.html | 3.2.10-RC1 | Append information to offline friends username in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_header_friends_offline_username_full_prepend | ucp_header.html | 3.2.10-RC1 | Prepend information to offline friends username in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_header_friends_online_username_full_append | ucp_header.html | 3.2.10-RC1 | Append information to online friends username in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_header_friends_online_username_full_prepend | ucp_header.html | 3.2.10-RC1 | Prepend information to online friends username in UCP |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_main_bookmarks_topic_title_after | ucp_main_bookmarks.html | 3.3.8-RC1 | Add content right after the topic title viewing UCP bookmarks |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_main_front_user_activity_after | ucp_main_front.html | 3.1.6-RC1 | Add content right after the user activity info viewing UCP front page |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_main_front_user_activity_append | ucp_main_front.html | 3.1.11-RC1 | Add content after last user activity info viewing UCP front page |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_main_front_user_activity_before | ucp_main_front.html | 3.1.6-RC1 | Add content right before the user activity info viewing UCP front page |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_main_front_user_activity_prepend | ucp_main_front.html | 3.1.11-RC1 | Add content before first user activity info viewing UCP front page |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_main_subscribed_topic_title_after | ucp_main_subscribed.html | 3.3.8-RC1 | Add content right after the topic title viewing UCP subscribed topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_notifications_content_after | ucp_notifications.html | 3.3.12-RC1 | Add optional elements after UCP notification options tab content |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_notifications_content_before | ucp_notifications.html | 3.3.12-RC1 | Add optional elements before UCP notification options tab content |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_notifications_form_after | ucp_notifications.html | 3.3.12-RC1 | Add optional elements after HTMP form in UCP notification options tab |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_notifications_form_before | ucp_notifications.html | 3.3.12-RC1 | Add optional elements before HTMP form in UCP notificationoptions tab |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_post_buttons_after | ucp_pm_history.html | 3.1.6-RC1 | Add post button to private messages in history review (next to quote etc), at |
+ | | | | the end of the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_post_buttons_before | ucp_pm_history.html | 3.1.6-RC1 | Add post button to private messages in history review (next to quote etc), at |
+ | | | | the start of the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_post_buttons_list_after | ucp_pm_history.html | 3.1.6-RC1 | Add post button custom list to private messages in history review (next to quote etc), |
+ | | | | after the original list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_post_buttons_list_before | ucp_pm_history.html | 3.1.6-RC1 | Add post button custom list to private messages in history review (next to quote etc), |
+ | | | | before the original list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_review_after | ucp_pm_history.html | 3.1.6-RC1 | Add content after the private messages history review. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_review_before | ucp_pm_history.html | 3.1.6-RC1 | Add content before the private messages history review. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_row_message_author_username_append | ucp_pm_history.html | 3.2.8-RC1 | Append information to message author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_history_row_message_author_username_prepend | ucp_pm_history.html | 3.2.8-RC1 | Prepend information to message author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_author_full_after | ucp_pm_viewmessage.html | 3.3.3-RC1 | Add content right after the message author when viewing a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_author_full_before | ucp_pm_viewmessage.html | 3.3.3-RC1 | Add content right before the message author when viewing a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_avatar_after | ucp_pm_viewmessage.html | 3.1.0-RC3 | Add content right after the avatar when viewing a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_avatar_before | ucp_pm_viewmessage.html | 3.1.0-RC3 | Add content right before the avatar when viewing a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_contact_fields_after | ucp_pm_viewmessage.html | 3.1.0-b1 | Add data after the contact fields on the user profile when viewing |
+ | | | | a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_contact_fields_before | ucp_pm_viewmessage.html | 3.1.0-b1 | Add data before the contact fields on the user profile when viewing |
+ | | | | a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_custom_fields_after | ucp_pm_viewmessage.html | 3.1.0-a1 | Add data after the custom fields on the user profile when viewing |
+ | | | | a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_custom_fields_before | ucp_pm_viewmessage.html | 3.1.0-a1 | Add data before the custom fields on the user profile when viewing |
+ | | | | a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_options_before | ucp_pm_viewmessage.html | 3.1.11-RC1 | Add content right before display options |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_post_buttons_after | ucp_pm_viewmessage.html | 3.1.0-RC3 | Add post button to private messages (next to edit, quote etc), at |
+ | | | | the end of the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_post_buttons_before | ucp_pm_viewmessage.html | 3.1.0-RC3 | Add post button to private messages (next to edit, quote etc), at |
+ | | | | the start of the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_post_buttons_list_after | ucp_pm_viewmessage.html | 3.1.6-RC1 | Add post button custom list to private messages (next to edit, quote etc), |
+ | | | | after the original list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_post_buttons_list_before | ucp_pm_viewmessage.html | 3.1.6-RC1 | Add post button custom list to private messages (next to edit, quote etc), |
+ | | | | before the original list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_print_head_append | ucp_pm_viewmessage_print.html | 3.1.0-a1 | Add asset calls directly before the `` tag of the Print PM screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_rank_after | ucp_pm_viewmessage.html | 3.1.6-RC1 | Add data after the rank on the user profile when viewing |
+ | | | | a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_pm_viewmessage_rank_before | ucp_pm_viewmessage.html | 3.1.6-RC1 | Add data before the rank on the user profile when viewing |
+ | | | | a private message |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_personal_append | ucp_prefs_personal.html | 3.1.0-a1 | Add user options to the bottom of the Edit Global Settings block |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_personal_prepend | ucp_prefs_personal.html | 3.1.0-a1 | Add user options to the top of the Edit Global Settings block |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_post_append | ucp_prefs_post.html | 3.1.0-a1 | Add user options to the bottom of the Edit Posting Defaults block |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_post_prepend | ucp_prefs_post.html | 3.1.0-a1 | Add user options to the top of the Edit Posting Defaults block |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_view_radio_buttons_append | ucp_prefs_view.html | 3.1.0-a1 | Add options to the bottom of the radio buttons block of the Edit |
+ | | | | Display Options screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_view_radio_buttons_prepend | ucp_prefs_view.html | 3.1.0-a1 | Add options to the top of the radio buttons block of the Edit |
+ | | | | Display Options screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_view_select_menu_append | ucp_prefs_view.html | 3.1.0-a1 | Add options to the bottom of the drop-down lists block of the Edit |
+ | | | | Display Options screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_prefs_view_select_menu_prepend | ucp_prefs_view.html | 3.1.0-a1 | Add options to the top of the drop-down lists block of the Edit |
+ | | | | Display Options screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_tbody_key_after | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table column after the first column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_tbody_key_before | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table column before the first column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_tbody_mark_after | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table column after the last column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_tbody_mark_before | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table column before the last column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_thead_key_after | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table header content after the first column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_thead_key_before | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table header content before the first column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_thead_mark_after | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table header content after the last column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_autologin_keys_thead_mark_before | ucp_profile_autologin_keys.html | 3.3.2-RC1 | Add table header content before the last column. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_profile_info_after | ucp_profile_profile_info.html | 3.1.4-RC1 | Add options in profile page fieldset - after custom profile fields. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_profile_info_before | ucp_profile_profile_info.html | 3.1.4-RC1 | Add options in profile page fieldset - before jabber field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_profile_info_birthday_label_append | ucp_profile_profile_info.html | 3.2.9-RC1 | Add more text to birthday label, such as required asterisk |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_register_details_after | ucp_profile_reg_details.html | 3.1.4-RC1 | Add options in profile page fieldset - after confirm password field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_register_details_before | ucp_profile_reg_details.html | 3.1.4-RC1 | Add options in profile page fieldset - before first field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_profile_signature_posting_editor_options_prepend | ucp_profile_signature.html | 3.2.6-RC1 | Add options signature posting editor - before first option. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_register_buttons_before | ucp_register.html | 3.1.11-RC1 | Add content before buttons in registration form. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_register_credentials_after | ucp_register.html | 3.1.0-b5 | Add options in registration page fieldset - after password field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_register_credentials_before | ucp_register.html | 3.1.0-b5 | Add options in registration page fieldset - before first field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_register_options_before | ucp_register.html | 3.1.0-b5 | Add options in registration page fieldset - before language selector. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_register_profile_fields_after | ucp_register.html | 3.1.0-b5 | Add options in registration page fieldset - after last field. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | ucp_register_profile_fields_before | ucp_register.html | 3.1.0-b5 | Add options in registration page fieldset - before profile fields. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_last_post_author_username_append | viewforum_body.html | 3.2.4-RC1 | Append information to last post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_last_post_author_username_prepend | viewforum_body.html | 3.2.4-RC1 | Prepend information to last post author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_online_list_before | viewforum_body.html | 3.2.10-RC1 | Add content before the online users list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topic_author_username_append | viewforum_body.html | 3.2.4-RC1 | Append information to topic author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topic_author_username_prepend | viewforum_body.html | 3.2.4-RC1 | Prepend information to topic author username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topic_row_after | viewforum_body.html | 3.1.7-RC1 | Add content after the topic list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topic_row_append | viewforum_body.html | 3.1.7-RC1 | Add content at the start of the topic list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topic_row_before | viewforum_body.html | 3.1.7-RC1 | Add content before the topic list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topic_row_prepend | viewforum_body.html | 3.1.7-RC1 | Add content at the end of the topic list item. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_body_topicrow_row_before | viewforum_body.html | 3.1.10-RC1 | Add content before list of topics. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_buttons_bottom_after | viewforum_body.html | 3.1.0-RC5 | Add buttons after New Topic button on the bottom of the topic's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_buttons_bottom_before | viewforum_body.html | 3.1.0-RC5 | Add buttons before New Topic button on the bottom of the topic's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_buttons_top_after | viewforum_body.html | 3.1.0-RC5 | Add buttons after New Topic button on the top of the topic's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_buttons_top_before | viewforum_body.html | 3.1.0-RC5 | Add buttons before New Topic button on the top of the topic's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_forum_name_append | viewforum_body.html | 3.1.0-b3 | Add content directly after the forum name link on the View forum screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_forum_name_prepend | viewforum_body.html | 3.1.0-b3 | Add content directly before the forum name link on the View forum screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_forum_title_after | viewforum_body.html | 3.1.5-RC1 | Add content directly after the forum title on the View forum screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewforum_forum_title_before | viewforum_body.html | 3.1.5-RC1 | Add content directly before the forum title on the View forum screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewonline_body_username_append | viewonline_body.html | 3.2.4-RC1 | Append information to username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewonline_body_username_prepend | viewonline_body.html | 3.2.4-RC1 | Prepend information to username of member |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_avatar_after | viewtopic_body.html | 3.1.0-RC3 | Add content right after the avatar when viewing topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_avatar_before | viewtopic_body.html | 3.1.0-RC3 | Add content right before the avatar when viewing topics |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_contact_fields_after | viewtopic_body.html | 3.1.0-b3 | Add data after the contact fields on the user profile when viewing |
+ | | | | a post |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_contact_fields_before | viewtopic_body.html | 3.1.0-b3 | Add data before the contact fields on the user profile when viewing |
+ | | | | a post |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_contact_icon_append | viewtopic_body.html | 3.2.10-RC1 | Add content directly after the contact field icons in post user miniprofiles |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_contact_icon_prepend | viewtopic_body.html | 3.2.10-RC1 | Add content directly before the contact field icons in post user miniprofiles |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_footer_before | viewtopic_body.html | 3.1.0-a1 | Add content to the bottom of the View topic screen below the posts |
+ | | | | and quick reply, directly before the jumpbox in Prosilver. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_online_list_after | viewtopic_body.html | 3.3.12-RC1 | Add content after the online users list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_online_list_before | viewtopic_body.html | 3.2.10-RC1 | Add content before the online users list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_pagination_top_after | viewtopic_body.html | 3.1.4-RC1 | Add content after the pagination at top |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_poll_after | viewtopic_body.html | 3.1.6-RC1 | Add content after the poll panel. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_poll_before | viewtopic_body.html | 3.1.6-RC1 | Add content before the poll panel. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_poll_option_after | viewtopic_body.html | 3.1.0-b3 | Add content after the poll option |
+ | | | | the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_poll_option_before | viewtopic_body.html | 3.1.0-b3 | Add content before the poll option |
+ | | | | the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_poll_question_append | viewtopic_body.html | 3.1.0-b3 | Add content directly after the poll question on the View topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_poll_question_prepend | viewtopic_body.html | 3.1.0-b3 | Add content directly before the poll question on the View topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_author_after | viewtopic_body.html | 3.1.3-RC1 | Add content directly after the post author on the view topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_author_before | viewtopic_body.html | 3.1.3-RC1 | Add content directly before the post author on the view topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_buttons_after | viewtopic_body.html | 3.1.0-a1 | Add post button to posts (next to edit, quote etc), at the end of |
+ | | | | the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_buttons_before | viewtopic_body.html | 3.1.0-a1 | Add post button to posts (next to edit, quote etc), at the start of |
+ | | | | the list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_buttons_list_after | viewtopic_body.html | 3.1.5-RC1 | Add post button custom list to posts (next to edit, quote etc), |
+ | | | | after the original list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_buttons_list_before | viewtopic_body.html | 3.1.5-RC1 | Add post button custom list to posts (next to edit, quote etc), |
+ | | | | before the original list. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_post_subject_before | viewtopic_body.html | 3.1.7-RC1 | Add data before post icon and subject |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_back2top_after | viewtopic_body.html | 3.1.8-RC1 | Add content to the post's bottom after the back to top link |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_back2top_append | viewtopic_body.html | 3.1.8-RC1 | Add content to the post's bottom directly after the back to top link |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_back2top_before | viewtopic_body.html | 3.1.8-RC1 | Add content to the post's bottom before the back to top link |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_back2top_prepend | viewtopic_body.html | 3.1.8-RC1 | Add content to the post's bottom directly before the back to top link |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_content_after | viewtopic_body.html | 3.2.4-RC1 | Add content after the message content in topics views |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_content_before | viewtopic_body.html | 3.3.11-RC1 | Add content before the message content in topics views |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_custom_fields_after | viewtopic_body.html | 3.1.0-a1 | Add data after the custom fields on the user profile when viewing |
+ | | | | a post |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_custom_fields_before | viewtopic_body.html | 3.1.0-a1 | Add data before the custom fields on the user profile when viewing |
+ | | | | a post |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_after | viewtopic_body.html | 3.1.0-a4 | Add data after posts |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_before | viewtopic_body.html | 3.1.0-a4 | Add data before posts |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_content_footer | viewtopic_body.html | 3.1.0-RC4 | Add data at the end of the posts. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_details_after | viewtopic_body.html | 3.1.4-RC1 | Add content after the post details |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_details_before | viewtopic_body.html | 3.1.4-RC1 | Add content before the post details |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_notices_after | viewtopic_body.html | 3.1.0-b2 | Add posts specific custom notices at the notices bottom. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_post_notices_before | viewtopic_body.html | 3.1.0-b2 | Add posts specific custom notices at the notices top. |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_rank_after | viewtopic_body.html | 3.1.6-RC1 | Add data after the rank on the user profile when viewing |
+ | | | | a post |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_rank_before | viewtopic_body.html | 3.1.6-RC1 | Add data before the rank on the user profile when viewing |
+ | | | | a post |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_signature_after | viewtopic_body.html | 3.3.5-RC1 | Add content after the signature |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_postrow_signature_before | viewtopic_body.html | 3.3.5-RC1 | Add content before the signature |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_body_topic_actions_before | viewtopic_body.html | 3.1.0-a4 | Add data before the topic actions buttons (after the posts sorting options) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_buttons_bottom_after | viewtopic_body.html | 3.1.0-RC5 | Add buttons after Post Reply button on the bottom of the posts's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_buttons_bottom_before | viewtopic_body.html | 3.1.0-RC5 | Add buttons before Post Reply button on the bottom of the posts's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_buttons_top_after | viewtopic_body.html | 3.1.0-RC5 | Add buttons after Post Reply button on the top of the posts's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_buttons_top_before | viewtopic_body.html | 3.1.0-RC5 | Add buttons before Post Reply button on the top of the posts's list |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_dropdown_bottom_custom | viewtopic_body.html | 3.1.6-RC1 | Create a custom dropdown menu |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_dropdown_top_custom | viewtopic_body.html | 3.1.6-RC1 | Create a custom dropdown menu |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_print_head_append | viewtopic_print.html | 3.1.0-a1 | Add asset calls directly before the `` tag of the Print Topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_topic_title_after | viewtopic_body.html | 3.1.7-RC1 | Add content directly after the topic title link on the View topic screen (outside of the h2 HTML tag) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_topic_title_append | viewtopic_body.html | 3.1.0-b3 | Add content directly after the topic title link on the View topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_topic_title_before | viewtopic_body.html | 3.2.2-RC1 | Add content directly before the topic title link on the View topic screen (outside of the h2 HTML tag) |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_topic_title_prepend | viewtopic_body.html | 3.1.0-a1 | Add content directly before the topic title link on the View topic screen |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_topic_tools_after | viewtopic_topic_tools.html | 3.1.0-a3 | Add a new topic tool after the rest of the existing ones |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+ | viewtopic_topic_tools_before | viewtopic_topic_tools.html | 3.1.0-a3 | Add a new topic tool before the rest of the existing ones |
+ +-------------------------------------------------------+----------------------------------------------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------+
+
+
+ACP Template Events
+===================
+
+.. table::
+ :class: events-list
+
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | Identifier | Placement | Added in Release | Explanation |
+ +================================================+============================+==================+===============================================================================================================================================+
+ | acp_ban_cell_append | acp_ban.html | 3.1.7-RC1 | Add content at the end of the ban cell area |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ban_cell_prepend | acp_ban.html | 3.1.7-RC1 | Add content at the start of the ban cell area |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_bbcodes_actions_append | acp_bbcodes.html | 3.1.0-a3 | Add actions to the BBCodes page, after edit/delete buttons |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_bbcodes_actions_prepend | acp_bbcodes.html | 3.1.0-a3 | Add actions to the BBCodes page, before edit/delete buttons |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_bbcodes_edit_fieldsets_after | acp_bbcodes.html | 3.1.0-a3 | Add settings to BBCode add/edit form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_email_find_username_append | acp_email.html | 3.1.7-RC1 | Add content at the end of the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_email_find_username_prepend | acp_email.html | 3.1.7-RC1 | Add content at the start of the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_email_group_options_append | acp_email.html | 3.1.7-RC1 | Add content at the end of the group options select box |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_email_group_options_prepend | acp_email.html | 3.1.7-RC1 | Add content at the start of the group options select box |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_email_options_after | acp_email.html | 3.1.2-RC1 | Add settings to mass email form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ext_details_end | acp_ext_details.html | 3.1.11-RC1 | Add more detailed information on extension after the available information. |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ext_details_notice | acp_ext_details.html | 3.1.11-RC1 | Add extension detail notices after version check information. |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ext_list_disabled_name_after | acp_ext_list.html | 3.1.11-RC1 | Add content after the name of disabled extensions in the list |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ext_list_disabled_title_after | acp_ext_list.html | 3.1.11-RC1 | Add text after disabled extensions section title. |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ext_list_enabled_name_after | acp_ext_list.html | 3.1.11-RC1 | Add content after the name of enabled extensions in the list |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ext_list_enabled_title_after | acp_ext_list.html | 3.1.11-RC1 | Add text after enabled extensions section title. |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_custom_settings | acp_forums.html | 3.1.6-RC1 | Add its own box (fieldset) for extension settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_main_settings_append | acp_forums.html | 3.1.2-RC1 | Add settings to forums at end of main settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_main_settings_prepend | acp_forums.html | 3.1.2-RC1 | Add settings to forums before main settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_normal_settings_append | acp_forums.html | 3.1.0-a1 | Add settings to forums at end of normal settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_normal_settings_prepend | acp_forums.html | 3.1.2-RC1 | Add settings to forums before normal settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_prune_settings_append | acp_forums.html | 3.1.2-RC1 | Add settings to forums at end of prune settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_prune_settings_prepend | acp_forums.html | 3.1.2-RC1 | Add settings to forums before prune settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_quick_select_button_append | acp_forums.html | 3.1.7-RC1 | Add content after the quick select forum submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_quick_select_button_prepend | acp_forums.html | 3.1.7-RC1 | Add content before the quick select forum submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_rules_settings_append | acp_forums.html | 3.1.2-RC1 | Add settings to forums at end of rules settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_forums_rules_settings_prepend | acp_forums.html | 3.1.2-RC1 | Add settings to forums before rules settings section |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_group_options_after | acp_groups.html | 3.1.0-b4 | Add additional options to group settings (after GROUP_RECEIVE_PM) |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_group_options_before | acp_groups.html | 3.1.0-b4 | Add additional options to group settings (before GROUP_FOUNDER_MANAGE) |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_group_types_append | acp_groups.html | 3.2.9-RC1 | Add additional group type options to group settings (append the list) |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_group_types_prepend | acp_groups.html | 3.2.9-RC1 | Add additional group type options to group settings (prepend the list) |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_add_user_options_after | acp_groups.html | 3.3.13-RC1 | Add content after options for adding user to group in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_add_user_options_before | acp_groups.html | 3.3.13-RC1 | Add content before options for adding user to group in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_add_user_usernames_before | acp_groups.html | 3.3.13-RC1 | Add content before usernames option for adding user to group in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_find_username_append | acp_groups.html | 3.1.7-RC1 | Add content at the end of the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_find_username_prepend | acp_groups.html | 3.1.7-RC1 | Add content at the start of the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_manage_after | acp_groups.html | 3.1.7-RC1 | Add content after the manage groups table |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_manage_before | acp_groups.html | 3.1.7-RC1 | Add content before the manage groups table |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_position_legend_add_button_after | acp_groups_position.html | 3.1.7-RC1 | Add content after adding group to legend submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_position_legend_add_button_before | acp_groups_position.html | 3.1.7-RC1 | Add content before adding group to legend submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_position_teampage_add_button_after | acp_groups_position.html | 3.1.7-RC1 | Add content after adding group to teampage submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_groups_position_teampage_add_button_before | acp_groups_position.html | 3.1.7-RC1 | Add content before adding group to teampage submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_help_phpbb_stats_after | acp_help_phpbb.html | 3.2.0-RC2 | Add content after send statistics tile |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_help_phpbb_stats_before | acp_help_phpbb.html | 3.2.0-RC2 | Add content before send statistics tile |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_logs_quick_select_forum_button_append | acp_logs.html | 3.1.7-RC1 | Add content after the quick forum select form submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_logs_quick_select_forum_button_prepend | acp_logs.html | 3.1.7-RC1 | Add content before the quick forum select form submit button |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_main_actions_append | acp_main.html | 3.1.0-a1 | Add actions to the ACP main page below the cache purge action |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_main_notice_after | acp_main.html | 3.1.0-a1 | Add notices or other blocks in the ACP below other configuration notices |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_overall_footer_after | overall_footer.html | 3.1.0-a1 | Add content below the footer in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_overall_footer_body_after | overall_footer.html | 3.3.10-RC1 | Add content before the `` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_overall_header_body_before | overall_header.html | 3.1.0-b2 | Add content to the header body |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_overall_header_head_append | overall_header.html | 3.1.0-a1 | Add assets within the `
` tags in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_overall_header_stylesheets_after | overall_header.html | 3.1.0-RC3 | Add assets after stylesheets within the `
` tags in the ACP. |
+ | | | | Note that INCLUDECSS will not work with this event. |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permission_forum_copy_dest_forum_append | permission_forum_copy.html | 3.1.7-RC1 | Add content after the destination forum select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permission_forum_copy_dest_forum_prepend | permission_forum_copy.html | 3.1.7-RC1 | Add content before the destination forum select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permission_forum_copy_src_forum_append | permission_forum_copy.html | 3.1.7-RC1 | Add content after the source forum select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permission_forum_copy_src_forum_prepend | permission_forum_copy.html | 3.1.7-RC1 | Add content before the source forum select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_add_group_options_append | acp_permissions.html | 3.1.7-RC1 | Add content after the group multiple select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_add_group_options_prepend | acp_permissions.html | 3.1.7-RC1 | Add content before the group multiple select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_find_username_append | acp_permissions.html | 3.1.7-RC1 | Add content after the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_find_username_prepend | acp_permissions.html | 3.1.7-RC1 | Add content before the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_forum_append | acp_permissions.html | 3.1.7-RC1 | Add content after the forum select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_forum_prepend | acp_permissions.html | 3.1.7-RC1 | Add content before the forum select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_group_after | acp_permissions.html | 3.1.7-RC1 | Add content after the group select form in usergroup view |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_group_append | acp_permissions.html | 3.1.7-RC1 | Add content after the group select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_group_before | acp_permissions.html | 3.1.7-RC1 | Add content before the group select form in usergroup view |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_group_prepend | acp_permissions.html | 3.1.7-RC1 | Add content before the group select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_multiple_forum_append | acp_permissions.html | 3.1.7-RC1 | Add content after the forum multiple select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_permissions_select_multiple_forum_prepend | acp_permissions.html | 3.1.7-RC1 | Add content before the forum multiple select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_posting_buttons_after | acp_posting_buttons.html | 3.1.0-b4 | Add content after BBCode posting buttons in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_posting_buttons_before | acp_posting_buttons.html | 3.1.0-b4 | Add content before BBCode posting buttons in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_posting_buttons_custom_tags_before | acp_posting_buttons.html | 3.1.10-RC1 | Add content before the custom BBCodes in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_basic_options_after | acp_profile.html | 3.2.10-RC1 | Add content after custom profile field basic options in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_basic_options_before | acp_profile.html | 3.2.10-RC1 | Add content before custom profile field basic options in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_contact_after | acp_profile.html | 3.2.10-RC1 | Add content after contact specific custom profile field option in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_contact_before | acp_profile.html | 3.1.6-RC1 | Add extra options to custom profile field configuration in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_contact_last | acp_profile.html | 3.1.11-RC1 | Add contact specific options to custom profile fields in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_options_before | acp_profile.html | 3.2.10-RC1 | Add content before custom profile field options in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_step_one_lang_after | acp_profile.html | 3.1.11-RC1 | Add extra lang specific options to custom profile field step one configuration in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_visibility_options_after | acp_profile.html | 3.2.10-RC1 | Add content after custom profile field visibility options in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_profile_visibility_options_before | acp_profile.html | 3.2.10-RC1 | Add content before custom profile field visibility options in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_prune_forums_append | acp_prune_forums.html | 3.1.7-RC1 | Add content after the forum select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_prune_forums_prepend | acp_prune_forums.html | 3.1.7-RC1 | Add content before the forum select form label |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_prune_forums_settings_append | acp_prune_forums.html | 3.2.2-RC1 | Add content after the prune settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_prune_users_find_username_append | acp_prune_users.html | 3.1.7-RC1 | Add content after the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_prune_users_find_username_prepend | acp_prune_users.html | 3.1.7-RC1 | Add content before the find username link |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ranks_edit_after | acp_ranks.html | 3.1.0-RC3 | Add content after the rank details when editing a rank in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ranks_edit_before | acp_ranks.html | 3.1.0-RC3 | Add content before the rank details when editing a rank in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ranks_list_column_after | acp_ranks.html | 3.1.0-RC3 | Add content before the first column in the ranks list in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ranks_list_column_before | acp_ranks.html | 3.1.0-RC3 | Add content after the last column (but before the action column) |
+ | | | | in the ranks list in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ranks_list_header_after | acp_ranks.html | 3.1.0-RC3 | Add content before the first header-column in the ranks list in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_ranks_list_header_before | acp_ranks.html | 3.1.0-RC3 | Add content after the last header-column (but before the action column) |
+ | | | | in the ranks list in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_simple_footer_after | simple_footer.html | 3.1.0-a1 | Add content below the simple footer in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_simple_footer_body_after | simple_footer.html | 3.3.10-RC1 | Add content before the `` tag but after the $SCRIPTS var, i.e. after the js scripts have been loaded |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_simple_header_body_before | simple_header.html | 3.1.0-b2 | Add content to the header body |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_simple_header_head_append | simple_header.html | 3.1.0-a1 | Add assets within the `
` tags in the simple header of the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_simple_header_stylesheets_after | simple_header.html | 3.1.0-RC3 | Add assets after stylesheets within the `
` tags in the simple header |
+ | | | | of the ACP. Note that INCLUDECSS will not work with this event. |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_styles_list_before | acp_styles.html | 3.1.7-RC1 | Add content before list of styles |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_mode_add | acp_users.html | 3.2.2-RC1 | Add extra modes to the ACP user page |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_overview_options_append | acp_users_overview.html | 3.1.0-a1 | Add options and settings on user overview page |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_append | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the bottom of ACP users prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_personal_append | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the bottom of ACP users personal prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_personal_prepend | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the top of ACP users personal prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_post_append | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the bottom of ACP users post prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_post_prepend | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the top of ACP users post prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_prepend | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the top of ACP users prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_view_append | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the bottom of ACP users view prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_prefs_view_prepend | acp_users_prefs.html | 3.1.0-b3 | Add user options fieldset to the top of ACP users view prefs settings |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_profile_after | acp_users_profile.html | 3.1.4-RC1 | Add content after the profile details but before the custom profile fields when editing a user in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_profile_before | acp_users_profile.html | 3.1.4-RC1 | Add content before the profile details when editing a user in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_profile_custom_after | acp_users_profile.html | 3.1.4-RC1 | Add content after the the custom profile fields when editing a user in the ACP |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_select_group_after | acp_users.html | 3.1.7-RC1 | Add content after group select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
+ | acp_users_select_group_before | acp_users.html | 3.1.7-RC1 | Add content before group select form |
+ +------------------------------------------------+----------------------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+
diff --git a/development/extensions/index.rst b/development/extensions/index.rst
index e3b98517..e026106e 100644
--- a/development/extensions/index.rst
+++ b/development/extensions/index.rst
@@ -13,8 +13,17 @@ Welcome to phpBB's extension development tutorial and documentation.
tutorial_controllers
tutorial_migrations
tutorial_modules
+ tutorial_notifications
tutorial_permissions
tutorial_authentication
+ tutorial_parsing_text
+ tutorial_bbcodes
+ tutorial_templates
tutorial_advanced
tutorial_testing
- *
+ modification_to_extension
+ new_in_rhea
+ new_in_proteus
+ skeleton_extension
+ events_list
+ database_types_list
diff --git a/development/extensions/modification_to_extension.rst b/development/extensions/modification_to_extension.rst
index 6def9bc5..abaad51e 100644
--- a/development/extensions/modification_to_extension.rst
+++ b/development/extensions/modification_to_extension.rst
@@ -300,17 +300,17 @@ As for the ``main_info.php`` we need to adjust the class name from
{
function module()
{
- return array(
+ return [
'filename' => '\nickvergessen\newspage\acp\main_module',
'title' => 'ACP_NEWSPAGE_TITLE',
- 'modes' => array(
- 'config_newspage' => array(
+ 'modes' => [
+ 'config_newspage' => [
'title' => 'ACP_NEWSPAGE_CONFIG',
'auth' => 'acl_a_board',
- 'cat' => array('ACP_NEWSPAGE_TITLE')
- ),
- ),
- );
+ 'cat' => ['ACP_NEWSPAGE_TITLE']
+ ],
+ ],
+ ];
}
}
@@ -366,41 +366,41 @@ let's have a look at the Newspage again.
.. code-block:: php
- $versions = array(
- '1.0.0' => array(
- 'config_add' => array(
- array('news_number', 5),
- array('news_forums', '0'),
- array('news_char_limit', 500),
- array('news_user_info', 1),
- array('news_post_buttons', 1),
- ),
- 'module_add' => array(
- array('acp', 'ACP_CAT_DOT_MODS', 'NEWS'),
-
- array('acp', 'NEWS', array(
+ $versions = [
+ '1.0.0' => [
+ 'config_add' => [
+ ['news_number', 5],
+ ['news_forums', '0'],
+ ['news_char_limit', 500],
+ ['news_user_info', 1],
+ ['news_post_buttons', 1],
+ ],
+ 'module_add' => [
+ ['acp', 'ACP_CAT_DOT_MODS', 'NEWS'],
+
+ ['acp', 'NEWS', [
'module_basename' => 'newspage',
'module_langname' => 'NEWS_CONFIG',
'module_mode' => 'overview',
'module_auth' => 'acl_a_board',
- ),
- ),
- ),
- ),
- '1.0.1' => array(
- 'config_add' => array(
- array('news_pages', 1),
- ),
- ),
- '1.0.2' => array(),
- '1.0.3' => array(
- 'config_add' => array(
- array('news_attach_show', 1),
- array('news_cat_show', 1),
- array('news_archive_per_year', 1),
- ),
- ),
- );
+ ],
+ ],
+ ],
+ ],
+ '1.0.1' => [
+ 'config_add' => [
+ ['news_pages', 1],
+ ],
+ ],
+ '1.0.2' => [],
+ '1.0.3' => [
+ 'config_add' => [
+ ['news_attach_show', 1],
+ ['news_cat_show', 1],
+ ['news_archive_per_year', 1],
+ ],
+ ],
+ ];
Schema Changes
--------------
@@ -425,40 +425,40 @@ whereby both methods return an array with the changes:
public function update_schema()
{
- return array(
- 'add_columns' => array(
- $this->table_prefix . 'groups' => array(
- 'group_teampage' => array('UINT', 0, 'after' => 'group_legend'),
- ),
- $this->table_prefix . 'profile_fields' => array(
- 'field_show_on_pm' => array('BOOL', 0),
- ),
- ),
- 'change_columns' => array(
- $this->table_prefix . 'groups' => array(
- 'group_legend' => array('UINT', 0),
- ),
- ),
- );
+ return [
+ 'add_columns' => [
+ $this->table_prefix . 'groups' => [
+ 'group_teampage' => ['UINT', 0, 'after' => 'group_legend'],
+ ],
+ $this->table_prefix . 'profile_fields' => [
+ 'field_show_on_pm' => ['BOOL', 0],
+ ],
+ ],
+ 'change_columns' => [
+ $this->table_prefix . 'groups' => [
+ 'group_legend' => ['UINT', 0],
+ ],
+ ],
+ ];
}
public function revert_schema()
{
- return array(
- 'drop_columns' => array(
- $this->table_prefix . 'groups' => array(
+ return [
+ 'drop_columns' => [
+ $this->table_prefix . 'groups' => [
'group_teampage',
- ),
- $this->table_prefix . 'profile_fields' => array(
+ ],
+ $this->table_prefix . 'profile_fields' => [
'field_show_on_pm',
- ),
- ),
- 'change_columns' => array(
- $this->table_prefix . 'groups' => array(
- 'group_legend' => array('BOOL', 0),
- ),
- ),
- );
+ ],
+ ],
+ 'change_columns' => [
+ $this->table_prefix . 'groups' => [
+ 'group_legend' => ['BOOL', 0],
+ ],
+ ],
+ ];
}
The ``revert_schema()`` should thereby revert all changes made by the
@@ -477,29 +477,29 @@ from the Newspage would look like the following:
public function update_data()
{
- return array(
- array('config.add', array('news_number', 5)),
- array('config.add', array('news_forums', '0')),
- array('config.add', array('news_char_limit', 500)),
- array('config.add', array('news_user_info', 1)),
- array('config.add', array('news_post_buttons', 1)),
-
- array('module.add', array(
+ return [
+ ['config.add', ['news_number', 5]],
+ ['config.add', ['news_forums', '0']],
+ ['config.add', ['news_char_limit', 500]],
+ ['config.add', ['news_user_info', 1]],
+ ['config.add', ['news_post_buttons', 1]],
+
+ ['module.add', [
'acp',
'ACP_CAT_DOT_MODS',
'ACP_NEWSPAGE_TITLE'
- )),
- array('module.add', array(
+ ]],
+ ['module.add', [
'acp',
'ACP_NEWSPAGE_TITLE',
- array(
+ [
'module_basename' => '\nickvergessen\newspage\acp\main_module',
- 'modes' => array('config_newspage'),
- ),
- )),
+ 'modes' => ['config_newspage'],
+ ],
+ ]],
- array('config.add', array('newspage_mod_version', '1.0.0')),
- );
+ ['config.add', ['newspage_mod_version', '1.0.0']],
+ ];
}
More information about these data update tools can be found in
@@ -534,7 +534,7 @@ migration I will only require phpBB's ``3.1.0-a1`` migration:
static public function depends_on()
{
- return array('\phpbb\db\migration\data\v310\alpha1');
+ return ['\phpbb\db\migration\data\v310\alpha1'];
}
All further Newspage migrations can now require Newspage's first migration file,
@@ -565,34 +565,34 @@ A complete file could look like this:
static public function depends_on()
{
- return array('phpbb_db_migration_data_310_dev');
+ return ['phpbb_db_migration_data_310_dev'];
}
public function update_data()
{
- return array(
- array('config.add', array('news_number', 5)),
- array('config.add', array('news_forums', '0')),
- array('config.add', array('news_char_limit', 500)),
- array('config.add', array('news_user_info', 1)),
- array('config.add', array('news_post_buttons', 1)),
-
- array('module.add', array(
+ return [
+ ['config.add', ['news_number', 5]],
+ ['config.add', ['news_forums', '0']],
+ ['config.add', ['news_char_limit', 500]],
+ ['config.add', ['news_user_info', 1]],
+ ['config.add', ['news_post_buttons', 1]],
+
+ ['module.add', [
'acp',
'ACP_CAT_DOT_MODS',
'ACP_NEWSPAGE_TITLE'
- )),
- array('module.add', array(
+ ]],
+ ['module.add', [
'acp',
'ACP_NEWSPAGE_TITLE',
- array(
+ [
'module_basename' => '\nickvergessen\newspage\acp\main_module',
- 'modes' => array('config_newspage'),
- ),
- )),
+ 'modes' => ['config_newspage'],
+ ],
+ ]],
- array('config.add', array('newspage_mod_version', '1.0.0')),
- );
+ ['config.add', ['newspage_mod_version', '1.0.0']],
+ ];
}
}
@@ -633,9 +633,9 @@ So instead of adding
.. code-block:: php
- $template->assign_vars(array(
+ $template->assign_vars([
'U_NEWSPAGE' => append_sid($phpbb_root_path . 'app.' . $phpEx, 'controller=newspage/'),
- ));
+ ]);
to the ``page_header()``, we put that into an event listener, which is then
called everytime ``page_header()`` itself is called.
@@ -689,16 +689,16 @@ In the ``getSubscribedEvents()`` method we tell the system which events we
want to subscribe our new custom functions to.
In our case we want to subscribe to two events: the ``core.page_header`` event
and the ``core.user_setup`` event (a full list
-of events can be found `here `_):
+of events can be found `here `_):
.. code-block:: php
static public function getSubscribedEvents()
{
- return array(
+ return [
'core.user_setup' => 'load_language_on_setup',
'core.page_header' => 'add_page_header_link',
- );
+ ];
}
Now we add the two functions which are called with each event:
@@ -708,10 +708,10 @@ Now we add the two functions which are called with each event:
public function load_language_on_setup($event)
{
$lang_set_ext = $event['lang_set_ext'];
- $lang_set_ext[] = array(
+ $lang_set_ext[] = [
'ext_name' => 'nickvergessen/newspage',
'lang_set' => 'newspage',
- );
+ ];
$event['lang_set_ext'] = $lang_set_ext;
}
@@ -721,9 +721,9 @@ Now we add the two functions which are called with each event:
// This includes the name of the link, aswell as the ACP module names.
$this->user->add_lang_ext('nickvergessen/newspage', 'newspage_global');
- $this->template->assign_vars(array(
+ $this->template->assign_vars([
'U_NEWSPAGE' => $this->helper->route('newspage_base_controller'),
- ));
+ ]);
}
As a last step we need to register the event listener to the system.
@@ -756,7 +756,7 @@ you need one file per template event.
The filename includes the event name. In order to add the Newspage link
next to the FAQ link, we need to use the
``'overall_header_navigation_prepend'`` event (a full list of events can be
-found `here `_).
+found `here `_).
So we add the
``styles/prosilver/template/event/overall_header_navigation_prepend_listener.html``
@@ -764,7 +764,7 @@ to our extensions directory and add our html code into it.
.. code-block:: html
-
And that's it. No file edits required for the template files as well.
@@ -787,8 +787,7 @@ Compatibility
=============
In some cases the compatibility of functions and classes could not be kept,
-while increasing their power for 3.1. You can see a list of these in the Wiki-Article
-about `PhpBB3.1 `_
+while increasing their power for 3.1.
Pagination
----------
@@ -807,11 +806,11 @@ The old pagination code was similar to:
$pagination = generate_pagination(append_sid("{$phpbb_root_path}app.$phpEx", 'controller=newspage/'), $total_paginated, $config['news_number'], $start);
- $this->template->assign_vars(array(
+ $this->template->assign_vars([
'PAGINATION' => $pagination,
'PAGE_NUMBER' => on_page($total_paginated, $config['news_number'], $start),
'TOTAL_NEWS' => $this->user->lang('VIEW_TOPIC_POSTS', $total_paginated),
- ));
+ ]);
The new code should look like:
@@ -819,15 +818,15 @@ The new code should look like:
$pagination = $phpbb_container->get('pagination');
$pagination->generate_template_pagination(
- array(
- 'routes' => array(
+ [
+ 'routes' => [
'newspage_base_controller',
'newspage_page_controller',
- ),
- 'params' => array(),
- ), 'pagination', 'page', $total_paginated, $this->config['news_number'], $start);
+ ],
+ 'params' => [],
+ ], 'pagination', 'page', $total_paginated, $this->config['news_number'], $start);
- $this->template->assign_vars(array(
+ $this->template->assign_vars([
'PAGE_NUMBER' => $pagination->on_page($total_paginated, $this->config['news_number'], $start),
'TOTAL_NEWS' => $this->user->lang('VIEW_TOPIC_POSTS', $total_paginated),
- ));
+ ]);
diff --git a/development/extensions/new_in_proteus.rst b/development/extensions/new_in_proteus.rst
new file mode 100644
index 00000000..9b50b3be
--- /dev/null
+++ b/development/extensions/new_in_proteus.rst
@@ -0,0 +1,124 @@
+========================
+What's New for phpBB 3.3
+========================
+
+Introduction
+============
+
+phpBB 3.3 (Proteus) is only a minor version update to 3.2. There are, however, a few changes extension developers need to be aware of. The biggest changes to come in 3.3 are updates to many of phpBB's underlying dependencies, bringing Symfony, Twig, jQuery and PHP up to date.
+
+This documentation explains:
+
+ * `PHP 7`_
+ * `Symfony 3.4`_
+ * `Twig 2`_
+ * `jQuery 3`_
+ * `Extension Installation Error Messages`_
+
+PHP 7
+=====
+
+PHP 7.2.0 is the minimum version required by phpBB 3.3. It is unlikely that this should cause any problems for extensions. If your PHP code worked in phpBB 3.1 or 3.2, it should work in phpBB 3.3 as well.
+
+If you intend to start using some of the new language constructs introduced in PHP 7, you must make your extension's minimum PHP requirement known to your users. This can include setting the minimum PHP version in your extension's ``composer.json`` file as well as designating phpBB 3.3 as a minimum requirement. You can also use the ``ext.php`` file to check that the minimum PHP and phpBB version requirements are satisfied in the ``is_enableable()`` method, which will prevent users who do not meet the requirements from accidentally installing your extension. Examples of this can be found `here `_.
+
+.. note::
+ The minimum required version of PHP was increased to 7.2.0 with the release of phpBB 3.3.11. Prior versions of phpBB 3.3 also supported a minimum PHP version of 7.1.3.
+
+Symfony 3.4
+===========
+
+Symfony has been updated to 3.4 (from 2.8). The following changes are due to deprecations introduced in Symfony 2 that have been removed from Symfony 3. The following changes are **required** for phpBB 3.3 and later.
+
+.. note::
+ Although the following changes are required for phpBB 3.3, they are backwards compatible and therefore, will still work with phpBB 3.2 and 3.1.
+
+Deprecated special characters at the beginning of unquoted strings
+------------------------------------------------------------------
+
+According to Yaml specification, unquoted strings cannot start with ``@``, ``%``, `````, ``|`` or ``>``. You must wrap these strings with single or double quotes:
+
+.. code-block:: yaml
+
+ vendor.package.class:
+ class: vendor\package\classname
+ arguments:
+ - '@dbal.conn'
+ - '%custom.tables%'
+ calls:
+ - [set_controller_helper, ['@controller.helper']]
+
+Deprecated Route Pattern
+------------------------
+
+Older versions of Symfony and phpBB allowed routes to be defined using the keyword ``pattern``:
+
+.. code-block:: yaml
+
+ vendor.package.route:
+ pattern: /{value}
+
+For phpBB 3.3, route paths must instead be defined using the keyword ``path``:
+
+.. code-block:: yaml
+
+ vendor.package.route:
+ path: /{value}
+
+Twig 2
+======
+
+Twig has been updated from version 1 to version 2. This change should not affect any Twig template syntax you may be using in your extensions.
+
+jQuery 3
+========
+
+phpBB 3.3 ships with jQuery 3.4.1, updated from the much older version 1.12.4 that shipped with phpBB 3.2.
+
+The developers of jQuery are very good about maintaining backwards compatibility, which means that most of your jQuery code should continue to work. The biggest changes introduced by jQuery versions 2 and 3 are dropping support for legacy browsers, in particular, Internet Explorer.
+
+While it's not always easy to check if an extension's jQuery code is functioning fine, jQuery provides a Migration PlugIn on their web site. You can add the un-compressed version of this PlugIn to your phpBB development board, which will output to your browser's error console any problems it finds in your jQuery code.
+
+The majority of any issues you may see reported by the Migration PlugIn will be warnings related to using deprecated jQuery functions (usually shortcuts or aliases such as ``click()`` or ``focus()`` which should instead be changed to the ``on()`` delegation event handler). Even if you are using deprecated functions, they will still most likely work just fine, although it is best to make any recommended updates in the event that jQuery does eventually remove deprecated functions.
+
+Extension Installation Error Messages
+=====================================
+
+One often requested feature by extension authors finally makes its debut in phpBB 3.3: Displaying error messages to users when an extension can not be enabled!
+
+Typically extension authors use their extension's ``ext.php`` file to set conditional tests to check and see if a phpBB board meets the basic requirements of their extension. If it fails, the extension is not enabled. However users are only met with an error message that their board failed to meet the extension's requirements.
+
+Now extension authors can explain what the specific requirements are that caused the extension to fail to install.
+
+This can be done in the same ``ext.php`` file and the same ``is_enableable()`` method as before. Except now, instead of only being able to return either a true or false boolean, the method allows you to return an array of error messages for each reason why an extension can not be enabled/installed.
+
+.. note::
+
+ To be backwards compatible with phpBB 3.2 and 3.1, check for phpBB 3.3 or newer before using the new message system. Otherwise for older phpBB boards you must use the original method of returning a simple true/false boolean.
+
+.. code-block:: php
+
+ /**
+ * Check if extension can be enabled
+ *
+ * @return bool|array True if enableable, false (or an array of error messages) if not.
+ */
+ public function is_enableable()
+ {
+ // Only install extension if PHP ZipArchive is present
+ $enableable = class_exists('ZipArchive');
+
+ // If the test failed and phpBB 3.3 is detected, return error message explaining why
+ if (!$enableable && phpbb_version_compare(PHPBB_VERSION, '3.3.0', '>='))
+ {
+ // Import my extension's language file
+ $language = $this->container->get('language');
+ $language->add_lang('my_install_lang_file', 'myvendor/myextension');
+
+ // Return message 'PHP ZipArchive is required to enable and use this extension.'
+ return [$language->lang('INSTALL_FAILED_MESSAGE')];
+ }
+
+ // Return the boolean result of the test, either true (or false for phpBB 3.2 and 3.1)
+ return $enableable;
+ }
diff --git a/development/extensions/new_in_rhea.rst b/development/extensions/new_in_rhea.rst
new file mode 100644
index 00000000..51cdb80f
--- /dev/null
+++ b/development/extensions/new_in_rhea.rst
@@ -0,0 +1,504 @@
+========================
+What's New for phpBB 3.2
+========================
+
+Introduction
+============
+
+phpBB 3.2 (Rhea) introduces many new and updated components that extensions can take advantage of. Some of these changes may require extensions to make updates to maintain compatibility with phpBB 3.2 (some changes provide a layer of backwards compatibility with 3.1). Extension authors should review the changes documented below to see how their extensions may be affected.
+
+This documentation explains:
+
+ * `New Language Object`_
+ * `New BBCode Engine`_
+ * `New Text Reparser`_
+ * `New File Uploader`_
+ * `New Font Awesome Icons`_
+ * `Updated Notifications`_
+ * `Updated Twig Syntax`_
+ * `Updated Symfony Services`_
+ * `Updated INCLUDECSS`_
+ * `Additional Helpers`_
+
+New Language Object
+===================
+
+.. warning::
+ The following applies to phpBB 3.2 and later versions. If you must maintain backwards compatibility with phpBB 3.1, continue using the deprecated language methods from the User object.
+
+A new Language object has been introduced that decouples language functions from the User object. That is to say, the following language functions now belong to the ``\phpbb\language\language`` class:
+
+.. csv-table::
+ :header: "Function", "Description"
+ :delim: |
+
+ ``lang`` | "Advanced language substitution."
+ ``add_lang`` | "Add Language Items."
+ ``get_plural_form`` | "Determine which plural form we should use."
+ ``set_user_language`` | "Function to set user's language to display."
+ ``set_default_language`` | "Function to set the board's default language to display."
+
+The Language object is available as a service from the DI container, and can be added to an extension's services as an argument:
+
+.. code-block:: yaml
+
+ arguments:
+ - '@language'
+
+Language keys can be translated by calling the ``lang()`` method from the Language object:
+
+.. code-block:: php
+
+ $language->lang('SOME_LANGUAGE_KEY');
+
+Language files can be added by calling the ``add_lang()`` method from the Language object:
+
+.. code-block:: php
+
+ // Load a core language file
+ $language->add_lang('posting');
+
+Extension developers should note that the ``add_lang()`` method now supports adding language files from extensions, replacing the deprecated ``add_lang_ext()`` method from the User object:
+
+.. code-block:: php
+
+ // Load an extension's language file
+ $language->add_lang('demo', 'acme/demo');
+
+.. note::
+ Note the argument order of the ``add_lang()`` method. It takes as its first argument the name of the language file, and the optional second argument is the packaged name of an extension. This is the reverse order of arguments that the deprecated ``add_lang_ext()`` from the User object used.
+
+New BBCode Engine
+=================
+
+.. warning::
+ The following applies to phpBB 3.2 and later versions. It is not backwards compatible with phpBB 3.1.
+
+As of phpBB 3.2, a new and more powerful BBCode formatting engine has been integrated. The new engine is the third-party `s9e/TextFormatter `_ library. Its integration classes can be found in ``phpBB/phpbb/textformatter``.
+
+The new engine has already been equipped with many PHP events making it even easier than before for extensions to configure BBCodes and BBCode formatted text. The following are the new PHP events:
+
+.. csv-table::
+ :header: "Event", "Description"
+ :delim: |
+
+ ``core.text_formatter_s9e_configure_before`` | "Modify the s9e\TextFormatter configurator before the default settings are set."
+ ``core.text_formatter_s9e_configure_after`` | "Modify the s9e\TextFormatter configurator after the default settings are set."
+ ``core.text_formatter_s9e_parser_setup`` | "Configure the parser service, Can be used to: toggle features or BBCodes, register variables or custom parsers in the s9e\TextFormatter parser, configure the s9e\TextFormatter parser's runtime settings."
+ ``core.text_formatter_s9e_parse_before`` | "Modify a text before it is parsed."
+ ``core.text_formatter_s9e_parse_after`` | "Modify a parsed text in its XML form."
+ ``core.text_formatter_s9e_renderer_setup`` | "Configure the renderer service."
+ ``core.text_formatter_s9e_render_before`` | "Modify a parsed text before it is rendered."
+ ``core.text_formatter_s9e_render_after`` | "Modify a rendered text."
+
+Fortunately, the integration is pretty seamless and most existing extensions that handle messages processed by the BBCode engine should continue to work without needing any changes. For example, the following phpBB functions will continue to work as they did in phpBB 3.1:
+
+ * ``decode_message()``
+ * ``generate_text_for_display()``
+ * ``generate_text_for_edit()``
+ * ``generate_text_for_storage()``
+ * ``strip_bbcode()``
+
+Some simple examples of what can be done with the new library include:
+
+.. code-block:: php
+
+ // Let's get the parser service from the container in this example
+ $parser = $container->get('text_formatter.parser');
+
+ // Disable or enable a BBCode
+ $parser->disable_bbcode($name);
+ $parser->enable_bbcode($name);
+
+ // Disable or enable BBCodes in general
+ $parser->disable_bbcodes();
+ $parser->enable_bbcodes();
+
+ // Let's get the text formatter utils from the container in this example
+ $text_formatter_utils = $container->get('text_formatter.utils');
+
+ // Remove a BBCode and its content from a message
+ $text_formatter_utils->remove_bbcode($message, $bbcode);
+
+ // Un-parse text back to its original form
+ $text_formatter_utils->unparse($message);
+
+A major change introduced by the new engine is how text (in posts, PMs, signatures, etc.) is stored. In phpBB 3.1, text is stored as HTML, with BBCodes and some other features being replaced at rendering time. As of phpBB 3.2, text is stored as XML and transformed into HTML at rendering time. phpBB 3.2 has a `New Text Reparser`_ class which will convert all posts, PMs, signatures, etc. to the new format shortly after updating to 3.2 (this is handled mostly by incremental cron jobs).
+
+.. note::
+ Messages stored in the old HTML format will still display as normal, even before being converted to the new XML format. This ensures a seamless experience for a board's users.
+
+Extensions that are storing their own messages with BBCodes and smilies should consider adding a TextReparser class to ensure their messages are updated to the new XML format. See `New Text Reparser`_ for more information.
+
+.. seealso::
+ The s9e/TextFormatter library `documentation and cookbook `_.
+
+New Text Reparser
+=================
+
+.. warning::
+ The following applies to phpBB 3.2 and later versions. It is not backwards compatible with phpBB 3.1.
+
+phpBB 3.2 introduces the ``\phpbb\textreparser`` class to reparse stored text in the database. By reparsing, it will rebuild BBCodes, smilies and other text formatting in posts, private messages, signatures and anywhere else BBCodes are used.
+
+The class was conceived to provide a means to reparse BBCodes into the new XML storage format introduced by the `New BBCode engine`_. When a board is updated from 3.1 to 3.2, the reparser is called into service in two ways. First, migrations are used to reparse some of the smaller database items (forum descriptions, for example). Second, cron tasks are used to incrementally reparse the larger database items (posts & PMs).
+
+Extensions that store their own text with BBCodes, smilies, etc. should consider using the text reparser to ensure they are also updated to the new XML format. Extensions can extend the text reparser. The minimum that is required is the ``get_columns()`` method which returns an array mapping the column names of the table storing text to be reparsed, for example:
+
+.. code-block:: php
+
+ 'demo_id',
+ 'text' => 'demo_message',
+ 'bbcode_uid' => 'demo_message_bbcode_uid',
+ 'options' => 'demo_message_bbcode_options',
+ ];
+ }
+ }
+
+Notice that the table name has not been identified yet. The table name is actually defined as an argument in the service definition of the extension's reparser class:
+
+.. code-block:: yaml
+
+ text_reparser.acme_demo_text:
+ class: acme\demo\textreparser\plugins\demo_text
+ arguments:
+ - '@dbal.conn'
+ - '%acme.demo.tables.demo_messages%'
+ tags:
+ - { name: text_reparser.plugin }
+
+The next step is to add our reparser to phpBB's cron jobs queue. To do so, we simply define a cron task service for our reparser in the following way:
+
+.. code-block:: yaml
+
+ cron.task.text_reparser.acme_demo_text:
+ class: phpbb\cron\task\text_reparser\reparser
+ arguments:
+ - '@config'
+ - '@config_text'
+ - '@text_reparser.lock'
+ - '@text_reparser.manager'
+ - '@text_reparser_collection'
+ calls:
+ - [set_name, [cron.task.text_reparser.acme_demo_text]]
+ - [set_reparser, [text_reparser.acme_demo_text]]
+ tags:
+ - { name: cron.task }
+
+Notice that the service is using phpBB's reparser cron task class, then uses the ``calls`` option to include our reparser. Be sure to set the calls options to your cron and reparser services we just defined.
+
+Finally, to complete setting up the cron jobs, we must add two new configs to the config table using a migration:
+
+.. code-block:: php
+
+ public function update_data()
+ {
+ return [
+ ['config.add', ['text_reparser.acme_demo_text_cron_interval', 10]],
+ ['config.add', ['text_reparser.acme_demo_text_last_cron', 0]],
+ ];
+ }
+
+Note that these configs are the name of our text_reparser.plugin ``text_reparser.acme_demo_text`` plus ``_cron_interval`` and ``_last_cron``. The ``cron_interval`` should be a value in seconds to wait between jobs, in this case "10", and the ``last_cron`` should always be set to "0".
+
+.. tip::
+ In some cases you may want to run your reparser from a migration. For example, you need your stored text reparsed immediately during the extension update and do not want to wait for it to go through the cron task queue.
+
+ If the volume of rows that need to be reparsed is high, it must reparse incrementally, in chunks, to minimise the risk of a PHP timeout or database corruption. The following is an example of a custom function in a migration acting in incremental chunks, processing 50 rows at a time:
+
+ .. code-block:: php
+
+ /**
+ * Run the Acme Demo text reparser
+ *
+ * @param int $current A message id
+ *
+ * @return bool|int A message id or true if finished
+ */
+ public function reparse($current = 0)
+ {
+ // Get our reparser
+ $reparser = new \acme\demo\textreparser\plugins\demo_text(
+ $this->db,
+ $this->container->getParameter('core.table_prefix') . 'demo_messages'
+ );
+
+ // If $current id is empty, get the highest id from the db
+ if (empty($current))
+ {
+ $current = $reparser->get_max_id();
+ }
+
+ $limit = 50; // Reparse in chunks of 50 rows at a time
+ $start = max(1, $current + 1 - $limit);
+ $end = max(1, $current);
+
+ // Run the reparser
+ $reparser->reparse_range($start, $end);
+
+ // Update the $current id
+ $current = $start - 1;
+
+ // Return the $current id, or true when finished
+ return ($current === 0) ? true : $current;
+ }
+
+New File Uploader
+=================
+
+.. warning::
+ The following is a **required** change for phpBB 3.2 and later versions. It is not backwards compatible with phpBB 3.1. Extensions making this change must release a new major version dropping support for 3.1.
+
+phpBB 3.2 introduces two new classes for uploading files: ``filespec`` and ``upload``. These have been refactored and are based on the previously available ``filespec`` and ``fileupload`` classes.
+
+For information about the new classes, read :doc:`../files/overview` documentation.
+
+To update an extension to use the new class, read the `Converting uses of fileupload class <../files/upload.html#converting-uses-of-fileupload-class>`_ documentation.
+
+New Font Awesome Icons
+======================
+
+.. warning::
+ The following applies to phpBB 3.2 and later versions. It is not backwards compatible with phpBB 3.1.
+
+phpBB 3.2 includes the Font Awesome toolkit. It is used by the default style Prosilver, and has replaced almost every gif/png icon with a font icon.
+
+The result of this is significant template changes to Prosilver, including some new CSS classes. Extensions written for phpBB 3.1 that make use of any of Prosilver's icons may need to be adjusted to be compatible with phpBB 3.2.
+
+The benefit of the new `Font Awesome icons `_ is they make it easy to improve GUI elements of your extension. For example, if an extension has a "Delete" link or button, you can easily add a nice little Trash Can icon to the link or button:
+
+.. code-block:: html
+
+
+ Delete
+
+
+Updated Notifications
+=====================
+
+.. warning::
+ The following is a **required** change for phpBB 3.2 and later versions. It is not backwards compatible with phpBB 3.1. Extensions making this change must release a new major version dropping support for 3.1.
+
+Extensions that make use of the phpBB's built-in notification system must make the following updates to their notification classes, if necessary. The notable changes have been made to the ``find_users_for_notification()`` and ``create_insert_array()`` methods.
+
+find_users_for_notification()
+-----------------------------
+
+This method must return an array of users who can see the notification. While it is the extension authors responsibility to determine how to build this array of users, an example usage in phpBB 3.1 may look like:
+
+.. code-block:: php
+
+ public function find_users_for_notification($data, $options = [])
+ {
+ // run code to query a group of users from the database...
+
+ while ($row = $this->db->sql_fetchrow($result))
+ {
+ $users[$row['user_id']] = [''];
+ }
+
+ // do any additional processing...
+
+ return $users;
+ }
+
+As of phpBB 3.2 a new helper to get the list of methods enabled by default is available from the manager class, to assign as the array values in the user array:
+
+.. code-block:: php
+
+ public function find_users_for_notification($data, $options = [])
+ {
+ // run code to query a group of users from the database...
+
+ while ($row = $this->db->sql_fetchrow($result))
+ {
+ $users[$row['user_id']] = $this->notification_manager->get_default_methods();
+ }
+
+ // do any additional processing...
+
+ return $users;
+ }
+
+.. note::
+ Notice that we simply replaced the empty ``['']`` value assigned to each user with the new ``$this->notification_manager->get_default_methods()`` method call.
+
+create_insert_array()
+---------------------
+
+In phpBB 3.1, this method returned an array of data ready to be inserted into the database from the parent class:
+
+.. code-block:: php
+
+ public function create_insert_array($data, $pre_create_data = [])
+ {
+ // prepare some data...
+
+ return parent::create_insert_array($data, $pre_create_data);
+ }
+
+In phpBB 3.2, the data is now added to the the class data property, so it is no longer necessary to use a ``return``. Just call the method from the parent class at the end:
+
+.. code-block:: php
+
+ public function create_insert_array($data, $pre_create_data = [])
+ {
+ // prepare some data...
+
+ parent::create_insert_array($data, $pre_create_data);
+ }
+
+Updated Twig Syntax
+===================
+
+.. warning::
+ The following applies to phpBB 3.2 and later versions. If you must maintain backwards compatibility with phpBB 3.1, please disregard this section.
+
+If you are already using Twig template syntax, and you have been using loop structures in your templates, you are probably familiar with the odd usage of the ``loops`` prefix required in phpBB 3.1:
+
+.. code-block:: twig
+
+ {# phpBB 3.1 and 3.2 compatible #}
+ {% for item in loops.items %}
+ item.MY_VAR
+ {% endfor %}
+
+As of phpBB 3.2, this requirement has been removed, allowing you to use natural Twig syntax for looped structures (i.e. the ``loops`` prefix is no longer needed):
+
+.. code-block:: twig
+
+ {# phpBB 3.2 or later only #}
+ {% for item in items %}
+ item.MY_VAR
+ {% endfor %}
+
+If you want to maintain backwards compatibility with phpBB 3.1, you must continue using the ``loops`` prefix.
+
+Updated Symfony Services
+========================
+
+The following changes are due to deprecations introduced in Symfony 2.8 (which is used in phpBB 3.2). These deprecations are being removed from Symfony 3 (which is used in phpBB 3.3).
+
+Deprecating special characters at the beginning of unquoted strings
+-------------------------------------------------------------------
+
+.. warning::
+ The following is recommended for phpBB 3.1 and later versions. It will be required from phpBB 3.3 and later.
+
+According to Yaml specification, unquoted strings cannot start with ``@``, ``%``, `````, ``|`` or ``>``. You must wrap these strings with single or double quotes:
+
+.. code-block:: yaml
+
+ vendor.package.class:
+ class: vendor\package\classname
+ arguments:
+ - '@dbal.conn'
+ - '%custom.tables%'
+ calls:
+ - [set_controller_helper, ['@controller.helper']]
+
+Deprecating Scopes and Introducing Shared Services
+--------------------------------------------------
+
+.. warning::
+ The following is a **required** change for phpBB 3.2 and later versions. It is not backwards compatible with phpBB 3.1. Extensions making this change must release a new major version dropping support for 3.1.
+
+By default, all services are shared services. This means a class is instantiated once, and used each time you ask for it from the service container.
+
+In some cases, however, it is desired to *unshare* a class, where a new instance is created each time you ask for the service. An example of this is the Notifications classes.
+
+In phpBB 3.1, this was defined in the ``services.yml`` by setting the ``scope`` option to ``prototype``:
+
+.. code-block:: yaml
+
+ vendor.package.class:
+ class: vendor\package\classname
+ scope: prototype
+
+For phpBB 3.2, instead of ``scope``, service definitions must now configure a ``shared`` option and set it to ``false`` to get the same result as in the previous prototype scope:
+
+.. code-block:: yaml
+
+ vendor.package.class:
+ class: vendor\package\classname
+ shared: false
+
+Deprecating Route Pattern
+-------------------------
+
+.. warning::
+ The following is recommended for phpBB 3.1 and later versions. It will be required from phpBB 3.3 and later.
+
+Older versions of Symfony and phpBB have allowed routes to be defined using the keyword ``pattern``:
+
+.. code-block:: yaml
+
+ vendor.package.route:
+ pattern: /{value}
+
+For phpBB 3.2, route paths must instead be defined using the keyword ``path``:
+
+.. code-block:: yaml
+
+ vendor.package.route:
+ path: /{value}
+
+Updated INCLUDECSS
+==================
+
+.. warning::
+ The following applies to phpBB 3.2 and later versions. If you must maintain backwards compatibility with phpBB 3.1, please disregard this section.
+
+As of phpBB 3.2, the ``INCLUDECSS`` template tag can now be called from anywhere in a template, making it just as easy and flexible to implement from any template event or file as the ``INCLUDEJS`` tag.
+
+Previously, in phpBB 3.1, extension's could only use this tag in the ``overall_header_head_append`` template event, or before including ``overall_header.html`` in a custom template file.
+
+Additional Helpers
+==================
+
+New Group Helper
+----------------
+
+phpBB 3.2 adds a new helper to simplify the job of displaying user group names.
+
+In phpBB 3.1, displaying a user group name required verbose code similar to:
+
+.. code-block:: php
+
+ // phpbb 3.1 and 3.2 compatible:
+ ($row['group_type'] == GROUP_SPECIAL) ? $user->lang('G_' . $row['group_name']) : $row['group_name'];
+
+This is simpler in phpBB 3.2 with the ``get_name()`` method of the ``\phpbb\group\helper\`` class:
+
+.. code-block:: php
+
+ // phpBB 3.2 only:
+ $group_helper->get_name($row['group_name']);
+
+BBCode FAQ Controller Route
+---------------------------
+
+phpBB 3.2 now has a built-in routing definition for the BBCode FAQ page. Linking to this page is common for extensions that have their own BBCode message editor.
+
+In phpBB 3.1, linking to the BBCode FAQ looked like:
+
+.. code-block:: php
+
+ // phpBB 3.1 and 3.2 compatible:
+ $u_bbcode_faq = append_sid("{$phpbb_root_path}faq.{$phpEx}", 'mode=bbcode');
+
+In phpBB 3.2, linking to the BBCode FAQ can be handled using the routing system:
+
+.. code-block:: php
+
+ // phpBB 3.2 only:
+ $u_bbcode_faq = $controller_helper->route('phpbb_help_bbcode_controller');
diff --git a/development/extensions/skeleton_extension.rst b/development/extensions/skeleton_extension.rst
index 7f04ed0d..eab942b1 100644
--- a/development/extensions/skeleton_extension.rst
+++ b/development/extensions/skeleton_extension.rst
@@ -5,13 +5,13 @@ phpBB Skeleton Extension
The Skeleton Extension is a tool for extension developers. Its
purpose is to kick start your extension development projects.
-What is a skeleton? It's a working extension, based off the phpBB
-Acme Demo extension. When you want to develop an extension, creating
-a skeleton will generate most of the initial files you would need,
+What is a skeleton? It's a working boiler-plate extension. When
+you want to begin development on an extension, creating a
+skeleton will generate most of the initial files you would need,
so you don't have to.
This means you can jump straight into writing code for your extension,
-and bypass the boring task of creating the initial files, methods
+and bypass the mundane task of creating the initial files, methods
and docblocks yourself.
If you've never written an extension before, a skeleton provides an ideal way
@@ -24,7 +24,7 @@ represents the phpBB Extension Team's best practices for extension coding.
Be sure to reference and familiarise yourself with phpBB's `extension
validation policies `_
-and `coding guidelines `_.
+and `coding guidelines `_.
How to install
==============
@@ -39,13 +39,6 @@ installed into a phpBB board just the same as any other.
not necessarily intended to be installed on live/production web
sites.
-Requirements
-------------
-
-- A phpBB board, version 3.1.4 or newer (from the 3.1.x branch) or 3.2.0-b3 or newer (from the 3.2.x branch).
-- PHP version 5.4 or newer.
-- PHP ZipArchive module enabled.
-
Installation
------------
@@ -59,13 +52,20 @@ Installation
Create an extension
===================
-.. note::
+.. important::
- The Skeleton Extension is based on the Acme Demo extension. As a
- result, some of its files will have working classes and methods
- already. These are provided to make the skeleton both functional and
- educational. You will want to remove any Acme Demo code you do not
- need from the skeleton and replace it with your own custom code.
+ The Skeleton Extension generates working classes and methods
+ which are intended to make the skeleton nominally functional and,
+ more importantly, instructional.
+
+ This documentation will assume we are creating the Acme Demo
+ extension, with the vendor/package naming structure: ``acme/demo``.
+ Most file, function, class, table and variable names will be
+ populated with the vendor and package names specified.
+
+ The skeleton generated is only a starting point! You should always
+ review the skeleton code you generate and update, edit or remove any
+ of the code you do not need as you begin to develop your extension.
phpBB Web interface
-------------------
@@ -101,13 +101,13 @@ In order to create an extension via the CLI, you need to open a console
on your server and ``cd`` to the root directory of the phpBB board where
you installed this extension:
-.. code:: bash
+.. code:: console
$ cd ./path/to/phpBB
To create an extension, run:
-.. code:: bash
+.. code:: console
$ ./bin/phpbbcli.php extension:create
@@ -345,6 +345,9 @@ files:
│ │ │ ├── acp_demo_body.html # Sample ACP HTML template file
│ │ │ └── ...
│ │ └── ...
+ │ ├── controller # Dir containing controller files
+ │ │ ├── acp_controller.php # A sample ACP controller class
+ │ │ └── ...
│ ├── language # Dir containing language files
│ │ ├── en # English language files (required)
│ │ │ ├── common.php # A language file used by the extension
@@ -375,6 +378,9 @@ files:
vendor
├── package
+ │ ├── controller # Dir containing controller files
+ │ │ ├── mcp_controller.php # A sample MCP controller class
+ │ │ └── ...
│ ├── language # Dir containing language files
│ │ ├── en # English language files (required)
│ │ │ ├── info_mcp_demo.php # An auto-loaded lang file for MCP modules
@@ -415,6 +421,9 @@ files:
vendor
├── package
+ │ ├── controller # Dir containing controller files
+ │ │ ├── ucp_controller.php # A sample UCP controller class
+ │ │ └── ...
│ ├── language # Dir containing language files
│ │ ├── en # English language files (required)
│ │ │ ├── info_ucp_demo.php # An auto-loaded lang file for UCP modules
@@ -422,7 +431,7 @@ files:
│ │ └── ...
│ ├── migrations # Dir containing migration files
│ │ ├── install_ucp_module.php # A migration installing the UCP module
- │ │ ├── install_user_schema.php # Contains changes used in the new module
+ │ │ ├── install_sample_schema.php # Contains changes used in the new module
│ │ └── ...
│ ├── styles # The styles dir
│ │ ├── prosilver # Dir containing prosilver style files
@@ -460,7 +469,8 @@ The Skeleton Extension will generate all of its sample migration files:
│ │ ├── install_acp_module.php # A migration installing the ACP module
│ │ ├── install_mcp_module.php # A migration installing the MCP module
│ │ ├── install_ucp_module.php # A migration installing the UCP module
- │ │ ├── install_user_schema.php # Sample schema changes to the database
+ │ │ ├── install_sample_schema.php # Sample schema changes to the database
+ │ │ ├── install_sample_data.php # Sample data changes to the database
│ │ └── ...
│ └── ...
└── ...
@@ -511,8 +521,8 @@ language file, and the config and routing YAML files:
│ │ ├── routing.yml # A routing YAML file
│ │ ├── services.yml # A config YAML file
│ │ └── ...
- │ ├── controller # Dir containing controller files
- │ │ ├── main.php # A sample controller class
+ │ ├── controller # Dir containing controller files
+ │ │ ├── main_controller.php # A sample controller class
│ │ └── ...
│ ├── event # The event dir contains all PHP event listeners
│ │ ├── main_listener.php # A sample PHP event listener
@@ -576,7 +586,7 @@ necessary language and config files:
│ │ └── ...
│ ├── console # Dir containing CLI related classes
│ │ ├── command # Dir containing CLI command classes
- │ │ │ ├── demo.php # A sample CLI command class
+ │ │ │ ├── sample.php # A sample CLI command class
│ │ │ └── ...
│ │ └── ...
│ ├── language # Dir containing language files
@@ -605,7 +615,7 @@ necessary migration and config files:
│ │ └── ...
│ ├── cron # Dir containing cron related classes
│ │ ├── task # Dir containing cron task classes
- │ │ │ ├── demo.php # A sample cron task class
+ │ │ │ ├── sample.php # A sample cron task class
│ │ │ └── ...
│ │ └── ...
│ ├── migrations # Dir containing migration files
@@ -641,12 +651,46 @@ extension's enable, disable and purge steps:
│ │ └── ...
│ ├── notification # Dir containing notification related classes
│ │ ├── type # Dir containing notification types
- │ │ │ ├── demo.php # A sample notification type class
+ │ │ │ ├── sample.php # A sample notification type class
│ │ │ └── ...
│ │ └── ...
│ └── ...
└── ...
+Permissions
+-------------
+
+Permissions can be used to grant users, groups and roles access to
+specific extension features and functionality.
+
+The Skeleton Extension will generate a migration file showing the
+installation of admin, moderator and user level permissions and assign
+then to some roles and user groups. Additionally, the required
+permissions language file is created as well as a PHP event that
+shows how permissions are assigned to their respective language
+keys and permission categories:
+
+::
+
+ vendor
+ ├── package
+ │ ├── config # The config dir contains all service config files
+ │ │ ├── services.yml # A config YAML file
+ │ │ └── ...
+ │ ├── event # The event dir contains all PHP event listeners
+ │ │ ├── main_listener.php # A sample PHP event listener
+ │ │ └── ...
+ │ ├── language # Dir containing language files
+ │ │ ├── en # English language files (required)
+ │ │ │ ├── permissions_demo.php # A language file specifically for permissions
+ │ │ │ └── ...
+ │ │ └── ...
+ │ ├── migrations # Dir containing migration files
+ │ │ ├── install_sample_data.php # Sample data changes to the database
+ │ │ └── ...
+ │ └── ...
+ └── ...
+
Tests (PHPUnit)
---------------
@@ -673,46 +717,42 @@ functional tests:
│ │ │ ├── simple_test.php # A simple test (tests a database interaction)
│ │ │ └── ...
│ │ ├── functional # Dir containing functional tests
- │ │ │ ├── demo_test.php # A simple functional test
+ │ │ │ ├── view_test.php # A simple functional test
│ │ │ └── ...
│ │ └── ...
│ └── ...
└── ...
-Travis CI configuration
------------------------
+GitHub Actions CI configuration
+-------------------------------
+
+GitHub Actions provides a platform to automatically run your PHPUnit tests on each commit and pull request in
+your repository.
+
+The Skeleton Extension can generate two types of workflow scripts based on your needs:
-Travis CI is a platform for running your PHPUnit tests on a GitHub
-repository.
+**GitHub Actions workflow (default):**
+ Generates a simplified, reusable workflow containing a few adjustable variables. You can easily enable or disable the types of tests you want to run. This workflow is maintained by phpBB and is designed to test your extension against all the same PHP versions and databases supported by phpBB.
-The Skeleton Extension will generate the basic config and script files
-needed to test your phpBB extension with each commit and pull request
-pushed to your GitHub repository:
+**GitHub Actions custom workflow (optional):**
+ Generates a fully editable, self-contained workflow for your repository. This option gives you complete control over the jobs and steps, making it ideal if you plan to customise or extend the testing process.
::
vendor
├── package
- │ ├── .travis.yml # A Travis CI configuration file
- │ ├── tests # Dir containing PHPUnit tests
- │ ├── travis # Dir containing Travis CI scripts
- │ │ ├── prepare-phpbb.sh # Script required by Travis CI during testing (do not edit)
+ │ ├── .github # A hidden directory to contain GitHub related files
+ │ │ ├── workflows # A directory to contain any GitHub workflows
+ │ | | ├── tests.yml # The test configuration script in YAML format
+ │ │ │ └── ...
│ │ └── ...
│ └── ...
└── ...
.. warning::
- The ``.travis.yml`` is a hidden file. You can view and edit it
- using a Text Editor or IDE that is capable of displaying hidden
- files.
-
-.. note::
-
- The Skeleton Extension currently does not allow you to generate
- the Travis CI component without also generating the PHPUnit tests
- component. This is because without unit tests, there is little
- benefit to using Travis CI.
+ The ``.github`` directory is a hidden folder. You can view and access it
+ using a Text Editor or IDE that is capable of displaying hidden folders.
Build script (phing)
--------------------
diff --git a/development/extensions/tutorial_advanced.rst b/development/extensions/tutorial_advanced.rst
index 087a771c..6ce81a7e 100644
--- a/development/extensions/tutorial_advanced.rst
+++ b/development/extensions/tutorial_advanced.rst
@@ -16,6 +16,7 @@ This tutorial explains:
* `Using service decoration`_
* `Replacing the phpBB Datetime class`_
* `Extension version checking`_
+* `Implementing Filesystem changes to phpBB`_
Adding a PHP event to your extension
====================================
@@ -40,7 +41,7 @@ This is what an event looks like:
* @var string var2 A second variable to make available to the event
* @since 3.1-A1
*/
- $vars = array('var1', 'var2');
+ $vars = ['var1', 'var2'];
extract($phpbb_dispatcher->trigger_event('acme.demo.identifier', compact($vars)));
You will need to replace ``identifier`` with the name of your event. This must
@@ -79,9 +80,9 @@ to extend the template of an extension, so other
extensions can manipulate the output of your extension. To create a template event you simply add
the EVENT tag to your template:
-.. code-block:: html
+.. code-block:: twig
-
+ {% EVENT acme_demo_identifier %}
The event can be used in the same way as the template events in the phpBB Core.
See :doc:`tutorial_events` on how to use these events.
@@ -94,13 +95,6 @@ Make sure to only use underscores, numbers and lowercase letters.
a release of your extension. Other extensions might already be using your event
and would risk breaking.
-.. tip::
- If you prefer Twig instead of the phpBB template syntax, you can use:
-
- .. code-block:: html
-
- {% EVENT acme_demo_identifier %}
-
.. caution::
It is not recommended to reuse existing event names in different locations.
This should only be done if the code (nested HTML elements) around the
@@ -190,7 +184,7 @@ executed until such time as false is returned.
Using service collections
=========================
In 3.1, a new concept is that of "services". You can read up on exactly what a
-service is `here `_.
+service is `here `_.
The rest of this guide will assume you have basic knowledge of services and how
to use them. A service
collection is basically what it sounds like: a collection of services. Basically,
@@ -261,7 +255,7 @@ loaded, which is especially useful in cases where service priority and/or depend
requires they be loaded in a specified order.
Ordered service collections are based on a normal service collection, but the
-collection is sorted with `ksort `_. The usage of the
+collection is sorted with `ksort `_. The usage of the
sorted service collection is nearly the same as a normal service collection,
except instead of using ``service_collection`` you should use ``ordered_service_collection``:
@@ -334,10 +328,10 @@ contained in the array keys):
.. code-block:: php
- array(
+ [
'ext/acme/demo/images/image1.png' => 'demo',
'ext/acme/demo/images/image2.png' => 'demo',
- );
+ ];
.. note::
The method ``find_from_extension`` used above will only search in the specified
@@ -399,7 +393,7 @@ are referencing the interface, you are not required to extend the original class
and should instead implement the interface.
.. warning::
- If you are using EPV in travis, or during submission to the extensions database
+ If you are using EPV in a Github repository, or during submission to the extensions database
at phpBB.com, you will receive a warning that your service configuration
doesn't follow the extensions database policies. As you are overwriting a core
service, you can simply ignore this message. However, in all cases you should
@@ -409,7 +403,7 @@ Using service decoration
========================
.. seealso::
Read about Service Decoration at
- `Symfony `_
+ `Symfony `_
for complete documentation.
From phpBB 3.2, you can use service decoration as the preferred method to replace
@@ -471,7 +465,8 @@ file:
"version-check": {
"host": "my.site.com",
"directory": "/versions",
- "filename": "acme_version_file.json"
+ "filename": "acme_version_file.json",
+ "ssl": false
}
}
@@ -482,6 +477,7 @@ file:
``host`` | "Full URL to the host domain server."
``directory`` | "Path from the domain root to the directory containing the file, starting with a leading slash."
``filename`` | "A JSON file containing the latest version information."
+ ``ssl`` | "true or false depending on the host domain server running ssl"
Notice that a JSON file is required, hosted from your own server. In the example above
it would be: ``http://my.site.com/versions/acme_version_file.json``
@@ -531,3 +527,177 @@ branch can be used to provide links to versions in development.
``download`` | "(Optional) A URL to download this version of the extension."
``eol`` | "This is currently not being used yet. Use ``null``"
``security`` | "This is currently not being used yet. Use ``false``"
+
+Implementing Filesystem changes to phpBB
+========================================
+In certain scenarios, an extension may need to implement filesystem changes within phpBB beyond the extension's
+self-contained structure. While this approach is generally discouraged, there are specific conditions where it
+may be appropriate. Extensions can safely add or remove files and folders within phpBB’s ``files``, ``images``,
+and ``store`` directories, as these are designed to hold user-generated content and are typically not replaced
+during phpBB or extension updates.
+
+There are two primary methods for implementing filesystem changes in phpBB through an extension:
+
+ 1. Using Migrations
+ 2. Using the Extension Enabling Process (ext.php)
+
+Below are examples of how to create a directory named ``acme_demo_dir`` in the ``store`` directory for storing additional extension-related files.
+
+Using Migrations
+----------------
+While migrations are generally designed for database changes, they offer specific advantages when managing filesystem changes:
+
+ - Existence Check: Use the ``effectively_installed`` method to check if the files or directories exist already.
+ - Installation Order: Use the ``depends_on`` method to ensure the directory is created at the correct stage during the extension’s installation process.
+ - Run separate (optional) filesystem processes during installation and uninstallation.
+
+.. code-block:: php
+
+ filesystem))
+ {
+ $this->filesystem = $this->container->get('filesystem');
+ $this->acme_demo_dir = $this->container->getParameter('core.root_path') . 'store/acme_demo_dir';
+ }
+ }
+
+ public function effectively_installed()
+ {
+ $this->init();
+ return $this->filesystem->exists($this->acme_demo_dir);
+ }
+
+ public static function depends_on()
+ {
+ return ['\acme\demo\migrations\first_migration'];
+ }
+
+ public function update_data(): array
+ {
+ return [
+ ['custom', [[$this, 'add_dir']]],
+ ];
+ }
+
+ public function revert_data(): array
+ {
+ return [
+ ['custom', [[$this, 'remove_dir']]],
+ ];
+ }
+
+ public function add_dir()
+ {
+ $this->init();
+
+ try
+ {
+ $this->filesystem->mkdir($this->acme_demo_dir, 0755);
+ $this->filesystem->touch($this->acme_demo_dir . '/index.htm');
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // log or handle any errors here using $e->get_filename() or $e->getMessage()
+ }
+ }
+
+ public function remove_dir()
+ {
+ $this->init();
+
+ try
+ {
+ $this->filesystem->remove($this->acme_demo_dir);
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // log or handle any errors here using $e->get_filename() or $e->getMessage()
+ }
+ }
+ }
+
+Using ext.php
+-------------
+Filesystem changes can also be implemented within the extension’s ``ext.php`` file. This method is preferable if:
+
+ - The changes have no specific requirements or dependencies that need monitoring through a migration step.
+ - The changes should occur at a particular stage, such as enabling, disabling, or deleting the extension.
+
+.. code-block:: php
+
+ container->get('filesystem');
+ $my_dir_path = $this->container->getParameter('core.root_path') . 'store/acme_demo_dir';
+
+ try
+ {
+ $filesystem->mkdir($my_dir_path, 0755);
+ $filesystem->touch($my_dir_path . '/index.htm');
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // log or handle any errors here using $e->get_filename() or $e->getMessage()
+ }
+
+ return 'added acme_demo_dir';
+ }
+
+ /**
+ * Delete acme_demo_dir when deleting extension data
+ */
+ public function purge_step($old_state)
+ {
+ if ($old_state !== false)
+ {
+ return parent::purge_step($old_state);
+ }
+
+ $filesystem = $this->container->get('filesystem');
+ $my_dir_path = $this->container->getParameter('core.root_path') . 'store/acme_demo_dir';
+
+ try
+ {
+ $filesystem->remove($my_dir_path);
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // log or handle any errors here using $e->get_filename() or $e->getMessage()
+ }
+
+ return 'removed acme_demo_dir';
+ }
+ }
+
+By leveraging one of these methods, you can implement necessary filesystem changes while maintaining compatibility
+with phpBB’s structure and best practices.
diff --git a/development/extensions/tutorial_authentication.rst b/development/extensions/tutorial_authentication.rst
index 608db132..045a1191 100644
--- a/development/extensions/tutorial_authentication.rst
+++ b/development/extensions/tutorial_authentication.rst
@@ -15,19 +15,17 @@ This tutorial explains:
Authentication Providers
========================
-phpBB 3.1 supports external authentication plugins that may be used in place of the
+phpBB 3.1 introduced support for external authentication plugins that may be used in place of the
built-in authentication providers. Only one provider may currently be active at a
time and the active one is chosen from the ACP.
Creating an Authentication Provider
-----------------------------------
-An authentication provider that comes with phpBB requires a minimum of two files:
-a class and an entry in a ``config/auth.yml`` file. Authentication providers that
-are part of an extension must provide their own YAML file defining the
-service in addition to all normal requirements of an extension.
+Authentication providers in phpBB require a minimum of two files: a PHP class
+and a YAML service file.
The class file
-++++++++++++++
+^^^^^^^^^^^^^^
The provider class must implement the ``\phpbb\auth\provider\provider_interface`` in order to
ensure proper functionality. However, it is recommended to extend
``\phpbb\auth\provider\base`` so as to not implement unneeded methods and to ensure
@@ -72,20 +70,20 @@ authentication provider class is show below:
// do not allow empty password
if (!$password)
{
- return array(
+ return [
'status' => LOGIN_ERROR_PASSWORD,
'error_msg' => 'NO_PASSWORD_SUPPLIED',
- 'user_row' => array('user_id' => ANONYMOUS),
- );
+ 'user_row' => ['user_id' => ANONYMOUS],
+ ];
}
if (!$username)
{
- return array(
+ return [
'status' => LOGIN_ERROR_USERNAME,
'error_msg' => 'LOGIN_ERROR_USERNAME',
- 'user_row' => array('user_id' => ANONYMOUS),
- );
+ 'user_row' => ['user_id' => ANONYMOUS],
+ ];
}
$username_clean = utf8_clean_string($username);
@@ -98,17 +96,17 @@ authentication provider class is show below:
$this->db->sql_freeresult($result);
// Successful login... set user_login_attempts to zero...
- return array(
+ return [
'status' => LOGIN_SUCCESS,
'error_msg' => false,
'user_row' => $row,
- );
+ ];
}
}
The service file
-++++++++++++++++
-For proper `dependency injection `_
+^^^^^^^^^^^^^^^^
+For proper :ref:`dependency injection `
the provider must be added to ``services.yml``. The name of the service
must be in the form of ``auth.provider.`` in order for phpBB to register it.
The arguments are those of the provider's constructor and may be empty if no arguments are
@@ -126,7 +124,7 @@ for the class to be made available in phpBB.
- { name: auth.provider }
The template file
-+++++++++++++++++
+^^^^^^^^^^^^^^^^^
Following the above steps renders the authentication provider visible in the ACP.
However, to allow an admin to configure your plugin the available fields need to
be created in order to reach the configuration from the php-auth-provider plugin.
@@ -137,10 +135,10 @@ For example, the sample below is based on existing LDAP terms used to configure
.. code-block:: html
@@ -171,7 +169,7 @@ phpBB. They are copies of the bitly service implementation from phpBB3's
develop branch.
The Class file
-++++++++++++++
+^^^^^^^^^^^^^^
.. code-block:: php
$this->config['auth_oauth_bitly_key'],
'secret' => $this->config['auth_oauth_bitly_secret'],
- );
+ ];
}
/**
@@ -270,7 +268,7 @@ The Class file
}
The Service File
-++++++++++++++++
+^^^^^^^^^^^^^^^^
In the service file, the name of the service must be in the form of
``auth.provider.oauth.service.`` in order for phpBB to
diff --git a/development/extensions/tutorial_basics.rst b/development/extensions/tutorial_basics.rst
index c9e3b07d..2a29e15d 100644
--- a/development/extensions/tutorial_basics.rst
+++ b/development/extensions/tutorial_basics.rst
@@ -38,9 +38,9 @@ The extension name is the name of the extension. In this tutorial we will use ``
.. important::
- Both the vendor and extension names must start with a lower or upper case letter, followed by letters and numbers
- only. **Underscores, dashes and other characters are not permitted.** It is perfectly fine to have an extension
- named ``iamanextension``.
+ Both the vendor and extension names must start with a lowercase letter, followed by lowercase letters
+ and numbers only. **Uppercase letters, underscores, dashes and other characters are not permitted.** The
+ following is an example of an allowed vendor and extension name: ``iamuser1/iamanextension``.
Composer JSON
@@ -58,12 +58,12 @@ The details of the meta data are explained below the sample, but for now let's h
{
"name": "acme/demo",
"type": "phpbb-extension",
- "description": "Acme Demo Extension for phpBB 3.1",
+ "description": "Acme Demo Extension for phpBB 3.2",
"homepage": "https://github.com/phpbb/phpbb-ext-acme-demo",
"version": "0.1.0",
"time": "2013-11-05",
"keywords": ["phpbb", "extension", "acme", "demo"],
- "license": "GPL-2.0",
+ "license": "GPL-2.0-only",
"authors": [
{
"name": "Nickv",
@@ -73,7 +73,7 @@ The details of the meta data are explained below the sample, but for now let's h
}
],
"require": {
- "php": ">=5.3.3",
+ "php": ">=5.4.0",
"composer/installers": "~1.0"
},
"require-dev": {
@@ -82,7 +82,7 @@ The details of the meta data are explained below the sample, but for now let's h
"extra": {
"display-name": "Acme Demo Extension",
"soft-require": {
- "phpbb/phpbb": "~3.1"
+ "phpbb/phpbb": "~3.2"
}
}
}
@@ -143,8 +143,8 @@ List the dependencies required by the extension, i.e. the PHP version and
:header: "Field", "Content"
:delim: |
- ``php`` | "The minimum-stability version of PHP required by the extension. phpBB 3.1 requires PHP 5.3.3 or higher,
- so the version comparison is ``>= 5.3.3``."
+ ``php`` | "The minimum-stability version of PHP required by the extension. phpBB 3.2 requires PHP 5.4.0 or higher,
+ so the version comparison is ``>= 5.4.0``."
``composer/installers`` | "Recommended by phpBB. This will install extensions to the correct location in phpBB when installed via Composer."
require-dev
@@ -168,7 +168,7 @@ two special entries in this array for extensions:
``display-name`` | "The name of your extension, e.g. Acme Demo Extension."
``soft-require`` | "The minimum-stability version of phpBB required by the extension. In this case we require
- any 3.1 version, which is done by prefixing it with a ``~``: ``""phpbb/phpbb"": ""~3.1""``."
+ any 3.1 version, which is done by prefixing it with a ``~``: ``""phpbb/phpbb"": ""~3.2""``."
.. seealso::
diff --git a/development/extensions/tutorial_bbcodes.rst b/development/extensions/tutorial_bbcodes.rst
new file mode 100644
index 00000000..95329725
--- /dev/null
+++ b/development/extensions/tutorial_bbcodes.rst
@@ -0,0 +1,357 @@
+==============================
+Tutorial: Working With BBCodes
+==============================
+
+Introduction
+============
+
+phpBB 3.2 introduced an all new BBCode engine powered by the s9e/TextFormatter
+library. This tutorial explains several ways extensions can tap into the new
+BBCode engine to manipulate and create more powerful BBCodes.
+
+This tutorial explains:
+
+* `Toggle BBCodes On / Off`_
+* `Executing PHP Code With BBCodes`_
+* `Template Parameters`_
+* `Registering Custom Variables`_
+* `Enable Text Formatter Plugins`_
+
+Toggle BBCodes On / Off
+=======================
+
+BBCodes and other tags can be toggled before or after parsing using any of the following events:
+
+.. csv-table::
+ :header: "Event", "Description"
+ :delim: |
+
+ ``core.text_formatter_s9e_parser_setup`` | Triggers once, when the text Parser service is first created.
+ ``core.text_formatter_s9e_parse_before`` | Triggers every time text is parsed, before parsing begins.
+ ``core.text_formatter_s9e_parse_after`` | Triggers every time text is parsed, **after** parsing has completed. This can be used to restore values to their original state, for example.
+
+Most common operations are available through the Parser service using the ``phpbb\textformatter\parser_interface`` API.
+This includes the functions:
+
+.. csv-table::
+ :header: "Function", "Description"
+ :delim: |
+
+ ``disable_bbcode($name)`` | Disable a BBCode
+ ``disable_bbcodes()`` | Disable BBCodes in general
+ ``disable_censor()`` | Disable the censor
+ ``disable_magic_url()`` | Disable magic URLs
+ ``disable_smilies()`` | Disable smilies
+ ``enable_bbcode($name)`` | Enable a specific BBCode
+ ``enable_bbcodes()`` | Enable BBCodes in general
+ ``enable_censor()`` | Enable the censor
+ ``enable_magic_url()`` | Enable magic URLs
+ ``enable_smilies()`` | Enable smilies
+
+For more advanced functions, the instance of ``s9e\TextFormatter\Parser`` can be retrieved via ``get_parser()`` to access its API.
+
+The following sample code shows how BBCodes can be toggled and manipulated using a PHP event listener:
+
+.. code-block:: php
+
+ class listener implements EventSubscriberInterface
+ {
+ public static function getSubscribedEvents()
+ {
+ return [
+ 'core.text_formatter_s9e_parse_before' => 'toggle_bbcodes',
+ ];
+ }
+
+ public function toggle_bbcodes($event)
+ {
+ // Get the parser service: \phpbb\textformatter\parser_interface
+ $service = $event['parser'];
+
+ // Disable the [color] BBCode through the parser service
+ $service->disable_bbcode('color');
+
+ // Set the [url] BBCode to only parse the first occurrence.
+ // Note this requires an instance of \s9e\TextFormatter\Parser
+ $service->get_parser()->setTagLimit('URL', 1);
+ }
+ }
+
+.. seealso::
+
+ - `phpBB API Documentation `_
+ - `Runtime configuration - s9e\\TextFormatter `_
+
+
+Executing PHP Code With BBCodes
+===============================
+
+Extensions can configure BBCodes to execute PHP functions. This makes it possible to create BBCodes that do a lot
+more than just generically format text.
+
+In the following simple example, we re-configure the ``QUOTE`` tag (which handles the ``[quote]`` BBCode) to run a PHP
+method to read and change its attributes during parsing based on who is being quoted in the BBCode.
+
+.. code-block:: php
+
+ class listener implements EventSubscriberInterface
+ {
+ public static function getSubscribedEvents()
+ {
+ return [
+ 'core.text_formatter_s9e_configure_after' => 'configure_quotes'
+ ];
+ }
+
+ public function configure_quotes($event)
+ {
+ // Add self::filter_quote() to filter the QUOTE tag that handles quotes
+ $event['configurator']->tags['QUOTE']->filterChain
+ ->append([__CLASS__, 'filter_quote']);
+ }
+
+ static public function filter_quote(\s9e\TextFormatter\Parser\Tag $tag)
+ {
+ if (!$tag->hasAttribute('author'))
+ {
+ // If the author is empty, we attribute the quote to Mark Twain
+ $tag->setAttribute('author', 'Mark Twain');
+ }
+ elseif (stripos($tag->getAttribute('author'), 'Gary Oak') !== false)
+ {
+ // If the author is Gary Oak we invalidate the tag to disallow it
+ $tag->invalidate();
+
+ // Return FALSE for backward compatibility
+ return false;
+ }
+
+ // We return TRUE for backward compatibility, to indicate that the tag is allowed
+ return true;
+ }
+ }
+
+.. seealso::
+
+ - `Attribute filters - s9e\\TextFormatter `_
+ - `Tag filters - s9e\\TextFormatter `_
+ - `Callback signatures - s9e\\TextFormatter `_
+
+
+Template Parameters
+===================
+
+Some of phpBB's template variables can be used in BBCodes to produce dynamic output. For example, to create a BBCode
+that will only show its content to registered users.
+
+Default phpBB template parameters:
+
+.. csv-table::
+ :header: "Variable", "Description"
+ :delim: |
+
+ ``S_IS_BOT`` | Whether the current user is a bot.
+ ``S_REGISTERED_USER`` | Whether the current user is registered.
+ ``S_USER_LOGGED_IN`` | Whether the current user is logged in.
+ ``S_VIEWCENSORS`` | Whether the current user's preferences are set to hide censored words.
+ ``S_VIEWFLASH`` | Whether the current user's preferences are set to display Flash objects.
+ ``S_VIEWIMG`` | Whether the current user's preferences are set to display images.
+ ``S_VIEWSMILIES`` | Whether the current user's preferences are set to display smilies.
+ ``STYLE_ID`` | ID of the current style.
+ ``T_SMILIES_PATH`` | Path to the smilies directory.
+
+In the following example, we will use the Configurator to create a custom BBCode dynamically that only registered
+users can see the contents of:
+
+::
+
+ [noguests]{TEXT}[/noguests]
+
+.. code-block:: php
+
+ class listener implements EventSubscriberInterface
+ {
+ public static function getSubscribedEvents()
+ {
+ return [
+ 'core.text_formatter_s9e_configure_after' => 'configure_noguests',
+ ];
+ }
+
+ public function configure_noguests($event)
+ {
+ // Get the BBCode configurator
+ $configurator = $event['configurator'];
+
+ // Let's unset any existing BBCode that might already exist
+ unset($configurator->BBCodes['noguests']);
+ unset($configurator->tags['noguests']);
+
+ // Let's create the new BBCode
+ $configurator->BBCodes->addCustom(
+ '[noguests]{TEXT}[/noguests]',
+ '
+
+
{TEXT}
+
+
+
Only registered users can read this content
+
+ '
+ );
+ }
+ }
+
+.. note::
+
+ Notice in the code above, a test is used to check the value of the template variable ``S_USER_LOGGED_IN``
+ and the appropriate BBCode HTML output is generated.
+
+Template parameters can also be set using any of the following events:
+
+.. csv-table::
+ :header: "Event", "Description"
+ :delim: |
+
+ ``core.text_formatter_s9e_renderer_setup`` | Triggers once, when the renderer service is created.
+ ``core.text_formatter_s9e_render_before`` | Triggers every time a text is rendered, before the HTML is produced.
+ ``core.text_formatter_s9e_render_after`` | Triggers every time a text is rendered, *after* the HTML is produced. It can be used to restore values to their original state.
+
+In the following simple example, we set a template parameter to generate a random number in every text.
+The number changes every time a new text is rendered. Although this serves no practical application, it
+does illustrate how this can be used in conjunction with the events and techniques above to pragmatically create
+your own template parameters, in addition to the default one's already available in phpBB.
+
+.. code-block:: php
+
+ class listener implements EventSubscriberInterface
+ {
+ public static function getSubscribedEvents()
+ {
+ return [
+ 'core.text_formatter_s9e_render_before' => 'set_random'
+ ];
+ }
+
+ public function set_random($event)
+ {
+ $event['renderer']->get_renderer()->setParameter('RANDOM', mt_rand());
+ }
+ }
+
+
+.. seealso::
+
+ - `Template parameters - s9e\\TextFormatter `_
+ - `Use template parameters - s9e\\TextFormatter `_
+
+
+Registering Custom Variables
+============================
+
+It is possible to register custom variables to be used during parsing. For instance, phpBB uses
+``max_font_size`` to limit the values used in the ``[font]`` tag dynamically. Callbacks used during parsing
+must be static and serializable as the parser itself is cached in a serialized form. However, custom variables
+are set at parsing time and are not limited to scalar types. For instance, they can be used to access the
+current user object during parsing.
+
+In the following example, we add an attribute filter to modify URLs used in ``[url]`` BBCodes and links. In
+addition to the attribute's value (the URL) we request that the custom variable ``my.id`` be passed as the
+second parameter. It's a good idea to namespace the variable names to avoid collisions with other extensions
+or phpBB itself.
+
+The ``core.text_formatter_s9e_parser_setup`` event uses ``$event['parser']->set_var()`` to set a value for
+``my.id`` variable once per initialization. The ``core.text_formatter_s9e_parse_before`` event could be used to
+set the value before each parsing.
+
+.. code-block:: php
+
+ class listener implements EventSubscriberInterface
+ {
+ public static function getSubscribedEvents()
+ {
+ return [
+ 'core.text_formatter_s9e_configure_after' => 'configure_links',
+ 'core.text_formatter_s9e_parser_setup' => 'set_random_id'
+ ];
+ }
+
+ static public function add_link_id($url, $my_id)
+ {
+ return $url . '#' . $my_id;
+ }
+
+ public function configure_links($event)
+ {
+ // Add self::add_link_id() to filter the attribute value of [url] BBCodes and links
+ $event['configurator']->tags['url']->attributes['url']->filterChain
+ ->append([__CLASS__, 'add_link_id'])
+ ->resetParameters()
+ ->addParameterByName('attrValue')
+ ->addParameterByName('my.id');
+ }
+
+ public function set_random_id($event)
+ {
+ // We set my.id to a random number in this example
+ $event['parser']->set_var('my.id', mt_rand(111, 999));
+ }
+ }
+
+.. seealso::
+
+ - `phpBB API Documentation `_
+ - `Callback signature - s9e\\TextFormatter `_
+ - `Attribute filters - s9e\\TextFormatter `_
+ - `Tag filters - s9e\\TextFormatter `_
+
+Enable Text Formatter Plugins
+=============================
+
+The Text Formatter library has a collection of plugins that can be enabled through an extension,
+such as MediaEmbed, Pipe Tables, etc.
+
+Plugins can be toggled via the ``configurator`` var available through the ``core.text_formatter_s9e_configure_before``
+and ``core.text_formatter_s9e_configure_after`` events which respectively trigger before and after the default
+settings are configured.
+
+.. code-block:: php
+
+ class listener implements EventSubscriberInterface
+ {
+ public static function getSubscribedEvents()
+ {
+ return [
+ 'core.text_formatter_s9e_configure_after' => 'configure'
+ ];
+ }
+
+ public function configure($event)
+ {
+ $configurator = $event['configurator'];
+
+ // Disable the Autolink plugin
+ unset($configurator->Autolink);
+
+ // Enable the PipeTables plugin
+ $configurator->PipeTables;
+
+ // Do something if the MediaEmbed plugin is enabled
+ $is_enabled = isset($configurator->MediaEmbed);
+ if ($is_enabled)
+ {
+ // ...
+ }
+
+ // Get the names of all loaded plugins
+ $names = [];
+ foreach ($configurator->plugins as $plugin_name => $plugin_configurator)
+ {
+ $names[] = $plugin_name;
+ }
+ }
+ }
+
+.. seealso::
+
+ `s9e\\TextFormatter `_
diff --git a/development/extensions/tutorial_controllers.rst b/development/extensions/tutorial_controllers.rst
index d88f0e1e..cbce5228 100644
--- a/development/extensions/tutorial_controllers.rst
+++ b/development/extensions/tutorial_controllers.rst
@@ -5,9 +5,9 @@ Tutorial: Controllers and Routes
Introduction
============
-phpBB 3.1 introduced Symfony's `HttpKernel `__,
+phpBB 3.1 introduced Symfony's `HttpKernel `__,
`Controller `__ and
-`Routing `__ systems which
+`Routing `__ systems which
allow extensions to handle custom "front-facing" pages that users are able
to view and interact with.
@@ -44,10 +44,10 @@ Every controller should contain at least two methods:
config = $config;
$this->helper = $helper;
+ $this->language = $language;
$this->template = $template;
- $this->user = $user;
}
/**
@@ -89,13 +89,13 @@ Every controller should contain at least two methods:
{
if ($name === 'bertie')
{
- throw new \phpbb\exception\http_exception(403, 'NO_AUTH_SPEAKING', array($name));
+ throw new \phpbb\exception\http_exception(403, 'NO_AUTH_SPEAKING', [$name]);
}
$l_message = !$this->config['acme_demo_goodbye'] ? 'DEMO_HELLO' : 'DEMO_GOODBYE';
- $this->template->assign_var('DEMO_MESSAGE', $this->user->lang($l_message, $name));
+ $this->template->assign_var('DEMO_MESSAGE', $this->language->lang($l_message, $name));
- return $this->helper->render('demo_body.html', $name);
+ return $this->helper->render('@acme_demo/demo_body.html', $name);
}
}
@@ -118,8 +118,8 @@ The complete ``services.yml`` file should look like:
arguments:
- '@config'
- '@controller.helper'
+ - '@language'
- '@template'
- - '@user'
acme.demo.listener:
class: acme\demo\event\main_listener
tags:
@@ -154,6 +154,31 @@ title, and the status code as its arguments. The page title defaults to an
empty string and the status code defaults to 200. We are using the
`Controller template`_ ``demo_body.html``.
+.. tip::
+
+ When calling a template file from PHP using ``phpbb\controller\helper:render()``
+ template files are searched for in two places (and in this order):
+
+ 1. phpBB/styles/*style_name*/template/
+ 2. phpBB/ext/*all_active_extensions*/styles/*style_name*/template/
+
+ The following code will load a template that could be located in any of the
+ above locations, i.e., in any phpBB style or active extension:
+
+ .. code-block:: php
+
+ $this->helper->render('demo_body.html', $name);
+
+ If you only need to load a template file from within your own extension,
+ we recommend using the ``@vendor_extension/`` prefix:
+
+ .. code-block:: php
+
+ $this->helper->render('@acme_demo/demo_body.html', $name);
+
+ It is also recommended to always use unique names for your templates to avoid possible
+ conflicts with phpBB's templates or other extensions.
+
.. note::
The ``phpbb\controller\helper:render()`` method returns a Symfony
@@ -188,11 +213,11 @@ with the following content including the phpBB header and footer:
.. code-block:: html
-
+ {% include 'overall_header.html' %}
-
{DEMO_MESSAGE}
+
{{ DEMO_MESSAGE }}
-
+ {% include 'overall_footer.html' %}
.. note::
@@ -305,10 +330,10 @@ generated. We must update the ``getSubscribedEvents()`` method in the
static public function getSubscribedEvents()
{
- return array(
+ return [
'core.user_setup' => 'load_language_on_setup',
'core.page_header' => 'add_page_header_link',
- );
+ ];
}
Next we will add a new method to the event listener which creates our link
@@ -323,9 +348,9 @@ and assigns it to our template variable:
*/
public function add_page_header_link($event)
{
- $this->template->assign_vars(array(
- 'U_DEMO_PAGE' => $this->helper->route('acme_demo_route', array('name' => 'world')),
- ));
+ $this->template->assign_vars([
+ 'U_DEMO_PAGE' => $this->helper->route('acme_demo_route', ['name' => 'world']),
+ ]);
}
In this new method we use the Controller Helper object's ``route()``
@@ -381,10 +406,10 @@ event listener should look like:
*/
static public function getSubscribedEvents()
{
- return array(
+ return [
'core.user_setup' => 'load_language_on_setup',
'core.page_header' => 'add_page_header_link',
- );
+ ];
}
/**
@@ -396,10 +421,10 @@ event listener should look like:
public function load_language_on_setup($event)
{
$lang_set_ext = $event['lang_set_ext'];
- $lang_set_ext[] = array(
+ $lang_set_ext[] = [
'ext_name' => 'acme/demo',
'lang_set' => 'demo',
- );
+ ];
$event['lang_set_ext'] = $lang_set_ext;
}
@@ -410,9 +435,9 @@ event listener should look like:
*/
public function add_page_header_link($event)
{
- $this->template->assign_vars(array(
- 'U_DEMO_PAGE' => $this->helper->route('acme_demo_route', array('name' => 'world')),
- ));
+ $this->template->assign_vars([
+ 'U_DEMO_PAGE' => $this->helper->route('acme_demo_route', ['name' => 'world']),
+ ]);
}
}
diff --git a/development/extensions/tutorial_events.rst b/development/extensions/tutorial_events.rst
index ac392b8f..9ea6a471 100644
--- a/development/extensions/tutorial_events.rst
+++ b/development/extensions/tutorial_events.rst
@@ -26,11 +26,11 @@ multiple useful injection points. A typical template event looks like:
::
-
+ {% EVENT event_name_and_position %}
.. seealso::
- View the full list of `Template events `_ in our Wiki.
+ View the full list of `Template events `_.
Listening for an event
----------------------
@@ -66,8 +66,8 @@ simple list element, with a link and a description:
.. code-block:: html
@@ -115,7 +115,7 @@ Listeners
.. seealso::
- View the full list of supported `PHP events `_ in our Wiki.
+ View the full list of supported `PHP events `_.
The event listener
------------------
@@ -158,9 +158,9 @@ we will subscribe a listener function to phpBB's ``core.user_setup`` event:
*/
static public function getSubscribedEvents()
{
- return array(
+ return [
'core.user_setup' => 'load_language_on_setup',
- );
+ ];
}
/**
@@ -172,10 +172,10 @@ we will subscribe a listener function to phpBB's ``core.user_setup`` event:
public function load_language_on_setup($event)
{
$lang_set_ext = $event['lang_set_ext'];
- $lang_set_ext[] = array(
+ $lang_set_ext[] = [
'ext_name' => 'acme/demo',
'lang_set' => 'demo',
- );
+ ];
$event['lang_set_ext'] = $lang_set_ext;
}
}
@@ -192,7 +192,7 @@ that when this event occurs, our function will execute.
.. code-block:: php
- 'core.user_setup' => array(array('foo_method'), array('bar_method'))
+ 'core.user_setup' => [['foo_method'], ['bar_method']]
The ``load_language_on_setup()`` listener method simply adds
our language file to phpBB's language data array. Generally speaking, a listener
@@ -256,7 +256,7 @@ the link in the navigation bar should now display ``Demo`` instead of
phpBB’s core PHP and template files have been prepared with dozens of event locations.
However, if there are no events where your extension may need one, the phpBB development
team welcomes event requests at the
- `area51.com Event Requests `_ forum.
+ `area51.com Event Requests `_ forum.
Prioritising event listeners (optional)
---------------------------------------
@@ -273,9 +273,9 @@ setting a priority for event listener methods. For example:
static public function getSubscribedEvents()
{
- return array(
- 'core.user_setup' => array('foo_method', $priority)
- );
+ return [
+ 'core.user_setup' => ['foo_method', $priority]
+ ];
}
In this example, ``$priority`` is an integer, the value of which defaults to 0.
diff --git a/development/extensions/tutorial_key_concepts.rst b/development/extensions/tutorial_key_concepts.rst
index fda8aca6..15883073 100644
--- a/development/extensions/tutorial_key_concepts.rst
+++ b/development/extensions/tutorial_key_concepts.rst
@@ -16,6 +16,7 @@ This tutorial explains:
* `Language files`_
* `Javascript and CSS files`_
+.. _dependency-injection:
Dependency injection
====================
@@ -74,8 +75,7 @@ controllers and event listeners. The exceptions to this are any ACP/MCP/UCP file
.. seealso::
- * `Dependency Injection Container Wiki `_
- * `Symfony: The DependencyInjection Component `_
+ * `Symfony: The DependencyInjection Component `_
PHP files
@@ -196,8 +196,8 @@ An example directory structure for an extension with universal (all) files and t
.. seealso::
- * `Twig Template Syntax `_ at Sensio Labs.
- * `phpBB Template Syntax `_ Wiki page.
+ * `Twig Template Syntax `_ at Symfony.
+ * :ref:`Tutorial: Template Syntax `.
* The phpBB Customisation Database `Template Validation Policy `_.
Language files
@@ -220,10 +220,10 @@ The Acme Demo extension's language file looks like:
if (empty($lang) || !is_array($lang))
{
- $lang = array();
+ $lang = [];
}
- $lang = array_merge($lang, array(
+ $lang = array_merge($lang, [
'DEMO_PAGE' => 'Demo',
'DEMO_HELLO' => 'Hello %s!',
'DEMO_GOODBYE' => 'Goodbye %s!',
@@ -231,21 +231,27 @@ The Acme Demo extension's language file looks like:
'ACP_DEMO' => 'Settings',
'ACP_DEMO_GOODBYE' => 'Should say goodbye?',
'ACP_DEMO_SETTING_SAVED' => 'Settings have been saved successfully!',
- ));
+ ]);
Loading language files in an extension is simple enough using the
-``add_lang_ext()`` method of the ``$user`` object. It takes two arguments, the first being the vendor/package
-and the second being the name of the language file (or an array of language file names).
+``add_lang()`` method of the ``$language`` object. It takes two arguments, the first being the name of the language file (or an array of language file names)
+and the second being the extension vendor/package.
+
+.. note::
+
+ The Language object was introduced in 3.2 to provide a dedicated class of language methods,
+ extracted from the User object. The previous method of using ``add_lang_ext()``
+ from the User object has been deprecated in 3.2, and will eventually be removed in the future.
.. code-block:: php
// Load a single language file from acme/demo/language/en/common.php
- $user->add_lang_ext(‘acme/demo’, ‘common’);
+ $language->add_lang(‘common’, ‘acme/demo’);
// Load multiple language files from
// acme/demo/language/en/common.php
// acme/demo/language/en/controller.php
- $user->add_lang_ext(‘acme/demo’, array(‘common’, ‘controller’));
+ $language->add_lang([‘common’, ‘controller’], ‘acme/demo’);
For performance reasons, it is preferred to use the above method to load language files at any point in your extension’s code
execution where the language keys are needed. However, if it is absolutely necessary to load an extension's
@@ -262,15 +268,15 @@ Javascript and CSS files
Javascript and CSS files can be stored anywhere inside your extension. However, the most common locations are
within your style folders. Adding these scripts to your extension's templates can be conveniently handled using
-phpBB's ```` and ```` template syntax.
+phpBB's ``{% INCLUDECSS %}`` and ``{% INCLUDEJS %}`` template syntax.
The format for these INCLUDE tags takes the following form:
-.. code-block:: html
+.. code-block:: twig
-
+ {% INCLUDECSS '@vendor_extname/scriptname.css' %}
-
+ {% INCLUDEJS '@vendor_extname/scriptname.js' %}
The INCLUDECSS tag will look in the extension's style **theme** folder for the named file, based on the current style
of the user, or the all style folder if one exists. The INCLUDECSS tag will automatically generate a ````
@@ -282,31 +288,30 @@ for the supplied JS file in the footer of the HTML document.
.. note::
- The INCLUDECSS tag will only work inside the ``overall_header_head_append`` template event. However, the INCLUDEJS
- tag can be used in any template event or custom template file.
+ The INCLUDECSS and INCLUDEJS tags can be used in any template event or custom template file.
When including JavaScript/CSS libraries and frameworks such as jQuery-UI or Font Awesome, the potential
for resource overlap between extensions can be mitigated using a simple work-around endorsed by the phpBB
-Extensions Team. Using the the ```` tag you should test if the script your extension wants to include
+Extensions Team. Using the the ``{% DEFINE %}`` tag you should test if the script your extension wants to include
is already defined, and if not, then include your script and define the script. For example:
-.. code-block:: html
+.. code-block:: twig
-
-
-
-
+ {% if not definition.INCLUDED_JQUERYUIJS %}
+ {% INCLUDEJS '@vendor_extname/jquery-ui.js' %}
+ {% DEFINE INCLUDED_JQUERYUIJS = true %}
+ {% endif %}
Some example template variable definitions to use with common libraries (the common practice should be to name
the variable definition after the library filename, e.g. highslide.js becomes HIGHSLIDEJS):
-* HighSlide JS: ``$INCLUDED_HIGHSLIDEJS``
-* Font Awesome CSS: ``$INCLUDED_FONTAWESOMECSS``
-* ColorBox JS: ``$INCLUDED_COLORBOXJS``
-* ColPick JS: ``$INCLUDED_COLPICKJS``
-* MoTools JS: ``$INCLUDED_MOTOOLSJS``
-* Dojo JS: ``$INCLUDED_DOJOJS``
-* Angular JS: ``$INCLUDED_ANGULARJS``
+* HighSlide JS: ``INCLUDED_HIGHSLIDEJS``
+* Font Awesome CSS: ``INCLUDED_FONTAWESOMECSS``
+* ColorBox JS: ``INCLUDED_COLORBOXJS``
+* ColPick JS: ``INCLUDED_COLPICKJS``
+* MoTools JS: ``INCLUDED_MOTOOLSJS``
+* Dojo JS: ``INCLUDED_DOJOJS``
+* Angular JS: ``INCLUDED_ANGULARJS``
.. seealso::
diff --git a/development/extensions/tutorial_migrations.rst b/development/extensions/tutorial_migrations.rst
index 0912b18f..f06bf697 100644
--- a/development/extensions/tutorial_migrations.rst
+++ b/development/extensions/tutorial_migrations.rst
@@ -29,7 +29,7 @@ Database changes
----------------
Schema changes
-++++++++++++++
+^^^^^^^^^^^^^^
The ``update_schema()`` method is for facilitating schema changes,
such as adding new tables, columns, keys and indexes.
@@ -42,7 +42,7 @@ We recommend putting schema changes in their own migration.
Learn more: :doc:`../migrations/schema_changes`.
Data changes
-++++++++++++
+^^^^^^^^^^^^
The ``update_data()`` method is for inserting, updating and dropping
field data.
@@ -81,7 +81,7 @@ Migration dependencies
----------------------
depends_on()
-++++++++++++
+^^^^^^^^^^^^
The ``depends_on()`` method is used to define a migration's dependencies.
Dependencies tell the migrator what order migrations must be installed in.
@@ -89,7 +89,7 @@ Dependencies tell the migrator what order migrations must be installed in.
Learn more: :doc:`../migrations/dependencies`.
effectively_installed()
-+++++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^^^^
The ``effectively_installed()`` method is used primarily to help transition
from a previous database installer method (such as a MOD that used UMIL)
diff --git a/development/extensions/tutorial_modules.rst b/development/extensions/tutorial_modules.rst
index d453ccd8..725eb651 100644
--- a/development/extensions/tutorial_modules.rst
+++ b/development/extensions/tutorial_modules.rst
@@ -56,17 +56,17 @@ For this tutorial, we will use ``ext/acme/demo/acp/main_info.php``:
{
public function module()
{
- return array(
+ return [
'filename' => '\acme\demo\acp\main_module',
'title' => 'ACP_DEMO_TITLE',
- 'modes' => array(
- 'settings' => array(
+ 'modes' => [
+ 'settings' => [
'title' => 'ACP_DEMO',
'auth' => 'ext_acme/demo && acl_a_board',
- 'cat' => array('ACP_DEMO_TITLE'),
- ),
- ),
- );
+ 'cat' => ['ACP_DEMO_TITLE'],
+ ],
+ ],
+ ];
}
}
@@ -118,10 +118,10 @@ For this tutorial, we will use ``ext/acme/demo/acp/main_module.php``:
public function main($id, $mode)
{
- global $user, $template, $request, $config;
+ global $language, $template, $request, $config;
$this->tpl_name = 'acp_demo_body';
- $this->page_title = $user->lang('ACP_DEMO_TITLE');
+ $this->page_title = $language->lang('ACP_DEMO_TITLE');
add_form_key('acme_demo_settings');
@@ -133,13 +133,13 @@ For this tutorial, we will use ``ext/acme/demo/acp/main_module.php``:
}
$config->set('acme_demo_goodbye', $request->variable('acme_demo_goodbye', 0));
- trigger_error($user->lang('ACP_DEMO_SETTING_SAVED') . adm_back_link($this->u_action));
+ trigger_error($language->lang('ACP_DEMO_SETTING_SAVED') . adm_back_link($this->u_action));
}
- $template->assign_vars(array(
+ $template->assign_vars([
'ACME_DEMO_GOODBYE' => $config['acme_demo_goodbye'],
'U_ACTION' => $this->u_action,
- ));
+ ]);
}
}
@@ -178,7 +178,7 @@ submitted value and display a success message to the user:
.. code-block:: php
$config->set('acme_demo_goodbye', $request->variable('acme_demo_goodbye', 0));
- trigger_error($user->lang('ACP_DEMO_SETTING_SAVED') . adm_back_link($this->u_action));
+ trigger_error($language->lang('ACP_DEMO_SETTING_SAVED') . adm_back_link($this->u_action));
At the end of the method we assign two template variables.
The first contains the current value of the config value.
@@ -198,38 +198,38 @@ We will use ``ext/acme/demo/adm/style/acp_demo_body.html``.
Therefore, ACP template files must be stored in ``./adm/style/``
while MCP and UCP template files are stored in ``./styles/prosilver/template/``.
-.. code-block:: html
+.. code-block::
-
+ {% INCLUDE 'overall_header.html' %}
-
{L_SETTINGS}
+
{{ lang('SETTINGS') }}
-
-
+ {% INCLUDE 'overall_footer.html' %}
This template renders out a form with a single option for toggling the
*acme_demo_goodbye* setting via two radio buttons, and two input buttons
-to submit or reset the form. Note that the ``{S_FORM_TOKEN}`` template
+to submit or reset the form. Note that the ``{{ S_FORM_TOKEN }}`` template
variable is required as part of the `form key`_ security check.
Module language keys
-++++++++++++++++++++
+^^^^^^^^^^^^^^^^^^^^
Between our module class and template files, we have added some new language keys.
We can add them to our language array in ``acme/demo/language/en/demo.php``:
@@ -285,33 +285,33 @@ For the Acme Demo, we need a migration that will install the following data:
*/
static public function depends_on()
{
- return array('\phpbb\db\migration\data\v31x\v314');
+ return ['\phpbb\db\migration\data\v31x\v314'];
}
public function update_data()
{
- return array(
+ return [
// Add the config variable we want to be able to set
- array('config.add', array('acme_demo_goodbye', 0)),
+ ['config.add', ['acme_demo_goodbye', 0]],
// Add a parent module (ACP_DEMO_TITLE) to the Extensions tab (ACP_CAT_DOT_MODS)
- array('module.add', array(
+ ['module.add', [
'acp',
'ACP_CAT_DOT_MODS',
'ACP_DEMO_TITLE'
- )),
+ ]],
// Add our main_module to the parent module (ACP_DEMO_TITLE)
- array('module.add', array(
+ ['module.add', [
'acp',
'ACP_DEMO_TITLE',
- array(
+ [
'module_basename' => '\acme\demo\acp\main_module',
- 'modes' => array('settings'),
- ),
- )),
- );
+ 'modes' => ['settings'],
+ ],
+ ]],
+ ];
}
}
diff --git a/development/extensions/tutorial_notifications.rst b/development/extensions/tutorial_notifications.rst
new file mode 100644
index 00000000..fdb4928f
--- /dev/null
+++ b/development/extensions/tutorial_notifications.rst
@@ -0,0 +1,1193 @@
+=======================
+Tutorial: Notifications
+=======================
+
+.. contents:: This tutorial explains:
+ :depth: 1
+ :local:
+
+Introduction
+============
+The notification system was introduced with the release of phpBB :guilabel:`3.1`.
+Since then it has seen further developments and enhancements for users and extension developers.
+In :guilabel:`3.2` the notification system was heavily refactored making it faster and more efficient.
+
+phpBB users have complete control over their personal notification interactions.
+They can set their own preferences for notification methods or disable them all together.
+Mark notifications as read when necessary, even though in a lot of cases this is done automatically.
+
+In phpBB there are two default notification methods: email-based and board-based notifications.
+The email method is only available when the ''board-wide emails'' setting has been enabled by the board administrator in the ACP.
+Extensions, however, can create and add their own notification methods.
+
+This tutorial will document how and extension can leverage the notification system by creating a notification
+based on some sort of triggering event (such as replying to a post),
+sending the notification via either the board, email or some other custom methods, and managing its
+notifications.
+
+File Structure
+--------------
+This is an overview of the file structure needed for a notification to function within an extension.
+In total there are 7 files that will be covered in this tutorial, to create and send notifications.
+These files will be referenced throughout this tutorial.
+
+
+| |fa-user| vendor
+| └─ |fa-ext| extension
+| |nbsp| ├─ |fa-folder| config
+| |nbsp| │ |nbsp| └─ |fa-file| services.yml
+| |nbsp| ├─ |fa-folder| event
+| |nbsp| │ |nbsp| └─ |fa-file| listener.php
+| |nbsp| ├─ |fa-folder| language
+| |nbsp| │ |nbsp| |nbsp| └─ |fa-folder| en
+| |nbsp| │ |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| └─ |fa-folder| email
+| |nbsp| │ |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| │ |nbsp| |nbsp| └─ |fa-folder| short
+| |nbsp| │ |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| │ |nbsp| |nbsp| │ |nbsp| |nbsp| └─ |fa-file| sample.txt
+| |nbsp| │ |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| │ |nbsp| |nbsp| └─ |fa-file| sample.txt
+| |nbsp| │ |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| └─ |fa-file| extension_common.php
+| |nbsp| ├─ |fa-folder| notification
+| |nbsp| │ |nbsp| |nbsp| └─ |fa-folder| type
+| |nbsp| │ |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| |nbsp| └─ |fa-file| sample.php
+| |nbsp| └─ |fa-file| ext.php
+|
+
+Creating a Notification Type
+============================
+The first thing is to determine a name for the type of notification we will create.
+For the purposes of this tutorial we will name it ''sample''. All extensions should always
+use their vendor and name as prefixes, so the notification type name we'll be using is: ``vendor.extension.notification.type.sample``.
+
+Registering as a Symfony Service
+--------------------------------
+Now our notification type must be registered as a Symfony service in our extension's :class:`services.yml`.
+As with any service declaration, it will need a service identifier and the class argument (we will discuss what
+goes into our :class:`sample` class a little later).
+However, notification types also require three additional parameters: ``parent``, ``shared`` and ``tags`` parameters.
+
+The ``parent`` parameter will declare the parent service of our notification. In other words, our notification will be a child class
+and it will inherit from a core phpBB notification service, in this case phpBB's base notification class/service.
+
+The ``shared`` parameter should be set to ``flase`` which will make sure that each time this notification type is requested, a new instance is created.
+This will prevent any data from one notification instance being inadvertently mixed up with another.
+
+Finally ``tags`` is used to tag our service as a notification type. This is how phpBB will know this is part of its notification system.
+
+.. code-block:: yaml
+ :caption: :class:`vendor/extension/config/services.yml`
+
+ services:
+ vendor.extension.notification.type.sample:
+ class: vendor\extension\notification\type\sample
+ parent: notification.type.base
+ shared: false
+ tags: [{ name: notification.type }]
+
+However, for the purposes of this tutorial, we are going to need two additional services in our notification type.
+We will be using the Controller helper object (:class:`\\phpbb\\controller\\helper`) to create a route (see get_url_)
+and the User loader object (:class:`\\phpbb\\user_loader`) to display a user's details (see get_title_ and get_avatar_).
+But because we are defining a ``parent``, we can not also use the ``arguments`` parameter.
+We either have to define all ``arguments``, including the ones from the parent,
+or we can use the ``calls`` parameter to call functions when our notification is instantiated that will load these additional
+object functions, as shown below.
+You can read more about this in `Additional services`_.
+
+The first argument in the call is the name of the ``set_`` function we are going to call and create in our :class:`sample` class.
+The second argument is an array with service definitions that our ``set_`` functions will be adding to our :class:`sample` class.
+
+.. code-block:: yaml
+ :caption: :class:`vendor/extension/config/services.yml`
+ :name: services file
+
+ services:
+ vendor.extension.notification.type.sample:
+ class: vendor\extension\notification\type\sample
+ parent: notification.type.base
+ shared: false
+ tags: [{ name: notification.type }]
+ calls:
+ - ['set_helper', ['@controller.helper']]
+ - ['set_user_loader', ['@user_loader']]
+
+Altering an Extension's State
+-----------------------------
+The next thing that we need to do, is a bit of house-keeping that is required for every extension that is
+creating its own notifications, the enabling, disabling and purging of our notification type when our extension's state changes.
+In other words, when an extension is enabled/disabled, the notification type must also enabled/disabled.
+Or when the extension's data is deleted, the notification type's data is purged from the database as well.
+If this is not done or set up correctly, it will throw uncaught exceptions, making the board inaccessible.
+
+In order to achieve this, three functions have to be added to the :class:`ext.php`.
+Each function will retrieve the notification manager from the service container and perform their respective action.
+
+.. code-block:: php
+ :caption: :class:`vendor/extension/ext.php`
+
+ container->get('notification_manager');
+
+ $notification_manager->enable_notifications('vendor.extension.notification.type.sample');
+ return 'notification';
+ }
+
+ return parent::enable_step($old_state);
+ }
+
+ /**
+ * Disable notifications for the extension.
+ *
+ * @param mixed $old_state State returned by previous call of this method
+ * @return mixed Returns false after last step, otherwise temporary state
+ * @access public
+ */
+ public function disable_step($old_state)
+ {
+ if ($old_state === false)
+ {
+ /** @var \phpbb\notification\manager $notification_manager */
+ $notification_manager = $this->container->get('notification_manager');
+
+ $notification_manager->disable_notifications('vendor.extension.notification.type.sample');
+
+ return 'notification';
+ }
+
+ return parent::disable_step($old_state);
+ }
+
+ /**
+ * Purge notifications for the extension.
+ *
+ * @param mixed $old_state State returned by previous call of this method
+ * @return mixed Returns false after last step, otherwise temporary state
+ * @access public
+ */
+ public function purge_step($old_state)
+ {
+ if ($old_state === false)
+ {
+ /** @var \phpbb\notification\manager $notification_manager */
+ $notification_manager = $this->container->get('notification_manager');
+
+ $notification_manager->purge_notifications('vendor.extension.notification.type.sample');
+
+ return 'notification';
+ }
+
+ return parent::purge_step($old_state);
+ }
+ }
+
+Defining Language Strings
+-------------------------
+Next we can start defining some language strings that will be used by the notification.
+This specific language file contains all possible language strings that can be used in a notification.
+You can remove any strings that you will not need.
+
+.. tip::
+ This language file will be included during a user's setup later on in this tutorial, meaning that they will be globally available.
+ However, there are a few strings that are only needed in the :abbr:`UCP (User Control Panel)`.
+ Ideally these strings should be defined in a separate file, namely :class:`info_ucp_extension.php`.
+ Using this naming convention (:class:`info_ucp_*.php`) will automatically include it only in the UCP.
+ But for the sake of this tutorial, they are all being defined in this one language file.
+
+.. code-block:: php
+ :caption: :class:`vendor/extension/language/en/extension_common.php`
+ :name: language file
+
+ 'This is a sample reason',
+ 'VENDOR_EXTENSION_NOTIFICATION_TITLE' => 'Received a sample notification from %s',
+
+ // These strings should ideally be defined in a info_ucp_*.php language file
+ 'VENDOR_EXTENSION_NOTIFICATIONS' => 'Sample notifications category',
+ 'VENDOR_EXTENSION_NOTIFICATION_SAMPLE' => 'Someone sends you a sample notification',
+ ]);
+
+Now lets create the sample Email template file, which is also located in the language directory.
+The variables used in this file are defined in get_email_template_variables_.
+The first line of the file should begin with ``Subject:``, followed by the actual email subject and an empty line.
+It is possible to use variables in the subject line as well.
+
+.. code-block:: text
+ :caption: :class:`vendor/extension/language/en/email/sample.txt`
+ :name: email template
+
+ Subject: New sample private message has arrived
+
+ Hello {USERNAME},
+
+ You have received a new sample private message from "{AUTHOR}" to your account on "{SITENAME}" with the following subject:
+ {SUBJECT}
+
+ You can view your new message by clicking on the following link:
+ {U_REGULAR}
+
+ You have requested that you be notified on this event, remember that you can always choose not to be notified of new messages by changing the appropriate setting in your profile.
+ {U_NOTIFICATION_SETTINGS}
+
+ {EMAIL_SIG}
+
+.. tip::
+
+ It is a good practise to always use the following layout:
+
+ .. code-block:: text
+
+ Subject: The email subject
+
+ Hello {USERNAME},
+
+ The content for this email.
+
+ {EMAIL_SIG}
+
+The Notification Type Class
+---------------------------
+The following example shows what is needed as the bare minimum for a notification type class.
+`All the functions `_ will be discussed later on.
+
+We have defined the :class:`base` notification type class as a ``parent`` when we were `Registering as a Symfony Service`_.
+Therefore it is important that our notification type class extends the :class:`base` class.
+
+.. code-block:: php
+ :caption: :class:`/vendor/extension/notification/type/sample.php`
+
+ helper = $helper;
+ }
+
+ /**
+ * Set user loader.
+ *
+ * @param \phpbb\user_loader $user_loader User loader object
+ * @return void
+ */
+ public function set_user_loader(\phpbb\user_loader $user_loader)
+ {
+ $this->user_loader = $user_loader;
+ }
+
+Required Class Functions
+------------------------
+
+The following functions must be implemented in every notification type class.
+
+get_type
+--------
+This should return the service identifier as defined in `Registering as a Symfony Service`_.
+
+.. code-block:: php
+
+ /**
+ * Get notification type name.
+ *
+ * @return string The notification name as defined in services.yml
+ */
+ public function get_type()
+ {
+ return 'vendor.extension.notification.type.sample';
+ }
+
+notification_option
+-------------------
+This variable array defines two language strings from our notification that will appear in the :abbr:`UCP (User Control Panel)`.
+|br| The ``group`` is for the category under which the the notification type will show up.
+|br| The ``lang`` is for the actual notification type.
+
+It is also possible to define an ``id`` in these options.
+Usually this isn't needed for most extensions.
+The ``id`` variable is used to concatenate multiple notification types into one.
+So if you have multiple notification types that should show up as a single type in the user's preferences,
+you can set the same ``id`` on all those types.
+
+If you do not wish to display this notification in the user's preferences, you can omit this variable
+and also make sure to set the is_available_ function to return ``false``.
+
+.. code-block:: php
+
+ /**
+ * Notification option data (for outputting to the user).
+ *
+ * @var bool|array False if the service should use it's default data
+ * Array of data (including keys 'id', 'lang', and 'group')
+ * @static
+ */
+ static public $notification_option = [
+ 'lang' => 'VENDOR_EXTENSION_NOTIFICATION_SAMPLE',
+ 'group' => 'VENDOR_EXTENSION_NOTIFICATIONS',
+ ];
+
+is_available
+------------
+This function determines if this notification type should show in the :abbr:`UCP (User Control Panel)`.
+You can simply set it to ``true`` or check some configuration or authentication settings,
+or anything else for that matter, as long as it always returns either a ``true`` or ``false`` boolean.
+In the example below we will make displaying the notification in the UCP dependent
+on whether private messages are enabled and the user is authorised to read them.
+
+If this function returns ``false``, the notification type will not appear in the UCP.
+This simply means that a user can not change their preferences in regards to this notification type
+and thus can not enable/disable it. Remember that if this function could return ``false``, make sure
+the `notification_option`_ array is set.
+
+.. code-block:: php
+
+ /**
+ * Is this type available to the current user.
+ *
+ * Defines whether or not it will be shown in the UCP "Edit notification options".
+ *
+ * @return bool Whether or not this is available to the user
+ */
+ public function is_available()
+ {
+ return $this->config['allow_privmsg'] && $this->auth->acl_get('u_readpm');
+ }
+
+get_item_id
+-----------
+This function should return the identifier for the item this notification belongs to.
+Usually this refers to some sort of entity, like a forum, topic, post, etc...
+If you do not have any specific item, you can have a look at the `Custom Item Identifier`_.
+
+Just to be clear, this identifier is not the actual notification identifier (``notification_id``).
+However, it is used - in conjunction with the `parent identifier `_ - to create an index.
+For example, when a notification with an item/parent id is sent to a user,
+and that user still has not read a prior notification with the same item/parent id combination,
+the new notification will not be sent.
+This is to prevent spamming the user with notifications about the same item over and over.
+
+.. code-block:: php
+
+ /**
+ * Get the id of the item.
+ *
+ * @param array $data The notification type specific data
+ * @return int Identifier of the notification
+ * @static
+ */
+ public static function get_item_id($data)
+ {
+ return $data['message_id'];
+ }
+
+get_item_parent_id
+------------------
+This function should return the identifier for the parent of the item this notification belongs to.
+Usually this refers to some sort of parent entity for the `item identifier `_, like a forum, topic, post, etc...
+For example, when the item is a topic, the parent is the forum. When the item is a post, the parent is the topic.
+And so on, and so forth.
+If there is no parent for the item, you can set this to return zero: ``return 0;``.
+
+.. code-block:: php
+
+ /**
+ * Get the id of the parent.
+ *
+ * @param array $data The type notification specific data
+ * @return int Identifier of the parent
+ * @static
+ */
+ public static function get_item_parent_id($data)
+ {
+ return 0;
+ }
+
+find_users_for_notification
+---------------------------
+This function is responsible for finding the users that need to be notified.
+It should return an array with the user identifiers as keys and the notification methods as values.
+There are various helper functions that help you achieve the desired outcome.
+
+check_user_notification_options
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+You can send an array of user identifiers to this function.
+It will then check the available notification methods for each user.
+If the notification type is available in the :abbr:`UCP (User Control Panel)`, it will check the user's preferences.
+Otherwise it will use the default notification methods; the board method and the email method (if *board-wide emails* is enabled).
+The array that is returned by this function can be used as a return value for find_users_for_notification_.
+
+get_authorised_recipients
+^^^^^^^^^^^^^^^^^^^^^^^^^
+If your notification is for an event within a specific forum, you might want to check the users' authentication.
+This can be done using this function, which will check all users' ``f_read`` permission for the provided ``forum_id``.
+The array that is returned by this function is already put through check_user_notification_options_.
+
+.. code-block:: php
+
+ /**
+ * Find the users who want to receive notifications.
+ *
+ * @param array $data The type specific data
+ * @param array $options Options for finding users for notification
+ * ignore_users => array of users and user types that should not receive notifications from this type
+ * because they've already been notified
+ * e.g.: array(2 => array(''), 3 => array('', 'email'), ...)
+ * @return array Array of user identifiers with their notification method(s)
+ */
+ public function find_users_for_notification($data, $options = [])
+ {
+ return $this->check_user_notification_options([$data['user_id']], $options);
+ }
+
+.. note::
+
+ The ``forum_id`` variable below is not set in this tutorial, just shown as an example.
+
+.. code-block:: php
+
+ public function find_users_for_notification($data, $options = [])
+ {
+ return $this->get_authorised_recipients([$data['user_id']], $data['forum_id'], $options);
+ }
+
+users_to_query
+--------------
+This function should return an array of user identifiers for the users whose username need to be displayed,
+or for users whose avatar will be shown next to the notification text.
+Behind the scenes, the Notification manager object (:class:`\\phpbb\\notification\\manager`) will retrieve
+all identifiers from all the notifications that need to be displayed.
+It will then use a single SQL query to retrieve all the data for these users,
+rather than each notification having to query a user's data separately.
+
+.. tip::
+
+ As a rule of thumb, all the user ids that will be used in the ``$user_loader`` should be returned here.
+
+.. code-block:: php
+
+ /**
+ * Users needed to query before this notification can be displayed.
+ *
+ * @return array Array of user identifiers to query.
+ */
+ public function users_to_query()
+ {
+ return [$this->get_data('sender_id')];
+ }
+
+get_title
+---------
+This should return the main text for the notification.
+Usually the action that was taken that resulted in this notification.
+Commonly the action is made bold and everything else is regular, as shown in the `language file`_.
+
+Note that our language string has a string placeholder ``%s`` which is why we also send the sender's username as the second argument.
+The username can be easily retrieved by the ``$user_loader`` object.
+All the data for this user has already been queried, as we provided the user identifier in the users_to_query_ function.
+So no additional SQL queries will be run.
+
+.. code-block:: php
+
+ /**
+ * Get the title of this notification.
+ *
+ * @return string The notification's title
+ */
+ public function get_title()
+ {
+ return $this->language->lang(
+ 'VENDOR_EXTENSION_NOTIFICATION_SAMPLE_TITLE',
+ $this->user_loader->get_username($this->get_data('sender_id'), 'no_profile')
+ );
+ }
+
+get_url
+-------
+This should return the URL the user is sent to when clicking on the notification.
+This function is required in your notification type, even if there is no URL to send the user to,
+in which case it should return an empty string: ``return '';``.
+
+There are usually two ways to create the required URL.
+Either through ``append_sid()`` or using the *Controller helper object*.
+The first one is commonly used when sending a user to a page within the phpBB core, such as viewforum, viewtopic or the ucp.
+The second one is commonly used when sending a user to a page within an extension, which often use routes.
+
+.. code-block:: php
+ :caption: Returning a URL with the ``append_sid`` option
+
+ /**
+ * Get the URL to this item.
+ *
+ * @return string The notification's URL
+ */
+ public function get_url()
+ {
+ return append_sid("{$this->phpbb_root_path}ucp.{$this->php_ext}", [
+ 'mode' => 'view',
+ 'i' => 'pm'
+ 'p' => $this->get_data('message_id'),
+ ]);
+ }
+
+.. note::
+
+ We have added the *Controller helper object* in the `Additional Services`_ section.
+
+.. code-block:: php
+ :caption: Returning a URL with the Controller helper object
+
+ public function get_url()
+ {
+ return $this->helper->route('vendor_extension_route', [
+ 'subject' => $this->get_data('message_subject'),
+ ]);
+ }
+
+get_email_template
+------------------
+If you do not want to make use of the email notification method, this should return ``false``
+and users will not be able to select the email method in their notification preferences.
+
+However, if you do want to make use of the email notification method, you should return the email *template* file here.
+It is not a template file like you may be used to, as it is not located in the :class:`styles/all/template` directory.
+Rather, it is located in the language's :class:`email` directory, as shown in the `File Structure`.
+
+You can, or rather should, use the ``@vendor_extension/`` prefix to indicate your extension's path.
+The *default* directory, as mentioned, is the :class:`email` directory and in our case, the filename is :class:`sample`.
+So the file name should be appended to the prefix, so that will result in ``@vendor_extension/sample``.
+If your email template is located in a subdirectory of the :class:`email` directory,
+you will have to indicate that in the path, e.g.: ``@vendor_extension/subdirectory/sample``.
+
+.. code-block:: php
+
+ /**
+ * Get email template.
+ *
+ * @return string|false This notification's template file or false if there is none
+ */
+ public function get_email_template()
+ {
+ return '@vendor_extension/sample';
+ }
+
+There is also a third notification method, Jabber, which uses the :class:`email/short` directory for its template files.
+This notification method is closely tied to the email method, so it is important to also supply that template file,
+even though the content might be identical to the email template.
+
+.. warning::
+
+ Make sure to have both :class:`language/en/email/sample.txt` and :class:`language/en/email/short/sample.txt`
+ in your extension's language directory to prevent errors.
+
+get_email_template_variables
+----------------------------
+If you are not making use of the email notification method, this should return an empty ``array()``.
+But if you are using the email method, then you should use this function to define the variables that are used in your `email template`_.
+However, note that the phpBB core already defines some *default* variables for you:
+
+.. csv-table::
+ :header: "Variable", "Description", "Defined in"
+ :delim: #
+
+ ``USERNAME`` # The recipient's username # :class:`\\phpbb\\notification\\method\\messenger_base` ``notify_using_messenger()``
+ ``U_NOTIFICATION_SETTINGS`` # The recipient's notification preferences URL # :class:`\\phpbb\\notification\\method\\messenger_base` ``notify_using_messenger()``
+ ``EMAIL_SIG`` # The board's email signature # :class:`includes/functions_messenger.php` ``send()``
+ ``SITENAME`` # The board's site name # :class:`includes/functions_messenger.php` ``send()``
+ ``U_BOARD`` # The board's URL # :class:`includes/functions_messenger.php` ``send()``
+
+When specifying additional template variables such as URLs, you must make sure they are absolute URLs.
+They have to include the *full* URL: ``https://www.example.com/forum/ucp.php`` rather than just ``./ucp.php``.
+The example below will show you how to achieve this for both regular URLs and URLs generated from Symfony routes.
+
+.. code-block:: php
+
+ /**
+ * Get email template variables.
+ *
+ * @return array Array of variables that can be used in the email template
+ */
+ public function get_email_template_variables()
+ {
+ return [
+ 'AUTHOR' => htmlspecialchars_decode($this->user_loader->get_username($this->get_data('sender_id'), 'username')),
+ 'SUBJECT' => htmlspecialchars_decode(censor_text($this->get_data('message_subject')),
+
+ // Absolute URL: regular
+ 'U_REGULAR' => generate_board_url() . '/ucp.' . $this->php_ext . '?i=pm&mode=view&p=' . $this->get_data('message_id'),
+
+ // Absolute URL: route
+ 'U_ROUTE' => generate_board_url(http://github.com/false) . $this->helper->route('vendor_extension_route'),
+ ];
+ }
+
+Optional Class Functions
+------------------------
+
+The following functions are optional and can be omitted if your notification does not need to use them.
+
+get_avatar
+----------
+The user identifiers returned by the users_to_query_ function are added to the User loader object.
+Unfortunately, that object is not available by default in the `Base Services`_.
+This was why we added it in the `Additional Services`_ section.
+
+So we use the convenient function, applicably named, ``get_avatar()`` that is available from the User loader.
+And we supply three parameters. The first being the user identifier from whom we want to show the avatar.
+The second is a boolean, indicating that the user does not have to be queried from the database, as that is already done.
+And the third is also a boolean, indicating that the avatar image should be lazy loaded in the HTML.
+As the notification GUI is a dropdown and not visible immediately, lazy loading is more beneficial for a page's load time.
+
+If you do not wish to display an avatar next to the notification text, you can omit this function all together.
+
+.. code-block:: php
+
+ /**
+ * Get the user's avatar.
+ *
+ * @return string The HTML formatted avatar
+ */
+ public function get_avatar()
+ {
+ return $this->user_loader->get_avatar($this->get_data('sender_id'), false, true);
+ }
+
+get_forum
+---------
+If you want to provide the name of the forum that triggered this notification,
+that is possible through this function. For example, when a new topic is posted in a forum.
+This function can be omitted if no forum name is required or available.
+It will be prefixed by the *Forum:* string:
+
+ *Forum:* The forum name
+
+.. note::
+
+ The ``forum_name`` variable below is not set in this tutorial, just shown as an example.
+
+.. code-block:: php
+
+ /**
+ * Get the forum name for this notification.
+ *
+ * @return string The notification's forum name
+ */
+ public function get_forum()
+ {
+ return $this->language->lang(
+ 'NOTIFICATION_FORUM',
+ $this->get_data('forum_name')
+ );
+ }
+
+get_reason
+----------
+If you want to provide a literal reason for this notification, that is possible through this function.
+For example, the reason provided when creating or closing a report, or for editing or deleting a post.
+This function can be omitted if no reason is required.
+It will be prefixed by the *Reason:* string:
+
+ *Reason:* This is a sample reason
+
+.. code-block:: php
+
+ /**
+ * Get the reason for this notification.
+ *
+ * @return string The notification's reason
+ */
+ public function get_reason()
+ {
+ return $this->language->lang(
+ 'NOTIFICATION_REASON',
+ $this->language->lang('VENDOR_EXTENSION_NOTIFICATION_SAMPLE_REASON'))
+ );
+ }
+
+get_reference
+-------------
+If you want to provide an additional reference for this notification, that is possible through this notification.
+For example, the subject of a private message, post or topic.
+This function can be omitted if no reference is required.
+It will be encapsulated in double quotes:
+
+ "The message subject"
+
+.. code-block:: php
+
+ /**
+ * Get the reference for this notification.
+ *
+ * @return string The notification's reference
+ */
+ public function get_reference()
+ {
+ return $this->language->lang(
+ 'NOTIFICATION_REFERENCE',
+ censor_text($this->get_data('message_subject'))
+ );
+ }
+
+get_style_class
+---------------
+It is also possible to add a custom CSS class to the notification row.
+This can be useful if you want to change the default styling of the notification text.
+For example, when the notification is about a report or a disapproval.
+Providing a string of classes here will add them to the notification.
+This function can be omitted if no additional CSS class is required.
+
+.. code-block:: php
+
+ /**
+ * Get the CSS style class for this notification.
+ *
+ * @return string The notification's CSS class
+ */
+ public function get_style_class()
+ {
+ return 'sample-notification-class and-another-class';
+ }
+
+get_redirect_url
+----------------
+This function can return a different URL than get_url_.
+The URL returned by this function will be used to ``redirect()`` the user after they mark the notification as read.
+By default this URL is the same as the URL returned by get_url_.
+So if you do not need to provide a different *"mark read"*-URL, you can omit this function.
+
+For example, the :class:`post` notification uses this to send the user to first unread post in a topic.
+
+.. code-block:: php
+
+ /**
+ * Get the URL to redirect to after the item has been marked as read.
+ *
+ * @return string The notification's "mark read"-URL
+ */
+ public function get_redirect_url()
+ {
+ return append_sid("{$this->phpbb_root_path}viewtopic.{$this->php_ext}", "t={$this->item_parent_id}&view=unread#unread");
+ }
+
+get_data
+--------
+This is a helper function, commonly used within functions that are called when displaying this notification type.
+These *display functions* often need to access some data specific to a certain notification, such as a ``message_id``.
+To retrieve those data variables, you can use this function, with the variable name as an argument: ``$this->get_data('key')``.
+
+.. important::
+
+ All data that you have to retrieve, must be inserted upon creation of the notification.
+ |br| This is done through the create_insert_array_ function.
+
+.. code-block:: php
+
+ $this->get_data('sender_id');
+ $this->get_data('message_id');
+ $this->get_data('message_subject');
+
+create_insert_array
+-------------------
+This function is responsible for inserting data specific to this notification type.
+This data will be stored in the database and used when displaying the notification.
+
+The ``$data`` parameter will contain the array that is being sent when `Sending a Notification`_.
+So, all data that is needed for creating and displaying the notification has to be included.
+
+However, only the data that is needed for displaying the notification must be inserted.
+If you've paid close attention, you will have noticed that we use four data variables.
+Namely ``user_id``, ``sender_id``, ``message_id`` and ``message_subject``.
+But the ``user_id`` is only required when creating the notification, and not needed when displaying it.
+So this variable does not have to be stored in the database.
+All other variables can be inserted using the ``set_data('key', 'value')`` helper function.
+
+.. hint::
+
+ As a rule of thumb, only the data you get through ``get_data()`` has to be set through ``set_data()``.
+
+.. code-block:: php
+
+ /**
+ * Function for preparing the data for insertion in an SQL query.
+ * (The service handles insertion)
+ *
+ * @param array $data The type specific data
+ * @param array $pre_create_data Data from pre_create_insert_array()
+ * @return void
+ */
+ public function create_insert_array($data, $pre_create_data = [])
+ {
+ $this->set_data('sender_id', $data['sender_id']);
+ $this->set_data('message_id', $data['message_id']);
+ $this->set_data('message_subject', $data['message_subject']);
+
+ parent::create_insert_array($data, $pre_create_data);
+ }
+
+Sending a Notification
+======================
+Now that we've set up our notification type class, it's time to start sending the notification.
+We know what data we need, so we can collect that when the event is triggered.
+
+Sending a notification is done with the Notification manager object (:class:`\\phpbb\\notification\\manager`).
+This service can be injected with the ``- '@notification_manager'`` service declaration.
+
+Then you can use the notification manager to send the notification.
+This is done with the ``add_notifications`` function.
+The notification type (:class:`vendor.extension.notification.type.sample`) should be provided as the first argument,
+and all the ``$data`` that we need in our notification type as the second argument.
+
+Below you'll find a simple example on how to send the notification.
+It's possible to send a notification from anywhere.
+This example uses an event listener, but it is also possible to send it from a controller.
+
+.. code-block:: php
+ :caption: :class:`\\vendor\\extension\\event\\listener`
+
+ 'send_sample_notification'];
+ }
+
+ /** @var \phpbb\notification\manager */
+ protected $notification_manager;
+
+ public function __construct(\phpbb\notification\manager $notication_manager)
+ {
+ $this->notification_manager = $notification_manager;
+ }
+
+ public function send_sample_notification(\phpbb\event\data $event)
+ {
+ // For the sake of this tutorial, we assume that the PM is send to a single user
+ $this->notification_manager->add_notifications('vendor.extension.notification.type.sample', [
+ 'user_id' => array_key_first($event['pm_data']['recipients']),
+ 'sender_id' => $event['data']['from_user_id'],
+ 'message_id' => $event['data']['msg_id'],
+ 'message_subject' => $event['subject'],
+ ]);
+ }
+ }
+
+Updating a Notification
+=======================
+Updating a notification is done with the Notification manager object (:class:`\\phpbb\\notification\\manager`).
+This service can be injected with the ``- '@notification_manager'`` service declaration.
+
+Then you can use the notification manager to update the notification.
+This is done with the ``update_notifications`` function.
+The notification type (:class:`vendor.extension.notification.type.sample`) should be provided as the first argument,
+and all the ``$data`` that we need in our notification type as the second argument.
+Optionally you can send a third argument, ``$options``, to specify which notification should be updated.
+The options that can be defined are listed below:
+
+.. csv-table::
+ :header: "Object", "Class"
+ :delim: #
+
+ ``item_id`` # The item identifier for the notification. |br| Defaults to get_item_id_
+ ``item_parent_id`` # The item's parent identifier for the notification. |br| Optional
+ ``user_id`` # The user identifier for who received the notification. |br| Optional
+ ``read`` # A boolean indicating whether the notification has been read. |br| Optional
+
+.. code-block:: php
+
+ // For the sake of this tutorial, we assume that the PM is send to a single user
+ $user_id = array_key_first($event['pm_data']['recipients']);
+
+ $data = [
+ 'user_id' => $user_id,
+ 'sender_id' => $event['data']['from_user_id'],
+ 'message_id' => $event['data']['msg_id'],
+ 'message_subject' => $event['data']['subject'],
+ ];
+
+ // Just the item identifier is sufficient to update this notification as it is unique
+ // But lets include some options to demonstrate how that can be done as well.
+ $options = [
+ 'user_id' => $user_id,
+ 'item_id' => $event['data']['msg_id'],
+ 'read' => false, // Only update when user has not read it yet
+ ];
+
+ $this->notification_manager->update_notifications('vendor.extension.notification.type.sample', $data, $options);
+
+Now let's step through how the above example works.
+The notification type will be created as if it was being sent.
+Then, rather than inserting the notification, it will retrieve the data created by the create_insert_array_ function.
+That data is turned into an SQL :class:`UPDATE` statement ``$db->sql_create_array('UPDATE', $data)``.
+And the ``$options`` provided are turned into an SQL :class:`WHERE` statement.
+
+.. note::
+
+ The data retrieved from create_insert_array_ are not database columns.
+ |br| The data is put through ``serialize()`` and and stored in the :class:`notification_data` column.
+
+The data is retrieved by the ``create_update_array`` function in the notification type :class:`base` class.
+First it creates the insert array and then unsets a few variables that should not be updated:
+``user_id``, ``notification_id``, ``notification_time`` and ``notification_read``
+*(which is the indicator for whether or not the notification has already been read)*.
+If you want to update any of these variables as well, you will have to override the :class:`base` ``create_update_array`` function.
+
+It is also possible to handle the update process for your notification type completely yourself.
+This is done by creating an ``update_notifications`` function in your notification type class.
+Have a look at the :class:`quote` type to see an example.
+
+Deleting a Notification
+=======================
+Sometimes it is necessary to delete a notification.
+For example when a private message is deleted before it is read,
+or a topic with unapproved post notifications is deleted. In each
+of these cases the cause for the notification has been deleted,
+making the notification irrelevant.
+
+Deleting a notification is handled using the ``delete_notifications``
+function located in the notification manager object (:class:`\\phpbb\\notification\\manager`).
+Typically you would use an appropriate event listener to call ``delete_notifications``,
+such as when an action occurs that would make your notification irrelevant.
+
+This function is very simple to use, and requires only a few basic parameters:
+
+delete_notifications
+--------------------
+
+Parameters
+^^^^^^^^^^
+
+.. csv-table::
+ :header: "Parameter", "Description"
+ :delim: #
+
+ **notification_type** # The notification service identifier. |br| Can be a single string or an array of service identifiers. |br| In this example: ``vendor.extension.notification.type.sample``.
+ **item_id** # The item identifier(s). |br| The item id for which you want to delete notifications. |br| Can be a single integer or an array of integers. Only item identifiers for the provided |br| notification type(s) will be deleted.
+ **parent_id** # The parent identifier(s). |br| The parent id for which you want to delete notifications. |br| Can be a single integer or an array of integers. Use this argument to delete the |br| notifications that only belong to the given parent identifier(s). Default is |br| false to ignore parent identifiers.
+ **user_id** # The user identifier(s). |br| The user id for whom you want to delete notifications. |br| Can be a single integer or an array of integers. Use this argument to delete the |br| notifications for a given user or collection of users. Default is false to ignore |br| specific users.
+
+.. code-block:: php
+
+ // Let's take a look at a PM that was deleted.
+ // Say the item ID(s) for our notification come from the deleted PM's message IDs.
+ $item_ids = $event['data']['msg_ids'];
+
+ // Just the item identifier is sufficient to delete this notification as it is unique
+ // But you could include user_id or parent_id's if they were relevant as well.
+ $this->notification_manager->delete_notifications('vendor.extension.notification.type.sample', $item_ids);
+
+Marking a Notification
+======================
+Notifications are automatically marked as read when they are clicked in the notifications dropdown.
+Or when marking forums or topics as read, their respective notifications are marked as well.
+However, sometimes it may preferable to manually mark a notification as read or unread.
+
+There are three methods available for marking a notification,
+all of these are located in the Notification Manager object (:class:`\\phpbb\\notification\\manager`).
+The distinct difference between these methods is how they determine which notifications should be marked.
+Either through their item id, parent id or the actual notification id.
+When marking notifications by their item id or parent id, it will automatically mark them for all available notification methods.
+But when marking notifications by their actual id, you will have to provide the specific notification method yourself.
+
+.. admonition:: Deprecated
+ :class: error
+
+ This following functions are deprecated since phpBB :guilabel:`3.2.0`:
+ |br| ``mark_notifications_read``
+ |br| ``mark_notifications_read_by_parent``
+
+The following is a quick summary of the three methods available for marking notifications and their arguments.
+
+mark_notifications
+------------------
+
+Parameters
+^^^^^^^^^^
+
+.. csv-table::
+ :header: "Parameter", "Description"
+ :delim: #
+
+ **notification_type** # Can be a single string or an array of service identifiers. |br| In this example: ``vendor.extension.notification.type.sample``.
+ **item_id** # The item identifier(s). |br| The item id(s) for notifications you want to mark read. |br| Can be a single integer or an array of integers. Alternatively, it is also possible to pass |br| false to mark read for all item ids.
+ **user_id** # The user identifier(s). |br| The user id(s) for whom you want to mark notifications read. |br| Can be a single integer or an array of integers. Alternatively, it is also possible to pass |br| false to mark read for all user ids.
+ **time** # UNIX timestamp to use as a cut off. |br| Mark notifications sent before this time as read. All notifications created after this |br| time will not be marked read. The default value is false, which will mark all as read.
+ **mark_read** # Whether to mark the notification as *read* or *unread*. |br| Defaults to *read*.
+
+mark_notifications_by_parent
+----------------------------
+
+Parameters
+^^^^^^^^^^
+
+.. csv-table::
+ :header: "Parameter", "Description"
+ :delim: #
+
+ **notification_type** # Can be a single string or an array of service identifiers. |br| In this example: ``vendor.extension.notification.type.sample``.
+ **parent_id** # The parent identifier(s). |br| The item parent id(s) for notifications you want to mark read. |br| Can be a single integer or an array of integers. Alternatively, it is also possible to pass |br| false to mark read for all item parent ids.
+ **user_id** # The user identifier(s). |br| The user id(s) for whom you want to mark notifications read. |br| Can be a single integer or an array of integers. Alternatively, it is also possible to pass |br| false to mark read for all user ids.
+ **time** # UNIX timestamp to use as a cut off. |br| Mark notifications sent before this time as read. All notifications created after this |br| time will not be marked read. The default value is false, which will mark all as read.
+ **mark_read** # Whether to mark the notification as *read* or *unread*. |br| Defaults to *read*.
+
+mark_notifications_by_id
+------------------------
+Thus far we haven't had to work with the actual identifier of the notification itself, instead using the notification's item and parent ids.
+This is usually because in the core of phpBB's execution, we may never know or have access to the notification's actual id,
+as most of the notification handling is done through the distinct item and/or parent ids.
+However, there can be times where it is more convenient or accurate to work directly with the notification's unique id.
+For example, when the notifications are listed in the :abbr:`UCP (User Control Panel)` and a user can select specific notifications to be marked as read.
+
+Parameters
+^^^^^^^^^^
+
+.. csv-table::
+ :header: "Parameter", "Description"
+ :delim: #
+
+ **method_name** # The notification method service identifier |br| For example: ``notification.method.board``
+ **notification_id** # The notification identifier(s) |br| Can be an integer or array of integers.
+ **time** # UNIX timestamp to use as a cut off. |br| Mark notifications sent before this time as read. All notifications created after this |br| time will not be marked read. The default value is false, which will mark all as read.
+ **mark_read** # Whether to mark the notification as *read* or *unread*. |br| Defaults to *read*.
+
+Advanced Lessons
+================
+
+Custom Item Identifier
+----------------------
+Sometimes you can not use a “normal” item identifier, such as a ``topic_id``, ``post_id`` or ``msg_id``.
+In this case you will need to create a custom notification counter in your extension.
+You add it through a migration, where it is added to the config table.
+For example with the following code: ``['config.add', ['vendor_extension_notification_id', 0]]``.
+
+.. seealso::
+
+ Read more about this in the `Add config setting <../migrations/tools/config.html#add-config-setting>`__ section.
+
+Then when sending a notification, you will have to increment the identifier and use that as the item id.
+You can use the Config object's (:class:`\\phpbb\\config\\config`) ``increment()`` function to achieve this.
+
+.. code-block:: php
+
+ // Increment the notification identifier by 1
+ $this->config->increment('vendor_extension_notification_id', 1);
+
+ $this->notification_manager->add_notification('vendor.extension.notification.type.sample', [
+ 'item_id' => $this->config['vendor_extension_notification_id'],
+ ]);
+
+You can use this custom notification identifier in the get_item_id_ function.
+
+.. code-block:: php
+
+ public static function get_item_id($data)
+ {
+ return $data['item_id'];
+ }
+
+.. |fa-ext| raw:: html
+
+
+
+.. |fa-user| raw:: html
+
+
+
+.. |fa-file| raw:: html
+
+
+
+.. |fa-folder| raw:: html
+
+
+
+.. |nbsp| raw:: html
+
+
+
+.. |br| raw:: html
+
+
diff --git a/development/extensions/tutorial_parsing_text.rst b/development/extensions/tutorial_parsing_text.rst
new file mode 100644
index 00000000..176a66cf
--- /dev/null
+++ b/development/extensions/tutorial_parsing_text.rst
@@ -0,0 +1,142 @@
+======================
+Tutorial: Parsing text
+======================
+
+Database fields
+===============
+phpBB uses the following database fields where BBCode is allowed (forum description, forum rules, post content, ...):
+
+- **foo** - Text itself
+- **foo_bbcode_uid** - a randomly generated unique identifier to mark the BBCodes and used for quicker parsing
+- **foo_bbcode_bitfield** - a `bit field `_ containing the information which bbcode is used in the text so only the relevant ones need to be loaded from the database. **NOTE: No longer used in posts generated in phpBB 3.2+**
+- **foo_options** - a bit field containing the information whether bbcode, smilies and magic urls are enabled (OPTION_FLAG_BBCODE, OPTION_FLAG_SMILIES and OPTION_FLAG_LINKS). Sometimes you will find this separated into enable_bbcode, enable_smilies and enable_magic_url
+
+Column names will vary, replace ``foo`` with the respective column name (e.g. ``text``, ``text_bbcode_uid``, ...).
+
+Parsing text with BBCodes & smilies
+===================================
+
+Inserting text into DB
+----------------------
+
+.. code-block:: php
+
+ $text = $this->request->variable('text', '', true);
+ $uid = $bitfield = $options = ''; // will be modified by generate_text_for_storage
+ $allow_bbcode = $allow_urls = $allow_smilies = true;
+ generate_text_for_storage($text, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
+
+ $sql_ary = array(
+ 'text' => $text,
+ 'bbcode_uid' => $uid,
+ 'bbcode_bitfield' => $bitfield,
+ 'bbcode_options' => $options,
+ );
+
+ $sql = 'INSERT INTO ' . YOUR_TABLE . ' ' . $this->db->sql_build_array('INSERT', $sql_ary);
+ $this->db->sql_query($sql);
+
+The above method uses the bbcode options database field which is used in many places instead of enable_smiles,
+enable_bbcode and enable_magic_url. Here is how to insert it into the database using the enable_smilies, enable_bbcode
+and enable_magic_url tables.
+
+.. code-block:: php
+
+ $text = $this->request->variable('text', '', true);
+ $uid = $bitfield = $options = ''; // will be modified by generate_text_for_storage
+ $allow_bbcode = $allow_urls = $allow_smilies = true;
+ generate_text_for_storage($text, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
+
+ $sql_ary = array(
+ 'text' => $text,
+ 'bbcode_uid' => $uid,
+ 'bbcode_bitfield' => $bitfield,
+ 'enable_bbcode' => $allow_bbcode,
+ 'enable_magic_url' => $allow_urls,
+ 'enable_smilies' => $allow_smilies,
+ );
+
+ $sql = 'INSERT INTO ' . YOUR_TABLE . ' ' . $this->db->sql_build_array('INSERT', $sql_ary);
+ $this->db->sql_query($sql);
+
+Displaying text from DB
+-----------------------
+
+This example uses the bbcode_options field which is used in forums and groups description parsing:
+
+.. code-block:: php
+
+ $sql = 'SELECT text, bbcode_uid, bbcode_bitfield, bbcode_options
+ FROM ' . YOUR_TABLE;
+ $result = $this->db->sql_query($sql);
+ $row = $this->db->sql_fetchrow($result);
+ $this->db->sql_freeresult($result);
+
+ $text = generate_text_for_display($row['text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']);
+
+ $this->template->assign_vars([
+ 'TEXT' => $text,
+ ]);
+
+The next one uses the enable_bbcode, enable_smilies and enable_magic_url flags which can be used instead of the above method and is used in parsing posts:
+
+.. code-block:: php
+
+ $sql = 'SELECT text, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url
+ FROM ' . YOUR_TABLE;
+ $result = $this->db->sql_query($sql);
+ $row = $this->db->sql_fetchrow($result);
+ $this->db->sql_freeresult($result);
+
+ $row['bbcode_options'] = (($row['enable_bbcode']) ? OPTION_FLAG_BBCODE : 0) +
+ (($row['enable_smilies']) ? OPTION_FLAG_SMILIES : 0) +
+ (($row['enable_magic_url']) ? OPTION_FLAG_LINKS : 0);
+ $text = generate_text_for_display($row['text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']);
+
+ $this->template->assign_vars([
+ 'TEXT' => $text,
+ ]);
+
+Generating text for editing
+---------------------------
+
+.. code-block:: php
+
+ $sql = 'SELECT text, bbcode_uid, bbcode_options
+ FROM ' . YOUR_TABLE;
+ $result = $this->db->sql_query_limit($sql, 1);
+ $row = $this->db->sql_fetchrow($result);
+ $this->db->sql_freeresult($result);
+
+ $post_data = generate_text_for_edit($row['text'], $row['bbcode_uid'], $row['bbcode_options']);
+
+ $this->template->assign_vars([
+ 'POST_TEXT' => $post_data['text'],
+ 'S_ALLOW_BBCODES' => $post_data['allow_bbcode'],
+ 'S_ALLOW_SMILIES' => $post_data['allow_smilies'],
+ 'S_ALLOW_URLS' => $post_data['allow_urls'],
+ ]);
+
+Database fields for BBCode
+--------------------------
+
+The following column definitions are expected for BBCodes:
+
+.. code-block::
+
+ "text": [
+ "MTEXT_UNI",
+ "" // Default empty string
+ ],
+ "bbcode_uid": [
+ "VCHAR:8",
+ "" // Default empty string
+ ],
+ "bbcode_bitfield": [
+ "VCHAR:255",
+ "" // Default empty string
+ ],
+ "bbcode_options": [
+ "UINT:11",
+ 7 // Default all enabled
+ ],
diff --git a/development/extensions/tutorial_permissions.rst b/development/extensions/tutorial_permissions.rst
index 0f91490b..86eb0dc0 100644
--- a/development/extensions/tutorial_permissions.rst
+++ b/development/extensions/tutorial_permissions.rst
@@ -5,11 +5,13 @@ Tutorial: Permissions
Introduction
============
-Adding new permissions in an extension is an easy three-step process:
+The permission system in phpBB is used to control access to different parts of the software. It works by allowing administrators to assign certain permissions to user groups or individual users, which determine what actions they are able to perform.
1. `Create permissions`_ with a migration.
2. `Define permissions`_ with language keys.
3. `Wire up permissions`_ with events.
+ 4. `Checking permissions`_ with PHP.
+ 5. `Understanding Permissions`_ in phpBB.
Create permissions
==================
@@ -28,16 +30,16 @@ assign your permissions to if desired.
Permissions must first be created in a migration using the :doc:`../migrations/tools/permission`.
It helps with adding, removing, setting, and unsetting permissions and adding
or removing permission roles. For example, to create a new User permission
-``u_foo_bar`` and set it to "yes" for the Registered Users group and
+``u_foo_bar`` and set it to ``YES`` for the Registered Users group and
the Standard User Role:
.. code-block:: php
- return array(
- array('permission.add', array('u_foo_bar')),
- array('permission.permission_set', array('REGISTERED', 'u_foo_bar', 'group')),
- array('permission.permission_set', array('ROLE_USER_STANDARD', 'u_foo_bar')),
- );
+ return [
+ ['permission.add', ['u_foo_bar']],
+ ['permission.permission_set', ['REGISTERED', 'u_foo_bar', 'group']],
+ ['permission.permission_set', ['ROLE_USER_STANDARD', 'u_foo_bar']],
+ ];
Define permissions
==================
@@ -49,9 +51,9 @@ language array. For example, the language file ``permissions_foobar.php``:
.. code-block:: php
- $lang = array_merge($lang, array(
+ $lang = array_merge($lang, [
'ACL_U_FOOBAR' => 'Can post foobars',
- ));
+ ]);
Wire up permissions
===================
@@ -66,17 +68,93 @@ add your new permissions to phpBB's permission data array:
.. code-block:: php
- $permissions = $event['permissions'];
- $permissions['u_foo_bar'] = array('lang' => 'ACL_U_FOOBAR', 'cat' => 'post');
- $event['permissions'] = $permissions;
+ $event->update_subarray('permissions', 'u_foo_bar', ['lang' => 'ACL_U_FOOBAR', 'cat' => 'post']);
-.. note::
+.. warning::
- Note how the ``permissions`` event variable is first copied by assigning
- it to a local variable, then modified, and then copied back. This is because the event
- variables are overloaded, which is a limitation in PHP. For example, this shortcut
- will not work:
+ In order to support phpBB 3.2.1 or earlier versions, you can not use the ``update_subarray()`` method, and must instead use the following older style of code:
.. code-block:: php
- $event['permissions']['u_foo_bar'] = array('lang' => 'ACL_U_FOOBAR', 'cat' => 'post');
+ # Wiring permissions the correct way for phpBB 3.1.0 - 3.2.1
+ $permissions = $event['permissions'];
+ $permissions['u_foo_bar'] = ['lang' => 'ACL_U_FOOBAR', 'cat' => 'post'];
+ $event['permissions'] = $permissions;
+
+ # Notice that the above permissions $event variable must first be copied by assigning it to a
+ # local variable, then modified, and then copied back. This is because the event variables are
+ # overloaded, which is a limitation in PHP. For example, this shortcut will not work:
+ $event['permissions']['u_foo_bar'] = ['lang' => 'ACL_U_FOOBAR', 'cat' => 'post'];
+
+Checking permissions
+====================
+
+A user's permission can be checked by calling ``$auth->acl_get()``:
+
+.. code-block:: php
+
+ // Check a user's permissions
+ $auth->acl_get('u_foo_bar');
+
+If it is specific to a forum (i.e local) then pass it the forum ID as a second argument:
+
+.. code-block:: php
+
+ // Check a user's permission in the forum with ID 3
+ $auth->acl_get('u_foo_bar', 3);
+
+For forums one can use the forum specific call ``$auth->acl_getf()``:
+
+.. code-block:: php
+
+ // Check a forum's permissions
+ $auth->acl_getf('f_your_permission');
+
+It is also possible to check for more than one option with ``acl_gets()``:
+
+.. code-block:: php
+
+ $auth->acl_gets('permission1'[, 'permission2', ..., 'permissionNth'], $forumId);
+
+.. note::
+
+ When checking permissions, it's also important to keep in mind whether the global or local permissions should be checked.
+ If ``acl_get`` is called without a forum id, the global permissions will be used. Instead, passing a forum id will also
+ check the local permissions which can then potentially override a ``NO`` with a ``YES``.
+ After checking all user, group, forum, and global permissions, the return permission is always either ``YES`` or ``NO``,
+ ``NEVER`` is only used to enforce a ``NO``.
+
+Understanding Permissions
+=========================
+
+Permissions in phpBB control what actions users are allowed to perform on the forum, such as creating a new topic, replying to a post, or editing a user’s profile. Each permission is assigned a value of ``YES``, ``NO``, or ``NEVER``.
+
+- ``YES`` means that the user or group is allowed to perform the action.
+- ``NO`` means that the user or group is not allowed to perform the action, but it can be overruled by a ``YES`` from a group or role they are assigned to.
+- ``NEVER`` means that the user or group is not allowed to perform the action and cannot be overruled by a ``YES`` from a group or role they are assigned to.
+
+When a user requests to perform an action, phpBB combines all the permissions assigned to the user through their groups, roles, and direct permission assignments. If any permission is set to ``NEVER``, it overrides all other permissions and denies the user access to that action. If a permission is set to ``NO``, it can be overridden by a ``YES`` permission from another group or role.
+
+Permission Types
+----------------
+
+There are four types of permissions in phpBB:
+
+- ``a_*`` Administrator: These permissions are applied to users who are assigned administrator roles.
+- ``f_*`` Forum: These permissions are applied to individual forums and can be set for each user group or individual user.
+- ``m_*`` Moderator: These permissions are applied to users who are assigned moderator roles for specific forums.
+- ``u_*`` User: These permissions are applied to individual users and override the permissions set for their user group.
+
+Local and Global Permissions
+----------------------------
+
+Permissions can be set to apply locally or globally. Local permissions are specific to a single forum, while global permissions apply to the entire board. By default, forum permissions are set to local. Administrator and User permissions are typically set to global.
+
+Permission options can also be set to apply both locally and globally, which is typical for Moderator permissions. This allows some users to be granted the permission on a single forum, while others might be granted the permission board-wide.
+
+Roles
+-----
+
+Roles are a predefined set of permission options that can be applied to users or groups. When the permission options of a role are changed, the users or groups assigned that role are automatically updated.
+
+The effective permission for any option is determined by a combination of the user's group membership, assigned roles, and direct permission assignments. In some cases, opposing permissions may exist, which can lead to unexpected results. It's important to carefully consider the permission settings to ensure that users are granted the appropriate level of access on the forum.
diff --git a/development/extensions/tutorial_templates.rst b/development/extensions/tutorial_templates.rst
new file mode 100644
index 00000000..86a6ef10
--- /dev/null
+++ b/development/extensions/tutorial_templates.rst
@@ -0,0 +1,441 @@
+.. _tutorial-template-syntax:
+
+=========================
+Tutorial: Template syntax
+=========================
+
+Introduction
+============
+
+Starting with version 3.1, phpBB is using the Twig template engine. This tutorial will cover some of the details on
+the implementation of Twig's syntax in phpBB and its extensions, however more extensive documentation for Twig can
+be found here: `Twig Documentation `_.
+
+
+
+Assigning data in PHP
+=====================
+
+Variables
+---------
+
+Assign a single variable:
+
+.. code-block:: php
+
+ $template->assign_var('FOO', $foo);
+
+Assigning multiple variables:
+
+.. code-block:: php
+
+ $template->assign_vars([
+ 'FOO' => $foo,
+ 'BAR' => $bar,
+ 'BAZ' => $baz
+ ]);
+
+Default Template Variables
+--------------------------
+
+There are some variables set in phpBB's page_header function that are common to all templates and which may be useful to a style or extension author.
+
+.. list-table::
+ :widths: 20 60 20
+ :header-rows: 1
+
+ * - Template variable
+ - Description
+ - Sample output
+ * - ``T_ASSETS_PATH``
+ - The path to assets files (``assets`` path in root of phpBB installation)
+ - ``./assets``
+ * - ``T_THEME_PATH``
+ - The path to the currently selected style's theme folder (where all the css files are stored)
+ - ``./styles/prosilver/theme``
+ * - ``T_TEMPLATE_PATH``
+ - The path to the currently selected style's template folder
+ - ``./styles/prosilver/template``
+ * - ``T_IMAGES_PATH``
+ - The path to phpBB's image folder
+ - ``./images``
+ * - ``T_SMILIES_PATH``
+ - The path to the smiley folder
+ - ``./images/similies``
+ * - ``T_AVATAR_PATH``
+ - The path to the avatar upload folder
+ - ``./images/avatars/upload``
+ * - ``T_AVATAR_GALLERY_PATH``
+ - The path to the avatar gallery folder
+ - ``./images/avatars/gallery``
+ * - ``T_ICONS_PATH``
+ - The path to topic icons folder
+ - ``./images/icons``
+ * - ``T_RANKS_PATH``
+ - The path to the rank images
+ - ``./images/ranks``
+ * - ``T_UPLOAD_PATH``
+ - The path to phpBB's upload folder (shouldn't be used directly).
+ - ``./files``
+
+Blocks
+------
+
+Blocks are used to assign any number of items of the same type, e.g. topics or posts ("foreach loop").
+
+.. code-block:: php
+
+ while ($row = $db->sql_fetchrow($result))
+ {
+ $template->assign_block_vars('loopname', [
+ 'FOO' => $row['foo'],
+ 'BAR' => $row['bar']
+ ]);
+ }
+
+Nested loops:
+
+.. code-block:: php
+
+ while ($topic = $db->sql_fetchrow($result))
+ {
+ $template->assign_block_vars('topic', [
+ 'TOPIC_ID' => $topic['topic_id']
+ ]);
+
+ while ($post = $db->sql_fetchrow($result))
+ {
+ $template->assign_block_vars('topic.post', [
+ 'POST_ID' => $post['post_id']
+ ]);
+ }
+ }
+
+The blocks and nested loops can then be used accordingly in HTML files (see `Syntax elements`_).
+
+Syntax elements
+===============
+
+This section will highlight Twig syntax elements in the template engine.
+The older phpBB specific syntax will be deprecated in a later version of phpBB. It is therefore recommended to use
+the documented Twig syntax instead:
+
+Comments
+--------
+
+To make comments inside the template you can use ``{# #}``:
+
+.. code-block:: twig
+
+ {# Your comments can go here. #}
+
+Variables
+---------
+
+Variables in phpBB take the form of ``{{ X_YYYYY }}``, where the data is assigned from the source. However, most
+language strings are not assigned from the source. When a language variable is found, denoted as ``{{ lang('YYYYYY') }}``,
+phpBB first checks if an assigned variable with that name exists. If it does, it uses that. If not, it checks if an
+existing string defined in the language file exists.
+
+By using the language variable format, phpBB allows for more flexibility in the customization of language strings.
+This allows for easy modifications of language strings in the language files without having to modify the source code
+directly.
+
+Blocks
+------
+
+The basic block level loop takes the form:
+
+.. code-block:: twig
+
+ {% for item in loops.loopname %}
+ markup, {{ item.xyyyy }}, etc.
+ {% endfor %}
+
+A further extension to begin is to use ``else`` in a loop:
+
+.. code-block:: twig
+
+ {% for item in loops.loopname %}
+ markup, {{ item.xyyyy }}, etc.
+ {% else %}
+ alternate markup
+ {% endfor %}
+
+This will cause the markup between ``else`` and ``endfor`` to be output if the loop contains no values.
+This is useful for forums with no topics (for example) ... in some ways it replaces "bits of" the existing
+"switch" type control (the rest being replaced by conditionals, see below).
+
+You can also check if your loop has any content similar to using ``count()`` in PHP:
+
+.. code-block:: twig
+
+ {% if loops.loopname|length %}
+ {% for item in loops.loopname %}
+ {{ item.xyyyy }}
+ {% endfor %}
+ {% endif %}
+
+``loops.loopname|length`` will output the size of the block array. This makes sense if you want to prevent, for example,
+an empty ``