function plugin_init_talk()
{
    global $PLUGIN_HOOKS, $CFG_GLPI, $LANG;
    $PLUGIN_HOOKS['csrf_compliant']['talk'] = true;
    $plugin = new Plugin();
    if ($plugin->isInstalled('talk') && $plugin->isActivated('talk')) {
        //load preferences on profile changing
        $PLUGIN_HOOKS['change_profile']['talk'] = array('PluginTalkProfile', 'changeProfile');
        //if glpi is loaded
        if (Session::getLoginUserID()) {
            Plugin::registerClass('PluginTalkProfile', array('addtabon' => 'Profile'));
            Plugin::registerClass('PluginTalkUserpref', array('addtabon' => array('User', 'Preference')));
            $PLUGIN_HOOKS['use_massive_action']['talk'] = 1;
            if (Session::haveRight('plugin_talk_is_active', PluginTalkTicket::ACTIVE)) {
                if (strpos($_SERVER['REQUEST_URI'], "/ticket.form.php") !== false && isset($_GET['id'])) {
                    if (PluginTalkUserpref::isFunctionEnabled("talk_tab")) {
                        // Plugin::registerClass('PluginTalkTicket',
                        //                  array('addtabon' => array('Ticket')));
                        $PLUGIN_HOOKS['add_css']['talk'][] = 'css/talk.css';
                        if (!PluginTalkUserpref::isFunctionEnabled("old_tabs")) {
                            $PLUGIN_HOOKS['add_css']['talk'][] = 'css/hide_ticket_tabs.css';
                        }
                        $_SESSION['plugin_talk_lasttickets_id'] = $_REQUEST['id'];
                        $PLUGIN_HOOKS['add_javascript']['talk'][] = 'scripts/insert_talktab.js.php';
                        $PLUGIN_HOOKS['add_javascript']['talk'][] = 'scripts/filter_timeline.js';
                        $PLUGIN_HOOKS['add_javascript']['talk'][] = 'scripts/read_more.js';
                        $PLUGIN_HOOKS['add_javascript']['talk'][] = 'scripts/split_button.js';
                    }
                    /* disabled for 0.85 */
                    // if (PluginTalkUserpref::isFunctionEnabled("split_view"))  {
                    //    $PLUGIN_HOOKS['add_css']['talk'][] = 'css/split_ticket_view.css';
                    // }
                }
            }
        }
    }
}
<?php

include '../../../inc/includes.php';
if (isset($_POST['update'])) {
    $userpref = new PluginTalkUserpref();
    $userpref->update($_POST);
    if ($_POST['users_id'] === Session::getLoginUserID()) {
        PluginTalkUserpref::loadInSession();
    }
}
Html::back();
 static function changeProfile()
 {
     $prof = new self();
     if ($prof->getFromDBByProfile($_SESSION['glpiactiveprofile']['id'])) {
         //get User preferences
         PluginTalkUserpref::loadInSession();
         // re-load profile in session (removed in self-service by Session::cleanProfile)
         $_SESSION['glpiactiveprofile']['plugin_talk_is_active'] = $prof->fields['rights'];
     }
 }