}
                     }
                 }
             }
         }
     }
 }
 // Get new messages
 if (!empty($get_last_msgs) && $get_last_msgs > 0) {
     $messages = $msg->getLastMessages($current_user->id, $get_last_msgs);
     $messages = array_reverse($messages);
 } elseif (!empty($first_request)) {
     $messages = $msg->getLastMessages($current_user->id, $session->_conf_all['init_display_messages_count']);
     $messages = array_reverse($messages);
 } else {
     $messages = $msg->getNewMessages($current_user->id);
 }
 if (!empty($messages)) {
     $msg_array = array();
     foreach ($messages as $message_data) {
         $last_message_id = $last_message_id < $message_data['id'] ? $message_data['id'] : $last_message_id;
         $msg_parts = explode('/', $message_data['body']);
         if ($message_data['type'] == '4001') {
             // Abuse
             if ($message_data['target_user_id'] == $session->_s_user_id) {
                 $abuse_msg_parts = explode('/', $message_data['body'], 5);
                 if ($room->_db_getList('name', 'id = ' . $abuse_msg_parts[1], 1)) {
                     $room_name = $room->_db_list[0]['name'];
                     $room->_db_freeList();
                 } else {
                     $room_name = '-';
 *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
if (!isset($recursion)) {
    $recursion = 1;
}
$invitations_arrived = 0;
$messages_arrived = 0;
$categories_tree = array();
if (!empty($current_user->id)) {
    $xmlwriter->setHeaderMessage('OK');
    $xmlwriter->setHeaderStatus(0);
    // Get room structure
    _pcpin_loadClass('category');
    $category = new PCPIN_Category($session);
    $categories_tree = $category->getTree($current_user->id, 0, !empty($recursion));
    // Are there any invitations or abuse reports?
    if (!empty($current_user->id)) {
        _pcpin_loadClass('invitation');
        $invitation = new PCPIN_Invitation($session);
        $invitations = $invitation->getNewInvitations($current_user->id, true);
        $invitations_arrived = !empty($invitations) ? 1 : 0;
        unset($invitations);
        _pcpin_loadClass('message');
        $msg = new PCPIN_Message($session);
        $messages = $msg->getNewMessages($session->_s_user_id);
        if (!empty($messages)) {
            $messages_arrived = 1;
        }
    }
}
$xmlwriter->setData(array('category' => !empty($categories_tree) ? $categories_tree[0] : array(), 'additional_data' => array('new_invitations' => $invitations_arrived, 'new_messages' => $messages_arrived)));