Beispiel #1
0
                break;
            case 'e_pm_del':
                $errstr = $LANG['e_pm_del'];
                $type = MessageHelper::WARNING;
                break;
            default:
                $errstr = '';
        }
        if (!empty($errstr)) {
            $tpl->put('message_helper', MessageHelper::display($errstr, $type));
        }
    }
    $tpl->display();
} else {
    $tpl = new FileTemplate('user/pm.tpl');
    $nbr_pm = PrivateMsg::count_conversations($current_user->get_id());
    //On crée une pagination si le nombre de MP est trop important.
    $page = AppContext::get_request()->get_getint('p', 1);
    $pagination = new ModulePagination($page, $nbr_pm, $_NBR_ELEMENTS_PER_PAGE);
    $pagination->set_url(new Url('/user/pm.php?p=%d'));
    if ($pagination->current_page_is_empty() && $page > 1) {
        $error_controller = PHPBoostErrors::unexisting_page();
        DispatchManager::redirect($error_controller);
    }
    $limit_group = $current_user->check_max_value(PM_GROUP_LIMIT, $user_accounts_config->get_max_private_messages_number());
    $unlimited_pm = $current_user->check_level(User::MODERATOR_LEVEL) || $limit_group === -1;
    $pm_max = $unlimited_pm ? $LANG['illimited'] : $limit_group;
    $tpl->assign_block_vars('convers', array('C_PAGINATION' => $pagination->has_several_pages(), 'PAGINATION' => $pagination->display(), 'NBR_PM' => $nbr_pm, 'PM_POURCENT' => '<strong>' . $nbr_pm . '</strong> / <strong>' . $pm_max . '</strong>', 'U_MARK_AS_READ' => 'pm.php?read=1', 'L_MARK_AS_READ' => $LANG['mark_pm_as_read'], 'U_USER_ACTION_PM' => url('.php?del_convers=1&amp;p=' . $page . '&amp;token=' . AppContext::get_session()->get_token()), 'U_PM_BOX' => '<a href="pm.php' . '">' . $LANG['pm_box'] . '</a>', 'U_POST_NEW_CONVERS' => 'pm' . url('.php?post=1', ''), 'L_POST_NEW_CONVERS' => $LANG['post_new_convers']));
    //Aucun message privé.
    if ($nbr_pm == 0) {
        $tpl->assign_block_vars('convers.no_pm', array('L_NO_PM' => LangLoader::get_message('no_item_now', 'common')));
Beispiel #2
0
if (!$User->check_level(MEMBER_LEVEL)) {
    $Errorh->handler('e_auth', E_USER_REDIRECT);
}
import('members/pm');
$Privatemsg = new PrivateMsg();
$pm_get = retrieve(GET, 'pm', 0);
$pm_id_get = retrieve(GET, 'id', 0);
$pm_del_convers = retrieve(GET, 'del_convers', false);
$quote_get = retrieve(GET, 'quote', 0);
$page = retrieve(GET, 'p', 0);
$post = retrieve(GET, 'post', false);
$pm_edit = retrieve(GET, 'edit', 0);
$pm_del = retrieve(GET, 'del', 0);
$read = retrieve(GET, 'read', false);
if ($read) {
    $nbr_pm = $Privatemsg->count_conversations($User->get_attribute('user_id'));
    $limit_group = $User->check_max_value(PM_GROUP_LIMIT, $CONFIG['pm_max']);
    $unlimited_pm = $User->check_level(MODO_LEVEL) || $limit_group === -1;
    $nbr_waiting_pm = 0;
    if (!$unlimited_pm && $nbr_pm > $limit_group) {
        $nbr_waiting_pm = $nbr_pm - $limit_group;
    }
    $j = 0;
    $result = $Sql->query_while("SELECT pm.last_msg_id, pm.user_view_pm\n\tFROM " . DB_TABLE_PM_TOPIC . "  pm\n\tLEFT JOIN " . DB_TABLE_PM_MSG . " msg ON msg.idconvers = pm.id AND msg.id = pm.last_msg_id\n\tWHERE " . $User->get_attribute('user_id') . " IN (pm.user_id, pm.user_id_dest) AND pm.last_user_id <> '" . $User->get_attribute('user_id') . "' AND msg.view_status = 0\n\tORDER BY pm.last_timestamp DESC ", __LINE__, __FILE__);
    while ($row = $Sql->fetch_assoc($result)) {
        $j++;
        if (!$unlimited_pm && $nbr_waiting_pm - $j >= 0) {
            continue;
        }
        $Sql->query_inject("UPDATE " . DB_TABLE_PM_MSG . " SET view_status = 1 WHERE id = '" . $row['last_msg_id'] . "'", __LINE__, __FILE__);
    }