示例#1
0
/**
 * Show a user their settings for MyAlerts.
 *
 * @param MyBB               $mybb      MyBB core object.
 * @param DB_MySQLi|DB_MySQL $db        Database object.
 * @param MyLanguage         $lang      Language object.
 * @param pluginSystem       $plugins   MyBB plugin system.
 * @param templates          $templates Template manager.
 * @param array              $theme     Details about the current theme.
 */
function myalerts_alert_settings($mybb, $db, $lang, $plugins, $templates, $theme)
{
    $alertTypes = MybbStuff_MyAlerts_AlertTypeManager::getInstance()->getAlertTypes();
    if (strtolower($mybb->request_method) == 'post') {
        // Saving alert type settings
        $disabledAlerts = array();
        foreach ($alertTypes as $alertCode => $alertType) {
            if (!isset($_POST[$alertCode]) && $alertType['can_be_user_disabled']) {
                $disabledAlerts[] = (int) $alertType['id'];
            }
        }
        if ($disabledAlerts != $mybb->user['myalerts_disabled_alert_types']) {
            // Different settings, so update
            $jsonEncodedDisabledAlerts = json_encode($disabledAlerts);
            $db->update_query('users', array('myalerts_disabled_alert_types' => $db->escape_string($jsonEncodedDisabledAlerts)), 'uid=' . (int) $mybb->user['uid']);
        }
        redirect('alerts.php?action=settings', $lang->myalerts_settings_updated, $lang->myalerts_settings_updated_title);
    } else {
        // Displaying alert type settings form
        $content = '';
        global $headerinclude, $header, $footer, $usercpnav;
        add_breadcrumb($lang->myalerts_settings_page_title, 'alerts.php?action=settings');
        require_once __DIR__ . '/inc/functions_user.php';
        usercp_menu();
        foreach ($alertTypes as $key => $value) {
            if ($value['enabled'] && $value['can_be_user_disabled']) {
                $altbg = alt_trow();
                $tempKey = 'myalerts_setting_' . $key;
                $plugins->run_hooks('myalerts_load_lang');
                $langline = $lang->{$tempKey};
                $checked = '';
                if (!in_array($value['id'], $mybb->user['myalerts_disabled_alert_types'])) {
                    $checked = ' checked="checked"';
                }
                eval("\$alertSettings .= \"" . $templates->get('myalerts_setting_row') . "\";");
            }
        }
        eval("\$content = \"" . $templates->get('myalerts_settings_page') . "\";");
        output_page($content);
    }
}
示例#2
0
     my_unsetcookie("mybbuser");
     my_unsetcookie("sid");
     if ($mybb->user['uid']) {
         $time = TIME_NOW;
         $lastvisit = array("lastactive" => $time - 900, "lastvisit" => $time);
         $db->update_query("users", $lastvisit, "uid='" . $mybb->user['uid'] . "'");
         $db->delete_query("sessions", "sid='" . $session->sid . "'");
     }
     header("Location: upgrade.php");
 } else {
     if ($mybb->input['action'] == "do_login" && $mybb->request_method == "post") {
         require_once MYBB_ROOT . "inc/functions_user.php";
         if (!username_exists($mybb->input['username'])) {
             $output->print_error("Wpisany login jest niepoprawny.");
         }
         $query = $db->simple_select("users", "uid,username,password,salt,loginkey", "username='******'username']) . "'", array('limit' => 1));
         $user = $db->fetch_array($query);
         if (!$user['uid']) {
             $output->print_error("Wpisany login jest niepoprawny.");
         } else {
             $user = validate_password_from_uid($user['uid'], $mybb->input['password'], $user);
             if (!$user['uid']) {
                 $output->print_error("Wpisane hasło jest nieprawidłowe. Jeżeli nie pamiętasz swojego hasła, kliknij <a href=\"../member.php?action=lostpw\">tutaj</a>, aby je odzyskać i spróbuj ponownie.");
             }
         }
         $db->delete_query("sessions", "ip='" . $db->escape_string($session->ipaddress) . "' AND sid != '" . $session->sid . "'");
         $newsession = array("uid" => $user['uid']);
         $db->update_query("sessions", $newsession, "sid='" . $session->sid . "'");
         // Temporarily set the cookie remember option for the login cookies
         $mybb->user['remember'] = $user['remember'];
         my_setcookie("mybbuser", $user['uid'] . "_" . $user['loginkey'], null, true);
示例#3
0
        if ($mybb->input['action'] == "do_login" && $mybb->request_method == "post") {
            require_once MYBB_ROOT . "inc/functions_user.php";
            if (!username_exists($mybb->get_input('username'))) {
                $output->print_error("The username you have entered appears to be invalid.");
            }
            $options = array('fields' => array('username', 'password', 'salt', 'loginkey'));
            $user = get_user_by_username($mybb->get_input('username'), $options);
            if (!$user['uid']) {
                $output->print_error("The username you have entered appears to be invalid.");
            } else {
                $user = validate_password_from_uid($user['uid'], $mybb->get_input('password'), $user);
                if (!$user['uid']) {
                    $output->print_error("The password you entered is incorrect. If you have forgotten your password, click <a href=\"../member.php?action=lostpw\">here</a>. Otherwise, go back and try again.");
                }
            }
            $db->delete_query("sessions", "ip='" . $db->escape_string($session->ipaddress) . "' AND sid != '" . $session->sid . "'");
            $newsession = array("uid" => $user['uid']);
            $db->update_query("sessions", $newsession, "sid='" . $session->sid . "'");
            // Temporarily set the cookie remember option for the login cookies
            $mybb->user['remember'] = $user['remember'];
            my_setcookie("mybbuser", $user['uid'] . "_" . $user['loginkey'], null, true);
            my_setcookie("sid", $session->sid, -1, true);
            header("Location: ./upgrade.php");
        }
    }
    $output->steps = array($lang->upgrade);
    if ($mybb->user['uid'] == 0) {
        $output->print_header($lang->please_login, "errormsg", 0, 1);
        $output->print_contents('<p>' . $lang->login_desc . '</p>
<form action="upgrade.php" method="post">
	<div class="border_wrapper">