Darathor
Citation :
But : Permet de rechercher des messages par id du posteur plutôt que par pseudo. Outre le fait de corriger une invalidité XHTML avec certains pseudos, ceci corrige le bug qui faisait qu'une recherche sur les message d'un membre dont le nom d'utilisateur compte moins de 3 caractère renvoyait un résultat vide.
Auteur : Darathor (darathor@free.fr)
Version : 1.0 TEST - A (02/01/2006)
Compatibilité phpBB : 2.0.19
Dans "search.php" :
Code :
#
# Trouver
#
//
// encoding match for workaround
//
#
# Ajouter avant
#
// DEBUT MOD Recherche par user_id
if ( isset($HTTP_POST_VARS['user_id']) || isset($HTTP_GET_VARS['user_id']) )
{
$s_user_id = (isset($HTTP_POST_VARS['user_id'])) ? intval($HTTP_POST_VARS['user_id']) : intval($HTTP_GET_VARS['user_id']);
$search_author = 'SEARCH_BY_USER_ID';
}
else { $s_user_id = 0; }
// FIN MOD Recherche par user_id
#
# Trouver
#
if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author))))
#
# Ajouter avant
#
// DEBUT MOD Recherche par user_id
if($s_user_id == 0)
{
// FIN MOD Recherche par user_id
#
# Trouver
#
$sql = "SELECT post_id
FROM " . POSTS_TABLE . "
WHERE poster_id IN ($matching_userids)";
#
# Ajouter avant
#
// DEBUT MOD Recherche par user_id
}
else { $matching_userids = $s_user_id; }
// FIN MOD Recherche par user_id
#
# Trouver
#
$from_sql = POSTS_TABLE . " p";
if ( $search_author != '' )
#
# Remplacer par
#
$from_sql = POSTS_TABLE . " p";
// DEBUT MOD Recherche par user_id
// -- DEBUT Enlevé
// if ( $search_author != '' )
// -- FIN Enlevé
if($s_user_id != 0)
{
$from_sql .= ", " . USERS_TABLE . " u";
$where_sql .= " AND u.user_id = p.poster_id AND u.user_id = $s_user_id ";
}
else if ( $search_author != '' )
// FIN MOD Recherche par user_id
#
# Trouver
#
if ( $search_author != '' )
{
$from_sql .= ", " . USERS_TABLE . " u";
#
# Remplacer par
#
// DEBUT MOD Recherche par user_id
// -- DEBUT Enlevé
// if ( $search_author != '' )
// -- FIN Enlevé
if($s_user_id != 0)
{
$from_sql .= ", " . USERS_TABLE . " u";
$where_sql .= " AND u.user_id = p.poster_id AND u.user_id = $s_user_id ";
}
else if ( $search_author != '' )
// FIN MOD Recherche par user_id
{
$from_sql .= ", " . USERS_TABLE . " u";
Dans "includes/usercp_viewprofile.php" :
Code :
#
# Trouver
#
$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($profiledata['username']) . "&showresults=posts");
#
# Remplacer par
#
// DEBUT MOD Recherche par user_id
// -- DEBUT Enlevé
// $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($profiledata['username']) . "&showresults=posts");
// -- FIN Enlevé
$temp_url = append_sid("search.$phpEx?user_id=" . urlencode($profiledata['user_id']) . "&showresults=posts");
// FIN MOD Recherche par user_id
#
# Trouver
#
'U_SEARCH_USER' => append_sid("search.$phpEx?search_author=" . $u_search_author),
#
# Rempalcer par
#
// DEBUT MOD Recherche par user_id
// -- DEBUT Enlevé
// 'U_SEARCH_USER' => append_sid("search.$phpEx?search_author=" . $u_search_author),
// -- FIN Enlevé
'U_SEARCH_USER' => append_sid("search.$phpEx?user_id=" . $profiledata['user_id']),
// FIN MOD Recherche par user_id