WRInaute occasionnel
Bonjour,
Je suis en train de passer un site de joomla vers un truc fait maison parce que joomla est un peu trop rigide à mon goût malgré les millions de modules, plugins, templates....
Les liens dans la base de données sont du type :
et je veux avoir des liens du style
J'ai donc crée une fonction pour faire le travail parce que je suis un gros fainéant et que je voulais pas tout faire à la main (mais finalement, je me demande si ça ne m'aurait pas pris moins de temps)...
Voici ce que j'ai sorti de ma petite tête...
Cela marche pour le lien donné au dessus mais pas pour celui-ci :
Merci pour tous les commentaires qui pourraient me mettre sur la piste de l'origine de ce dysfonctionnement que je commence à considérer comme magique malgré mon esprit cartésien...
Je suis en train de passer un site de joomla vers un truc fait maison parce que joomla est un peu trop rigide à mon goût malgré les millions de modules, plugins, templates....
Les liens dans la base de données sont du type :
Code:
<a href="index.php?option=com_content&view=article&id=71:la-cellule-phtovoltaique&catid=47:fonctionnement-solaire&Itemid=64">photovoltaïques</a>
et je veux avoir des liens du style
Code:
<a href="/solaire/fonctionnement/71-la-cellule-phtovoltaique.html">photovoltaïques</a>
J'ai donc crée une fonction pour faire le travail parce que je suis un gros fainéant et que je voulais pas tout faire à la main (mais finalement, je me demande si ça ne m'aurait pas pris moins de temps)...
Voici ce que j'ai sorti de ma petite tête...
Code:
<?php
error_reporting(E_ALL);
session_start();
require_once('*****.php5'); //script d'appel de la base
$sql_article = "SELECT id, introtext
FROM `article`
GROUP BY id
ORDER BY `id` DESC
LIMIT 0 , 10";
$articles = mysql_query ($sql_article);
function renomme($match)
{
list($_unused, $lamerde, $idart, $lamerde2, $texte) = $match;
$sql_lien = "SELECT a.id, a.alias as aalias, t.alias as talias, c.alias as calias
FROM `article` a, themes t, categories c
WHERE t.id = a.sectionid
AND c.id = a.catid
AND a.id = " . $idart . "
GROUP BY a.id";
$liens = mysql_query ($sql_lien);
$lien = mysql_fetch_assoc($liens);
return '<a href="'.$lien['talias'].'/'.$lien['calias'].'/'.$lien['id'].'-'.$lien['aalias'].'.html">'.$texte.'</a>';
}
while ($article=mysql_fetch_assoc($articles))
{
$article['introtext'] = preg_replace_callback('#<a href="index\.php\?(.*)&id=(\d+):(.*)">(.*)</a>#', 'renomme', $article['introtext']);
echo utf8_decode($article['introtext']);
}
?>
Cela marche pour le lien donné au dessus mais pas pour celui-ci :
Code:
<a href="index.php?option=com_content&view=article&id=145:le-bois&catid=68:biomasse&Itemid=84">bois</a>
Merci pour tous les commentaires qui pourraient me mettre sur la piste de l'origine de ce dysfonctionnement que je commence à considérer comme magique malgré mon esprit cartésien...