[dev] Zero Profile Link

Pour parler de code et de mods.
Les requêtes de patch, le partage de solutions et de d'astuces qui permettent d'optimiser phpBB2 et son référencement.

Modérateur: Modérateurs

Messagede dcz » Mer Jan 09, 2008 1:21 pm

Le membre-1.html, c'est juste l'url d'un membre dont l'id est -1 (membrexx.html), c'est l'id des anonymes dans phpBB2.

Normalement, ça se joue là dans viewforum.php :
Code: Tout sélectionner
      if ( $userdata['session_logged_in'] )
            {
         $topic_author = ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $topic_rowset[$i]['user_id']) . '">' : '';
         $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? $topic_rowset[$i]['username'] : ( ( $topic_rowset[$i]['post_username'] != '' ) ? $topic_rowset[$i]['post_username'] : $lang['Guest'] );
         $topic_author .= ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? '</a>' : '';
      }
      else
      {     
         $topic_author = ( $topic_rowset[$i]['user_id'] != ANONYMOUS ) ? $topic_rowset[$i]['username'] : ( ( $topic_rowset[$i]['post_username'] != '' ) ? $topic_rowset[$i]['post_username'] : $lang['Guest'] );     
      }


Et il vérifies bien que l'utilisateur n'est pas anonyme :
Code: Tout sélectionner
( $topic_rowset[$i]['user_id'] != ANONYMOUS )

Du coup, je vois rien à priori, faudrait fouiller.

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Publicité

Messagede cyril » Mer Jan 09, 2008 2:04 pm

Le contenu de mon viewforum.php au format txt est ici
Le passage que tu cites est bel et bien présent, ligne 642.

:idea: illumination, je commence à comprendre : le problème apparaît uniquement pour le dernier message posté, et pas pour l'auteur du topic, même si celui-ci est un invité. Il manquerait donc un test équivalent à celui que tu cites à insérer dans viewforum et index, de manière à tester non seulement l'auteur du premier message du topic (3e colonne), mais aussi l'auteur de la dernière réponse (5e colonne). Un truc à modifier dans la dernière instruction du mod ?
J'ai gagné un carambar, chef ?

Merci ^^

(PS : merci pour ces réponses rapides mais encore une fois, si tu as d'autres choses urgentes sur le feu, rien ne presse :wink: )
cyril
 
Messages: 10
Inscription: Lun Nov 05, 2007 10:55 am

Messagede freezbee » Mer Jan 09, 2008 4:39 pm

Alors voilà la soluce pour toi cyril :

Dans ton viewforum.php
Recherche :
Code: Tout sélectionner
         $last_post_author = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : ($userdata['session_logged_in']) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $topic_rowset[$i]['id2']) . '">' . $topic_rowset[$i]['user2'] . '</a>') : ($topic_rowset[$i]['user2']);


et remplace par :
Code: Tout sélectionner
$last_post_author = ( $topic_rowset[$i]['id2'] == ANONYMOUS ) ? ( ($topic_rowset[$i]['post_username2'] != '' ) ? $topic_rowset[$i]['post_username2'] . ' ' : $lang['Guest'] . ' ' ) : (($userdata['session_logged_in']) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $topic_rowset[$i]['id2']) . '">' . $topic_rowset[$i]['user2'] . '</a>') : ($topic_rowset[$i]['user2']));



Ensuite pour régler le problème de la page 404 quand on accéde à http://www.francocube.com/phpBB2/membre-1.html

Dans ton .htaccess
Recherche :
Code: Tout sélectionner
RewriteRule ^membre([0-9]+)\.html$ /profile.php?mode=viewprofile&u=$1 [QSA,L,NC]


Et remplace :
Code: Tout sélectionner
RewriteRule ^membre([0-9-]+)\.html$ /profile.php?mode=viewprofile&u=$1 [QSA,L,NC]
freezbee
PR0
PR0
 
Messages: 69
Inscription: Lun Déc 10, 2007 3:20 pm

