Création des liens plus valides

Le forum de support du mod de réécriture d'URL pour phpBB3 en version Avancée.
Ce mod de réécriture d'url injecte les titres forums et des sujets dans leurs URLs.

Modérateur: Modérateurs

Création des liens plus valides

Messagede adn » Lun Juil 06, 2009 6:32 am

Bonjour,

Je viens de basculer sur la version 3.0.5 du forum. J'utilisais un bout de code pour générer des liens en dehors du forum qui n'est plus valide sur cette nouvelle version. Seriez-vous me dire ce qui coince ?
Je constate qu'il manque "txxxx" dans les liens créés du type -www.domaine.com/mon-lien.html :

Code: Tout sélectionner
define('IN_PHPBB', TRUE);

$phpbb_root_path = '../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$user->setup('', $forum_data['forum_style']);
   
$title = utf8_decode(urldecode(....ma recherche....));
$title = addslashes($title);
$sql = "SELECT f.forum_id, f.forum_name, u.user_id, u.username, u.user_colour, t.topic_replies_real, t.topic_replies, t.topic_title, t.forum_id, t.topic_id, t.topic_last_post_time, t.topic_type, t.topic_last_post_id, f.forum_name, t.topic_last_poster_name
        FROM ".TOPICS_TABLE." t           
        LEFT JOIN phpbb3_users u ON u.user_id = t.topic_poster       
        LEFT JOIN ".FORUMS_TABLE." f ON f.forum_id = t.forum_id
        WHERE MATCH (t.topic_title) AGAINST('$title') > 4.7
        GROUP BY t.topic_id
        ORDER BY rand()
        LIMIT 5";
$result = $db->sql_query($sql);
    // Boucle d'affichage du post
    echo '<ul>';
    while($topic_data = $db->sql_fetchrow($result))
    {
        // Données du topic
        $topic_title = $topic_data['topic_title'];
        $topic_replies = $topic_data['topic_replies'];
        $topic_replies_real = $topic_data['topic_replies_real'];
        $forum_id = $topic_data['forum_id'];
        $topic_id = $topic_data['topic_id'];
        $post_time = $topic_data['topic_last_post_time'];
        $forum_name = $topic_data['forum_name'];
        $topic_last_post_id = $topic_data['topic_last_post_id'];
        $topic_last_poster_name = $topic_data['topic_last_poster_name'];
        $replies = ($auth->acl_get('m_approve', $forum_id)) ? $topic_replies_real : $topic_replies;
        $start = floor(($replies) / $config['posts_per_page']) * $config['posts_per_page'];
     
        // www.phpBB-SEO.com SEO TOOLKIT BEGIN
        if ( empty($phpbb_seo->seo_url['topic'][$topic_id]) )  {
            if ($line[$i]['topic_type'] == POST_GLOBAL)
            {
                $phpbb_seo->seo_opt['topic_type'][$topic_id] = POST_GLOBAL;
            }
           $phpbb_seo->seo_censored[$topic_id] = $topic_title;
           $phpbb_seo->seo_url['topic'][$topic_id] = $phpbb_seo->format_url($phpbb_seo->seo_censored[$topic_id]);
        }
        if ( empty($phpbb_seo->seo_url['forum'][$forum_id]) ) {
            $phpbb_seo->seo_url['forum'][$forum_id] = $phpbb_seo->set_url($line[$i]['forum_name'], $forum_id, $phpbb_seo->seo_static['forum']);
        }
        // www.phpBB-SEO.com SEO TOOLKIT END

        $post_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $topic_id . '&amp;f=' . $forum_id . '&amp;start=' . $start ) . '#p' . $topic_last_post_id;
        $topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $topic_id . '&amp;f=' . $forum_id );
   
        //On affiche
        $topic_title = utf8_decode($topic_title);
        echo '<li><a href="'.$topic_url.'" title="'.$topic_title.'">'.ucfirst(strtolower($topic_title)).'</a></li>';
    }
    echo '</ul>';
$db->sql_freeresult($result);
unset($topic_data);
adn
PR0
PR0
 
Messages: 91
Inscription: Mar Mar 25, 2008 3:30 pm

Publicité

Re: Création des liens plus valides

Messagede dcz » Dim Juil 12, 2009 8:18 am

Oui, la méthode a un peu changé depuis la dernière mise à jour. Donc, dans ton script il faudrait remplacer :
Code: Tout sélectionner
$sql = "SELECT f.forum_id, f.forum_name, u.user_id, u.username, u.user_colour, t.topic_replies_real, t.topic_replies, t.topic_title, t.forum_id, t.topic_id, t.topic_last_post_time, t.topic_type, t.topic_last_post_id, f.forum_name, t.topic_last_poster_name

par :
Code: Tout sélectionner
$sql = "SELECT f.forum_id, f.forum_name, u.user_id, u.username, u.user_colour, t.topic_replies_real, t.topic_replies, t.topic_title, t.forum_id, t.topic_id, t.topic_last_post_time, t.topic_type, t.topic_last_post_id, f.forum_name, t.topic_last_poster_name" .  (!empty($phpbb_seo->seo_opt['sql_rewrite']) ? ', t.topic_url ' : ' ') . "

et :
Code: Tout sélectionner
        // www.phpBB-SEO.com SEO TOOLKIT BEGIN
        if ( empty($phpbb_seo->seo_url['topic'][$topic_id]) )  {
            if ($line[$i]['topic_type'] == POST_GLOBAL)
            {
                $phpbb_seo->seo_opt['topic_type'][$topic_id] = POST_GLOBAL;
            }
           $phpbb_seo->seo_censored[$topic_id] = $topic_title;
           $phpbb_seo->seo_url['topic'][$topic_id] = $phpbb_seo->format_url($phpbb_seo->seo_censored[$topic_id]);
        }
        if ( empty($phpbb_seo->seo_url['forum'][$forum_id]) ) {
            $phpbb_seo->seo_url['forum'][$forum_id] = $phpbb_seo->set_url($line[$i]['forum_name'], $forum_id, $phpbb_seo->seo_static['forum']);
        }
        // www.phpBB-SEO.com SEO TOOLKIT END

par :
Code: Tout sélectionner
         // www.phpBB-SEO.com SEO TOOLKIT BEGIN
         $phpbb_seo->set_url($line[$i]['forum_name'], $forum_id, $phpbb_seo->seo_static['forum']);
         $phpbb_seo->prepare_iurl($line[$i], 'topic', $line[$i]['topic_type'] == POST_GLOBAL ? $phpbb_seo->seo_static['global_announce'] : $phpbb_seo->seo_url['forum'][$forum_id]);
         // www.phpBB-SEO.com SEO TOOLKIT END


;)
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: 21382
Inscription: Ven Avr 28, 2006 9:03 pm


Retourner vers Réécriture URL Avancée

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


 
cron