3.17.2. user_session_create

Allow modules to override Phorum's session create management or to even fully omit creating a session (for example useful if the hook ??? is used to inherit an external session from some 3rd party application).

Call time:

Just before Phorum runs its own session initialization code in the user API function phorum_api_user_session_create().

Hook input:

The session type for which a session must be created. This can be either PHORUM_FORUM_SESSION or PHORUM_ADMIN_SESSION.

Hook output:

Same as input if Phorum has to run its standard session initialization code or NULL if that code should be fully skipped.

Example code:

function phorum_mod_foo_user_session_create($type)
{
    // Let Phorum handle admin sessions on its own.
    if ($type == PHORUM_ADMIN_SESSION) return $type;

    // Override the session handling for front end forum sessions.
    // We could for example put the session in a standard PHP
    // session by first starting a PHP session if that was
    // not done yet...
    if (!session_id()) session_start();

    // ...and then storing the user_id of the current user in the
    // PHP session data. The user_id is really the only thing
    // that needs to be remembered for a Phorum session, because
    // all other data for the user is stored in the database.
    $phorum_user_id = $GLOBALS["PHORUM"]["user"]["user_id"];
    $_SESSION['phorum_user_id'] = $phorum_user_id;

    // Tell Phorum not to run its own session initialization code.
    return NULL;
}

See the ??? hook for an example of how to let Phorum pick up this PHP based session.