Messagede cyril » Jeu Jan 10, 2008 8:29 am

Merci freezbee!
Ca se jouait à une paire de parenthèses, finalement... La ligne du .htaccess devient superflue du moment où tous les liens de ce type sont supprimés, mais autant faire les choses propres.

Pour info, il convient de faire la même modif' pour que ça marche aussi dans index.php après l'install donnée par Vee, pour la même raison:

Code: Tout sélectionner
#
#-----[ OPEN ]------------------------------------------
#
index.php

#
#-----[ FIND ]------------------------------------------
#
$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : ($userdata['session_logged_in']) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ') : ($forum_data[$j]['username'] . ' ');

#
#-----[ REPLACE WITH ]------------------------------------------
#

$last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : (($userdata['session_logged_in']) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '=' . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ') : ($forum_data[$j]['username'] . ' '));


Voilà voilà, merci encore pour votre efficacité :D

cyril
cyril
 
Messages: 10
Inscription: Lun Nov 05, 2007 10:55 am

Messagede eric6779 » Jeu Jan 10, 2008 6:30 pm

Bonsoir,


serait t'il possible d'avoir une adaptation pour le MOD rank color system de reddog ?

Merci :wink:
eric6779
PR1
PR1
 
Messages: 171
Inscription: Ven Déc 22, 2006 2:28 am

Messagede freezbee » Ven Jan 11, 2008 9:28 am

J'ai le mode rank color system de reddog et j'ai adapté ça.

Il suffit de rajouter à la fin de chaque code :

Code: Tout sélectionner
'<span ' . $style_color . '>' . ******* . '</span>'


Exemple pour la première ligne :

Code: Tout sélectionner
               $forum_moderators[$row['forum_id']][] = ($userdata['session_logged_in']) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '">' . $row['username'] . '</a>') : ($row['username']);


Ca donne :

