Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[Réglé] Recherche par user_id, problème

Poster un nouveau sujet Répondre au sujet

Rechercher dans ce sujet :
Messages
Novaslash 
Membre

Inscrit le : 26 Juil 2006
Messages : 23
MessagePosté le : 26 Juil 2006 18:08
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Bonjour !

Dans l'installation de ce fix, il est demander de trouver la ligne dans search.php :

if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author))))

Le soucis est qu'elle n'existe pas. J'ai tenté une recherche partielle mais je ne trouve pas une ligne semblable. que dois-je faire ?

Merci d'avance !
Revenir en haut Aller en bas
Hors ligne | Profil | MP
Dernière édition par Novaslash le 30 Juil 2006 15:45; édité 1 fois
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 26 Juil 2006 19:28
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
J'ai pas de 2.0.21 clean sur mon ordi, donc ça a pu changer mais voilà ce qu'il y a autour dans la 2.0.19 :

Citation :
//
// Author name search
//
if ( $search_author != '' )
{
if (preg_match('#^[\*%]+$#', trim($search_author)) || preg_match('#^[^\*]{1,2}$#', str_replace(array('*', '%'), '', trim($search_author))))
{
$search_author = '';
}

$search_author = str_replace('*', '%', trim(str_replace("\'", "''", $search_author)));
}

if ( $total_match_count )
{
if ( $show_results == 'topics' )
{
//
// This one is a beast, try to seperate it a bit (workaround for connection timeouts)
//
$search_id_chunks = array();
$count = 0;
$chunk = 0;

Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
Novaslash 
Membre

Inscrit le : 26 Juil 2006
Messages : 23
MessagePosté le : 27 Juil 2006 16:45
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Voilà ce que j'ai et tu me diras si je peux ajouter ce que ton mod demande ou non.

Code :
      //
      // Author name search
      //
      if ( $search_author != '' )
      {
         $search_author = str_replace('*', '%', trim($search_author));

         if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < $board_config['search_min_chars'] ) )
         {
            $search_author = '';
         }
      }

      if ( $total_match_count )
      {
         if ( $show_results == 'topics' )
         {
            //
            // This one is a beast, try to seperate it a bit (workaround for connection timeouts)
            //
            $search_id_chunks = array();
            $count = 0;
            $chunk = 0;


Edit : J'ai essayé en plaçant :

Code :
            // DEBUT MOD Recherche par user_id
            if($s_user_id == 0)
            {
            // FIN MOD Recherche par user_id


Au dessus de :

Code :
         if( ( strpos($search_author, '%') !== false ) && ( strlen(str_replace('%', '', $search_author)) < $board_config['search_min_chars'] ) )
         {
            $search_author = '';
         }


Après avoir fini les modifications, lorsque je test en choisissant l'option 'Rechercher', je tombe sur ce message :
Parse error: syntax error, unexpected T_ELSE in /home/nova/public_html/suiko_rp/search.php on line 258

quand je regarde cette ligne, c'est la première accolade de :

Code :
               // DEBUT MOD Recherche par user_id
               }
                 else { $matching_userids = $s_user_id; }
               // FIN MOD Recherche par user_id


Voici les lignes autour de la 258 :

Code :
            $matching_userids = '';
            if ( $row = $db->sql_fetchrow($result) )
            {
               do
               {
                  $matching_userids .= ( ( $matching_userids != '' ) ? ', ' : '' ) . $row['user_id'];
               }
               while( $row = $db->sql_fetchrow($result) );
            }
            else
            {
               message_die(GENERAL_MESSAGE, $lang['No_search_match']);
            }

               // DEBUT MOD Recherche par user_id
               }
                 else { $matching_userids = $s_user_id; }
               // FIN MOD Recherche par user_id            
            
            $sql = "SELECT post_id
               FROM " . POSTS_TABLE . "
               WHERE poster_id IN ($matching_userids)";
            
            if ($search_time)
            {
               $sql .= " AND post_time >= " . $search_time;
            }
         }

         if ( !($result = $db->sql_query($sql)) )
         {
            message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
         }

         $search_ids = array();
         while( $row = $db->sql_fetchrow($result) )
         {
            $search_ids[] = $row['post_id'];
         }


Merci^^

Ps : j'ai installé ce fix pour pouvoir installer le mod "Postographie d'un membre depuis viewtopic" et quand je test, je retombe sur le même message d'erreur.

Je pense que ton fix n'est pas compatible avec phpBB 2.0.20 en l'état.
Revenir en haut Aller en bas
Hors ligne | Profil | MP
Dernière édition par Novaslash le 27 Juil 2006 17:00; édité 3 fois
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 27 Juil 2006 19:45
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Houlà... Là je suis pas en état... Je verrai ça ce week end ;) Je note dans ma checklist :o Mais à prière vue, en effet, il n'est pas directement compatible avec ce que tu m'indiques, faudra que je l'adapte...
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
Dernière édition par Darathor le 27 Juil 2006 19:45; édité 1 fois
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 29 Juil 2006 19:28
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Arf en fait j'avais déjà préparé la nouvelle version mais oublié de la poster :oups:

C'est fait ;)
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
Novaslash 
Membre

Inscrit le : 26 Juil 2006
Messages : 23
MessagePosté le : 30 Juil 2006 13:45
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Voilà, j'ai testé la nouvelle version et ça fonctionne sans soucis et j'ai, du même coup, pu faire fonctionne le mod de postographie d'un membre mais une question à propos de ce mod.

Au lieu que le nombre de post soit le lien vers la postographie, j'aurais préféré avoir un lien en dessous nommé simplement 'Postographie'. C'est plus voyant qu'un simple chiffre/nombre^^

J'ai essayé moi-même mais je n'ai pas pu, je tombe sur une erreur vu que je en connais pas trop le php.
Revenir en haut Aller en bas
Hors ligne | Profil | MP
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 30 Juil 2006 14:43
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Tu veux dire, genre ça ?
Code :
#
# Trouver
#
   $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : '';

#
# Remplacer par
#
   // DEBUT MOD Postographie d'un membre depuis viewtopic
   // -- DEBUT Enlevé
   // $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : '';
   // -- FIN Enlevé
   $poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ' : ' . $postrow[$i]['user_posts'] : '';
   $poster_posts .= '<br /><a href="' . append_sid("search.$phpEx?user_id" . "=" . $poster_id) . '" title="' . sprintf($lang['Search_user_posts'], $poster) . '" class="gensmall">' . $lang['Search_user_posts'] . '</a>';
   // FIN MOD Postographie d'un membre depuis viewtopic

Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
Dernière édition par Darathor le 30 Juil 2006 14:43; édité 1 fois
Novaslash 
Membre

Inscrit le : 26 Juil 2006
Messages : 23
MessagePosté le : 30 Juil 2006 15:44
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Oui, c'est tout à fait ça sauf que pour que ce soit plus propre, j'ai changé

. $lang['Search_user_posts'] . '</a>';

par Postographie</a>'; ^^

Merci de ton aide !
Revenir en haut Aller en bas
Hors ligne | Profil | MP
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 30 Juil 2006 16:32
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
De rien ;)

Pour que ce soit propre, faudrait ajouter "postographie" dans le fichier de langues :p
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
Novaslash 
Membre

Inscrit le : 26 Juil 2006
Messages : 23
MessagePosté le : 31 Juil 2006 15:58
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Je viens tout juste de le faire. C'est vrai que c'est plus propre et les clés de langues sont l'une des rares choses que je sais ajouté dans les fichiers d'un forum phpBB :p
Revenir en haut Aller en bas
Hors ligne | Profil | MP
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum