mirror of
https://github.com/Mibew/mibew.git
synced 2025-01-31 13:24:41 +03:00
Describe all "users" app related events in Events class
This commit is contained in:
parent
55b1476139
commit
d05fe335b8
@ -164,6 +164,83 @@ final class Events
|
|||||||
*/
|
*/
|
||||||
const RESOURCE_NOT_FOUND = 'resourceNotFound';
|
const RESOURCE_NOT_FOUND = 'resourceNotFound';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Threads list is ready to be sent to client.
|
||||||
|
*
|
||||||
|
* This event is triggered before the threads list is sent to the "users"
|
||||||
|
* client side application. It provide an ability to alter the list. A
|
||||||
|
* plugin can attach some fields to each thread or completeley replace the
|
||||||
|
* whole list. An associative array with the following items is passed to
|
||||||
|
* the event handlers:
|
||||||
|
* - "threads": array of threads data arrays.
|
||||||
|
*/
|
||||||
|
const USERS_UPDATE_THREADS_ALTER = 'usersUpdateThreadsAlter';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load custom on site visitors list.
|
||||||
|
*
|
||||||
|
* This event is triggered before the list of on site visitors is loaded for
|
||||||
|
* sending to the "users" client side application. It provide an ability for
|
||||||
|
* plugins to load, sort and limit visitors list. An associative array with
|
||||||
|
* the following items is passed to the event handlers:
|
||||||
|
* - "visitors": array of visitors data arrays. Each visitor array must
|
||||||
|
* contain at least the following keys: "id", "userName", "userAgent",
|
||||||
|
* "userIp", "remote", "firstTime", "lastTime", "invitations",
|
||||||
|
* "chats", "invitationInfo". If there are no visitors an empty array
|
||||||
|
* should be used.
|
||||||
|
*
|
||||||
|
* If the "visitors" item was not set by a plugin the default system loader
|
||||||
|
* will be used.
|
||||||
|
*/
|
||||||
|
const USERS_UPDATE_VISITORS_LOAD = 'usersUpdateVisitorsLoad';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On site visitors list is ready to be sent to client.
|
||||||
|
*
|
||||||
|
* This event is triggered before the on site visitors list is sent to the
|
||||||
|
* "users" client application. It provide an ability to alter the list.
|
||||||
|
* A plugin can attach some fields to each visitor or completeley replace
|
||||||
|
* the whole list. An associative array with the following items is passed
|
||||||
|
* to the event handlers:
|
||||||
|
* - "visitors": array of visitors data arrays.
|
||||||
|
*/
|
||||||
|
const USERS_UPDATE_VISITORS_ALTER = 'usersUpdateVisitorsAlter';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A function was called at client side "users" application.
|
||||||
|
*
|
||||||
|
* This event is triggered when an API a function is called at client side
|
||||||
|
* in the "users" application, but the system is not aware of this function.
|
||||||
|
*
|
||||||
|
* Plugins can implement custom API functions by attaching handlers to the
|
||||||
|
* event. If a plugin wants to return some results, it should use "results"
|
||||||
|
* element of the event arguments array (see below).
|
||||||
|
*
|
||||||
|
* An associative array with the following items is passed to the event
|
||||||
|
* handlers:
|
||||||
|
* - "function": string, name of the function that was called.
|
||||||
|
* - "arguments": associative array of arguments that was passed to the
|
||||||
|
* function.
|
||||||
|
* - "results": array, list of function results.
|
||||||
|
*
|
||||||
|
* Here is an example of the event handler:
|
||||||
|
* <code>
|
||||||
|
* public function callHandler(&$function)
|
||||||
|
* {
|
||||||
|
* // Check that the function we want to implement is called.
|
||||||
|
* if ($function['function'] == 'microtime') {
|
||||||
|
* // Check some function's arguments.
|
||||||
|
* $as_float = empty($function['arguments']['as_float'])
|
||||||
|
* ? false
|
||||||
|
* : $function['arguments']['as_float'];
|
||||||
|
* // Invoke the function and return the results.
|
||||||
|
* $function['results']['time'] = microtime($as_float);
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* </code>
|
||||||
|
*/
|
||||||
|
const USERS_FUNCTION_CALL = 'usersFunctionCall';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Visitor is created.
|
* Visitor is created.
|
||||||
*
|
*
|
||||||
|
@ -24,24 +24,14 @@ use Mibew\Authentication\AuthenticationManagerAwareInterface;
|
|||||||
use Mibew\Authentication\AuthenticationManagerInterface;
|
use Mibew\Authentication\AuthenticationManagerInterface;
|
||||||
use Mibew\Database;
|
use Mibew\Database;
|
||||||
use Mibew\EventDispatcher\EventDispatcher;
|
use Mibew\EventDispatcher\EventDispatcher;
|
||||||
|
use Mibew\EventDispatcher\Events;
|
||||||
use Mibew\Settings;
|
use Mibew\Settings;
|
||||||
use Mibew\Thread;
|
use Mibew\Thread;
|
||||||
use Mibew\API\API as MibewAPI;
|
use Mibew\API\API as MibewAPI;
|
||||||
use Mibew\RequestProcessor\Exception\UsersProcessorException;
|
use Mibew\RequestProcessor\Exception\UsersProcessorException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Incapsulates awaiting users list api related functions.
|
* Incapsulates awaiting users list API related functions.
|
||||||
*
|
|
||||||
* Events triggered by the class (see description of the RequestProcessor class
|
|
||||||
* for details):
|
|
||||||
* - usersRequestReceived
|
|
||||||
* - usersReceiveRequestError
|
|
||||||
* - usersCallError
|
|
||||||
* - usersFunctionCall
|
|
||||||
*
|
|
||||||
* Also triggers follow events (see description of apiUpdateVisitors method):
|
|
||||||
* - usersUpdateVisitorsLoad
|
|
||||||
* - usersUpdateVisitorsAlter
|
|
||||||
*/
|
*/
|
||||||
class UsersProcessor extends ClientSideProcessor implements AuthenticationManagerAwareInterface
|
class UsersProcessor extends ClientSideProcessor implements AuthenticationManagerAwareInterface
|
||||||
{
|
{
|
||||||
@ -181,11 +171,8 @@ class UsersProcessor extends ClientSideProcessor implements AuthenticationManage
|
|||||||
/**
|
/**
|
||||||
* Return updated threads list. API function
|
* Return updated threads list. API function
|
||||||
*
|
*
|
||||||
* Triggers the following events:
|
* Triggers
|
||||||
* 1. 'usersUpdateThreadsAlter': provide the ability to alter threads
|
* {@link \Mibew\EventDispatcher\Events::USERS_UPDATE_THREADS_ALTER} event.
|
||||||
* list. Associative array is passed to event lister. It has the
|
|
||||||
* following keys:
|
|
||||||
* - 'threads': array of threads arrays.
|
|
||||||
*
|
*
|
||||||
* @param array $args Associative array of arguments. It must contains the
|
* @param array $args Associative array of arguments. It must contains the
|
||||||
* following keys:
|
* following keys:
|
||||||
@ -356,7 +343,7 @@ class UsersProcessor extends ClientSideProcessor implements AuthenticationManage
|
|||||||
'threads' => $threads,
|
'threads' => $threads,
|
||||||
);
|
);
|
||||||
$dispatcher = EventDispatcher::getInstance();
|
$dispatcher = EventDispatcher::getInstance();
|
||||||
$dispatcher->triggerEvent('usersUpdateThreadsAlter', $arguments);
|
$dispatcher->triggerEvent(Events::USERS_UPDATE_THREADS_ALTER, $arguments);
|
||||||
|
|
||||||
// Send results back to the client. "array_values" function should be
|
// Send results back to the client. "array_values" function should be
|
||||||
// used to avoid problems with JSON conversion. If there will be gaps in
|
// used to avoid problems with JSON conversion. If there will be gaps in
|
||||||
@ -371,19 +358,10 @@ class UsersProcessor extends ClientSideProcessor implements AuthenticationManage
|
|||||||
/**
|
/**
|
||||||
* Return updated visitors list. API function.
|
* Return updated visitors list. API function.
|
||||||
*
|
*
|
||||||
* Triggers following events:
|
* Triggers
|
||||||
* 1. 'usersUpdateVisitorsLoad': provide the ability to plugins to load,
|
* {@link \Mibew\EventDispatcher\Events::USERS_UPDATE_VISITORS_LOAD} and
|
||||||
* sort and limiting visitors list. Associative array pass to event
|
* {@link \Mibew\EventDispatcher\Events::USERS_UPDATE_VISITORS_ALTER}
|
||||||
* lister have following keys:
|
* events.
|
||||||
* - 'visitors': array of visitors arrays. Each visitor array must
|
|
||||||
* contain at least following keys: 'id', 'userName', 'userAgent',
|
|
||||||
* 'userIp', 'remote', 'firstTime', 'lastTime', 'invitations',
|
|
||||||
* 'chats', 'invitationInfo'. If there are no visitors an empty array
|
|
||||||
* should be used.
|
|
||||||
*
|
|
||||||
* 2. 'usersUpdateVisitorsAlter': provide the ability to alter visitors
|
|
||||||
* list. Associative array pass to event lister have following keys:
|
|
||||||
* - 'visitors': array of visitors arrays.
|
|
||||||
*
|
*
|
||||||
* @param array $args Associative array of arguments. It must contains the
|
* @param array $args Associative array of arguments. It must contains the
|
||||||
* following keys:
|
* following keys:
|
||||||
@ -410,7 +388,7 @@ class UsersProcessor extends ClientSideProcessor implements AuthenticationManage
|
|||||||
$arguments = array(
|
$arguments = array(
|
||||||
'visitors' => false
|
'visitors' => false
|
||||||
);
|
);
|
||||||
$dispatcher->triggerEvent('usersUpdateVisitorsLoad', $arguments);
|
$dispatcher->triggerEvent(Events::USERS_UPDATE_VISITORS_LOAD, $arguments);
|
||||||
|
|
||||||
// Check if visiors list loaded by plugins
|
// Check if visiors list loaded by plugins
|
||||||
if (!is_array($arguments['visitors'])) {
|
if (!is_array($arguments['visitors'])) {
|
||||||
@ -502,7 +480,7 @@ class UsersProcessor extends ClientSideProcessor implements AuthenticationManage
|
|||||||
$arguments = array(
|
$arguments = array(
|
||||||
'visitors' => $visitors,
|
'visitors' => $visitors,
|
||||||
);
|
);
|
||||||
$dispatcher->triggerEvent('usersUpdateVisitorsAlter', $arguments);
|
$dispatcher->triggerEvent(Events::USERS_UPDATE_VISITORS_ALTER, $arguments);
|
||||||
|
|
||||||
// Send results back to the client. "array_values" function should be
|
// Send results back to the client. "array_values" function should be
|
||||||
// used to avoid problems with JSON conversion. If there will be gaps in
|
// used to avoid problems with JSON conversion. If there will be gaps in
|
||||||
|
Loading…
Reference in New Issue
Block a user