Code: Tout sélectionner
      $forum_moderators[$row['forum_id']][] = ($userdata['session_logged_in']) ? ('<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color . '>' . $row['username'] . '</a>') : ('<span ' . $style_color . '>' . $row['username'] . '</span>');



Il faut faire ça à chaque ligne.

Mais il faut que la variable du style, corresponde, comme ici c'est :
Code: Tout sélectionner
$style_color


Si je prend un autre exemple :

Code: Tout sélectionner
      'NEWEST_USER' => ($userdata['session_logged_in']) ? (sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=$newest_uid") . '"' . $newest_color . '>', $newest_user, '</a>')) : (sprintf($lang['Newest_user'], '' . '<span ' . $newest_color . '>', $newest_user, '</span>' . '')),


Ici la variable du style c'est :
Code: Tout sélectionner
$newest_color


Ce n'est pas sûr que tu comprennes, j'aurais pu faire l'adaptation entière, mais je n'ai pas trop le temps là, surtout que mon code et encore un peu plus différent avec le mod Userlist
freezbee
PR0
PR0
 
Messages: 69
Inscription: Lun Déc 10, 2007 3:20 pm

Messagede Novaslash » Sam Mai 10, 2008 1:24 pm

Je viens d'installer ce mod qui semble bien fonctionner. le seul hic est que j'utilise le mod Simple subforums. J'ai lu la modification à effectué dans la 2ème page mais ce n'est pas, apparemment, la même version.

J'ai essayé malgré tout d'adapter mais j'ai une erreur.

Voici le code dans viewforum

Code: Tout sélectionner
$last_post .= ( $subforum_data[$j]['user_id'] == ANONYMOUS ) ? $lang['by'] . '&nbsp;' . ( ($subforum_data[$j]['post_username'] != '' ) ? $subforum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : $lang['by'] . '&nbsp;' . '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $subforum_data[$j]['user_id']) . '">' . $subforum_data[$j]['username'] . '</a> ';


J'ai de plus installer le mod pour avoir le dernier sujet sur l'index ainsi que pour les sous-forums. Voici les codes :

index.php :

Code: Tout sélectionner
                        // set length of topic title to 25 characters
                        $lttitle = preg_replace($html_entities_match, $html_entities_replace, (strlen($lttitle) > 23) ? substr($lttitle,0,23) . '...' : $lttitle);

                        $last_post .= $lang_in . '&nbsp;' . '<a title="' . $altlttitle . '" href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $forum_data[$j]['forum_last_post_id']) . '#' . $forum_data[$j]['forum_last_post_id'] . '">' . $lttitle . '</a><br />';

                        $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? $lang['by'] . '&nbsp;' . ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : $lang['by'] . '&nbsp;' . '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';
                        //-- MOD END: Last Topic Title on Index


viewforum.php

Code: Tout sélectionner
            // set length of topic title to 25 characters
            $lttitle = preg_replace($html_entities_match, $html_entities_replace, (strlen($lttitle) > 25) ? substr($lttitle,0,25) . '...' : $lttitle);

            $last_post .= $lang_in . '&nbsp;' . '<a title="' . $altlttitle . '" alt="' . $altlttitle . '" href="' . append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $subforum_data[$j]['forum_last_post_id']) . '#' . $subforum_data[$j]['forum_last_post_id'] . '">' . $lttitle . '</a><br />';
            //-- MOD END: Last Topic Title on subforum Index


Merci !
Novaslash
 
Messages: 41
Inscription: Lun Mai 05, 2008 9:30 pm

Messagede dcz » Mer Mai 14, 2008 11:26 am

Alors, remplaces :
Code: Tout sélectionner
$last_post .= ( $subforum_data[$j]['user_id'] == ANONYMOUS ) ? $lang['by'] . '&nbsp;' . ( ($subforum_data[$j]['post_username'] != '' ) ? $subforum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : $lang['by'] . '&nbsp;' . '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $subforum_data[$j]['user_id']) . '">' . $subforum_data[$j]['username'] . '</a> ';


Par :

Code: Tout sélectionner
$last_post .= ( $subforum_data[$j]['user_id'] == ANONYMOUS ) ? $lang['by'] . '&nbsp;' . ( ($subforum_data[$j]['post_username'] != '' ) ? $subforum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : $lang['by'] . '&nbsp;' . ($userdata['session_logged_in'] ? '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $subforum_data[$j]['user_id']) . '">' . $subforum_data[$j]['username'] . '</a> ' : '<b>' . $subforum_data[$j]['username'] . '</b> ');


dans viewforum.php, puis :

Code: Tout sélectionner
                        $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? $lang['by'] . '&nbsp;' . ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : $lang['by'] . '&nbsp;' . '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ';


par :

Code: Tout sélectionner
                        $last_post .= ( $forum_data[$j]['user_id'] == ANONYMOUS ) ? $lang['by'] . '&nbsp;' . ( ($forum_data[$j]['post_username'] != '' ) ? $forum_data[$j]['post_username'] . ' ' : $lang['Guest'] . ' ' ) : $lang['by'] . '&nbsp;' . ($userdata['session_logged_in'] ?'<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . '='  . $forum_data[$j]['user_id']) . '">' . $forum_data[$j]['username'] . '</a> ': '<b>' . $forum_data[$j]['username'] . '</b> ');


dans index.php.

Le dernier bout de code que tu postes ne fabrique pas de liens de profiles, donc rien à changer ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21219
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede Novaslash » Mer Mai 14, 2008 12:29 pm

C'est impeccable, ça fonctionne très bien.

Et pour le 2ème point, j'étais un peu à l'ouest à ce moment là mais bon, enter la réécriture d'url de mon site/forum, plus les mods SEO du forum, plus des modifs ci et là sur mon forum, je dis parfois des bêtises lol.
Novaslash
 
Messages: 41
Inscription: Lun Mai 05, 2008 9:30 pm

Précédente

Retourner vers Mods et Code phpBB2

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité