Beispiel #1
0
/**
 *
 **/
function saveDatetime($backend)
{
    $settings = array();
    $old_settings = getSettingsTable();
    $val = CAT_Helper_Validate::getInstance();
    // language must be 2 upercase letters only
    $default_language = strtoupper($val->sanitizePost('default_language'));
    $settings['default_language'] = $backend->lang()->checkLang($default_language) ? $default_language : $old_settings['default_language'];
    // check date format
    $settings['cat_default_date_format'] = CAT_Helper_DateTime::checkDateformat($val->sanitizePost('default_date_format')) ? $val->sanitizePost('default_date_format') : $old_settings['cat_default_date_format'];
    // check time format
    $settings['cat_default_time_format'] = CAT_Helper_DateTime::checkTimeformat($val->sanitizePost('default_time_format')) ? $val->sanitizePost('default_time_format') : $old_settings['cat_default_time_format'];
    // check timezone string
    $settings['default_timezone_string'] = CAT_Helper_DateTime::checkTZ($val->sanitizePost('default_timezone_string')) ? $val->sanitizePost('default_timezone_string') : $old_settings['default_timezone_string'];
    // check charset
    $CHARSETS = $backend->lang()->getCharsets();
    $char_set = $val->sanitizePost('default_charset');
    $settings['default_charset'] = array_key_exists($char_set, $CHARSETS) ? $char_set : $old_settings['default_charset'];
    saveSettings($settings);
}
$message = false;
$save = $val->sanitizePost('save');
$wbcompat = defined('WB2COMPAT') && WB2COMPAT === true ? true : false;
if ($save && $save == 'account_settings') {
    $query = "SELECT `password` from `:prefix:users` where `user_id`=:id AND `password`=:pw";
    $result = $database->query($query, array('id' => $user->get_user_id(), 'pw' => md5($val->sanitizePost('current_password'))));
    if ($result->rowCount() == 1) {
        $submit_ok = true;
    }
    unset($query);
    unset($result);
    unset($_POST['save']);
}
if (true === $submit_ok) {
    $errors = array();
    $timezone_string = CAT_Helper_DateTime::checkTZ($val->sanitizePost('timezone_string')) === true ? $val->sanitizePost('timezone_string') : DEFAULT_TIMEZONESTRING;
    $language = $user->lang()->checkLang($val->sanitizePost('language', 'string', true)) === true ? $val->sanitizePost('language', 'string', true) : NULL;
    // email should be validatet by core
    $email = $val->validate_email($val->sanitizePost('email'));
    if (!$email) {
        $errors[] = $user->lang()->translate('The email address you entered is invalid');
    } else {
        $sql = 'SELECT COUNT(*) FROM `:prefix:users` WHERE `user_id`<>:id AND `email` LIKE :email';
        if ($database->query($sql, array('id' => (int) $user->get_user_id(), 'email' => $email))->fetchColumn() > 0) {
            $errors[] = $user->lang()->translate('The email you entered is already in use');
        }
    }
    $display_name = strip_tags($val->sanitizePost('display_name', 'string', true));
    $pattern = array('/[^A-Za-z0-9@\\.\\ _-]/');
    $display_name = preg_replace($pattern, "", $display_name);
    if (strlen($display_name) < AUTH_MIN_LOGIN_LENGTH) {