Topic Title Highlighter + Rewrite Avancé et Zero Duplicate

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

Topic Title Highlighter + Rewrite Avancé et Zero Duplicate

Messagede freezbee » Mar Jan 01, 2008 3:18 pm

Bonjour,

J'ai des duplicates malgré le Zero Duplicate et à cause du mod Topic Title Highlighter.

Quand je suis sur une page viewforum avec des topics tagés, l'url est bien rewrité (j'ai installé ce qu'il faut pour enlever tout les tags) et quand je suis sur un topic, l'url du topic et rewrité sauf ce qui est entre les tags.

exemple :
pour le topic affiché dans viewforum :
[demande] De Mini ban

L'URL rewrité est :
demande-de-mini-ban-txxxxx.html


Mais dans la page viewtopic l'URL devient :

de-mini-ban-t71116.html

Et la redirection 301 se fait vers cette dernière quand on met un faux titre à l'url sauf si l'URL est :
demande-de-mini-ban-txxxxx.html

Dans ce cas, pas de redirection.
Donc Duplicate.

J'ai cherché mais je n'ai rien trouvé pour résoudre ce problème.


Merci de votre aide.
freezbee
PR0
PR0
 
Messages: 69
Inscription: Lun Déc 10, 2007 3:20 pm

Publicité

Messagede freezbee » Mer Jan 09, 2008 10:19 am

Hier je suis tombé sur un site avec le mod Topic Title Highlighter + le Zero Duplicate et il n'avait pas ce problème. Bizarre...

Je fournit mon viewtopic.php ici, parce que ça se passe la dedans mon problème, je pense :

http://www.zshare.net/download/63348877d2fbbc/
freezbee
PR0
PR0
 
Messages: 69
Inscription: Lun Déc 10, 2007 3:20 pm

Messagede dcz » Mer Jan 09, 2008 12:47 pm

Non, c'est "normal". Le mod valide les url qui contiennent l'uri, donc si tu ajoutes quelque chose au début, ça valide.

C'est sûr que dans ton cas, c'est un peu gênant.

Dans viewtopic.php, remplaces :
Code: Tout sélectionner
if ( $phpbb_seo->do_redir || ( $postorder_redir &&  strpos($uri, 'watch=') === FALSE && strpos($uri, $phpbb_seo->page_url) === FALSE )  ) {


par :
Code: Tout sélectionner
if ( $phpbb_seo->do_redir || ( $postorder_redir &&  strpos($uri, 'watch=') === FALSE && strpos( $phpbb_seo->seo_path['phpbb_url'] . ltrim(str_replace( $phpbb_seo->seo_path['phpbb_script'] , '', $uri), '/'), $phpbb_seo->seo_path['phpbb_url'] . $phpbb_seo->page_url) === FALSE )  ) {


Ça doit le faire.

++
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 freezbee » Mer Jan 09, 2008 1:28 pm

Ah oui, donc là le code que tu viens de me donner rend le zéro duplicate encore plus performant.
Car sans ça ont peut avoir autant de duplicate que l'on veut en rajoutant des trucs au début.

Merci.

Il me reste plus qu'à trouver comment injecter dans l'URL le titre entier du topic, tag inclut, dans viewtopic.php comme ça le fait dans viewforum.php...
Dernière édition par freezbee le Mer Jan 09, 2008 2:20 pm, édité 1 fois.
freezbee
PR0
PR0
 
Messages: 69
Inscription: Lun Déc 10, 2007 3:20 pm

Messagede freezbee » Mer Jan 09, 2008 1:40 pm

Bon beh voilà tout est comme je voulais.

J'ai mis un peu plus bas le code suivant :

Code: Tout sélectionner
// Define censored word matches
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
$topic_title = ( count($orig_word) ) ? preg_replace($orig_word, $replacement_word, $topic_title) : $topic_title;
if ( !isset($phpbb_seo->seo_url['topic'][$topic_id]) ) {
   $phpbb_seo->seo_url['topic'][$topic_id] = $phpbb_seo->format_url($topic_title);
}
$uri = $phpbb_seo->seo_req_uri();
$postorder_redir = empty($_POST['postorder']) && empty($_GET['postorder']);
if ($_GET['postorder'] == 'asc'  || $_POST['postorder'] == 'asc' ) {
   $postorder_redir = TRUE;
}
$phpbb_seo->seo_start( $start, $board_config['posts_per_page'] );
$phpbb_seo->page_url = $phpbb_seo->seo_url['topic'][$topic_id] . $phpbb_seo->seo_delim['topic'] . $topic_id . $phpbb_seo->start . $phpbb_seo->seo_ext['topic'];
$phpbb_seo->seo_cond(!$userdata['session_logged_in'] && ( strpos($uri, "sid=" ) !== FALSE ) );
if ( $phpbb_seo->do_redir || ( $postorder_redir &&  strpos($uri, 'watch=') === FALSE && strpos( $phpbb_seo->seo_path['phpbb_url'] . ltrim(str_replace( $phpbb_seo->seo_path['phpbb_script'] , '', $uri), '/'), $phpbb_seo->seo_path['phpbb_url'] . $phpbb_seo->page_url) === FALSE )  ) {
   $phpbb_seo->seo_redirect( $phpbb_seo->seo_path['phpbb_url'] . $phpbb_seo->page_url . ( ( $post_id ) ? "#$post_id" : "" ) );
}
// www.phpBB-SEO.com SEO TOOLKIT END


Juste après la fin du code du mod Topic Title Highlighter

Code: Tout sélectionner
//Important Announces, starting by vertical bar |
if ( $replace == $topic_title )
{
   $replace = preg_replace( $search_notifications, $notifications . "\${1}" . $end_style . "\${2}", $topic_title );
   $replace = ereg_replace("$notifications\|","$notifications ",$replace);
   $replace = ereg_replace("\|$end_style"," $end_style",$replace);
}

//News, starting by sharp #
if ( $replace == $topic_title )
{
   $replace = preg_replace( $search_news, $news . "\${1}" . $end_style . "\${2}", $topic_title );
   $replace = ereg_replace("$news#","$news ",$replace);
   $replace = ereg_replace("#$end_style"," $end_style",$replace);
}

$topic_title = $replace;



Pour voir ce que ça donne : http://www.unicornis.org/echantillons-e ... -f125.html


Merci dcz
freezbee
PR0
PR0
 
Messages: 69
Inscription: Lun Déc 10, 2007 3:20 pm

Messagede dcz » Mer Jan 09, 2008 2:16 pm

C'est une solution.

;)


++
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


Retourner vers Mods et Code phpBB2

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

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


 
cron