Ho installato il WP-PhpBB bridge per wordpress.
Il merge utenti funziona benissimo, solo che i caratteri speciali e le lettere maiuscole non vengono considerate (es, su phpbb: [prova]Ciao1; su wp: provaciao1)
Ho provato nel file plugin.php a modifcare questa funzione:
Codice PHP:
function wpb_get_username($count = 0)
{
global $user;
$new_username = ereg_replace("[^A-Za-z0-9]", "", $user->data['username']);
$new_username = strtolower($new_username);
if($count > 0)
{
$new_username .= (string)$count;
}
if(username_exists($new_username))
{
$count++;
$new_username = wpb_get_username($count);
}
return $new_username;
}
inserendo, al posto dell'ereg_replace l'htmlspecialchars ed eliminando l'strtolower
Ma il problema persiste. Così ho controllato il file formatting.php della board cercando la funzione sanitize_user che ho notato essere presente ogni qualvolta si richiami la variabile username.
Il fatto è che vorrei tenere anche soltanto le parentesi quadre [] e le lettere maiuscole, il resto può anche nonessere considerato
Codice PHP:
function sanitize_user( $username, $strict = false ) {
$raw_username = $username;
$username = wp_strip_all_tags( $username );
$username = remove_accents( $username );
// Kill octets
$username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
$username = preg_replace( '/&.+?;/', '', $username ); // Kill entities
// If strict, reduce to ASCII for max portability.
if ( $strict )
$username = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $username );
$username = trim( $username );
// Consolidate contiguous whitespace
$username = preg_replace( '|\s+|', ' ', $username );
return apply_filters( 'sanitize_user', $username, $raw_username, $strict );
}
Ho pensato di togliere dal terzo preg_replace le parentesi, ma non vorrei distruggere tutto e quindi vorrei prima il parere di esperti
Grazie mille per l'aiuto