J'ai réussi à virer les .item et les .cat !!!!
C'était pas si compliqué...
maintenant, j'ai des liens qui ressemblent à ça:
http://monsite.com/sujet.1/generale.html pour les catégories
et
http://monsite.com/article.1/accueil.htmlVoici comme procéder:
tout d'abord, j'ai la version 1.63 de news avec seo.
Fichier .htaccesvoici à quoi ressemble mon fichier .htaccess:
RewriteRule ^article.([0-9.]+)/ modules/news/seo.php?seoOp=article.php&seoArg=$1
RewriteRule ^sujet.([0-9.]+)/ modules/news/seo.php?seoOp=index.php&seoArg=$1
RewriteRule ^fichier-pdf.([0-9.]+)/ modules/news/seo.php?seoOp=makepdf.php&seoArg=$1
RewriteRule ^imprimer-article.([0-9.]+)/ modules/news/seo.php?seoOp=print.php&seoArg=$1
Pour chaque type de document, il faut donc créer une directive. Dans l'exemple, seul les sujet et les articles sont gérés... les pdf, mailto et version imprimable ne sont pas encore gérés. mais ça va venir :)
Pour chaque directive, il faut tronquer un partie de la ligne et remplacer le seoOp=1$ par le script concerné dans News.
RewriteRule ^article\
.([a-z]+)\.([0-9.]+)/ modules/news/seo.php?seoOp=
$1&seoArg=$2
la partie en bleu doit être tronquée et la partie en orange doit être remplacée par le script php utilisé par news
dans les fichiers du module news, les
'article.cat' se rapporte à 'index.php',
'article.item' => 'article.php',
'article.print' => 'print.php',
'article.pdf' => 'makepdf.php'
Fichier /modules/news/seo.phpremplacez tout le contenu du fichier par ceci:
<?php
/*
* $Id: seo.php,v 1.5 2006/08/15 19:52:08 malanciault Exp $
* Module: SmartSection
* Author: Sudhaker Raj <http://xoops.biz>
* Licence: GNU
* Modifie par SOVStaline le 4 septembre 2009 pour ameliorer l'apparence de l'adresse
*/
$seoOp = $_GET['seoOp'];
$seoArg = $_GET['seoArg'];
if (empty($seoOp))
{
// SEO mode is path-info
/*
Sample URL for path-info
http://localhost/modules/news/seo.php ... n-i-turn-the-ads-off.html
*/
$data = explode("/",$HTTP_SERVER_VARS['PATH_INFO']);
$seoParts = explode('.', $data[1]);
$seoOp = $seoParts[0];
$seoArg = $seoParts[1];
// for multi-argument modules, where itemid and catid both are required.
// $seoArg = substr($data[1], strlen($seoOp) + 1);
}
$seoMap = array(
'cat' => 'index.php',
'item' => 'article.php',
'print' => 'print.php',
'pdf' => 'makepdf.php'
);
if (! empty($seoOp))
{
// module specific dispatching logic, other module must implement as
// per their requirements.
$newUrl = '/modules/news/' . $seoOp;
$_ENV['PHP_SELF'] = $newUrl;
$_SERVER['SCRIPT_NAME'] = $newUrl;
$_SERVER['PHP_SELF'] = $newUrl;
switch ($seoOp) {
case 'cat':
$_SERVER['REQUEST_URI'] = $newUrl . '?storytopic=' . $seoArg;
$_GET['storytopic'] = $seoArg;
break;
case 'item':
case 'print':
case 'pdf':
default:
$_SERVER['REQUEST_URI'] = $newUrl . '?storyid=' . $seoArg;
$_GET['storyid'] = $seoArg;
}
include( $seoOp);
}
exit;
?>
Maintenant, il faut modifier les autres fichiers du module NEWS
Chaque occurrence de
article.item doit être remplacée par
articleChaque occurrence de
article.cat doit être remplacée par
sujetChaque occurrence de
article.pdf doit être remplacée par
fichier-pdfChaque occurrence de
article.print doit être remplacée par
imprimer-articleceux qui ont la version originale où il y a "noticias.xxxx" au lieu de "article.xxxxx", évidemment, le texte à replacer sera "noticias.item", "noticias.cat" etc...
Citation :Note: vous pouvez remplacer article.item et article.cat par n'importe quoi, pourvu que que ce soit la même chose qui se retrouve dansle fichier .htaccess
TOUJOURS FAIRE UNE COPIE DE SAUVEGARDE!!!
La base de donnée n'est pas affectée.