Le 6/02/03 21:06, Fil (fil@rezo.net) a ecrit:
...
Puis j'ai protégé mes squelettes privés par .htaccess :
Et enfin j'ai modifié le "inc-urls-standard.php3" afin qu'il écrive les
liens en fonction des deux mots clés :
...
function generer_url_article($id_article) {
$url = "article.php3?id_article=$id_article"; // par defaut
if (! $id_article) $id_article = 0;
$result = spip_query("SELECT id_mot FROM spip_mots_articles WHERE
id_article=$id_article");
$row = spip_fetch_array($result);...
if ($id_mot == 2) $url = "article_prv.php3?id_article=$id_article";
Là ça n'est pas bon, car si jamais tu ajoutes d'autres mots-clés dans ton
système tu ne pourras pas garantir que le premier spip_fetch_array() te
rende bien le mot-clé numéro 2 (s'il est présent).
...
Après une longue recherche (je ne suis pas un as du php, loin de là),
j'ai réussi à faire ça :
// Creation de la fonction prep_grep car presente seulement a partir de
PHP4
function preg_grep($pattern, $array) {
while(list($key, $val) = each($array)) {
if (preg_match($pattern, $val)) return $val;
}
}
function generer_url_article($id_article) {
$url = "article.php3?id_article=$id_article"; // par defaut
if (! $id_article) $id_article = 0;
$result = spip_query("SELECT id_mot FROM spip_mots_articles WHERE
id_article=$id_article");
$regexp = "/\b2\b/";
while ($row = spip_fetch_array($result)) :
if (preg_grep($regexp, $row)) {
$url = "article_prv.php3?id_article=$id_article";
}
endwhile;
if ($GLOBALS['recherche']) $url .=
"&var_recherche=".urlencode($GLOBALS['recherche']);
return $url;
}
C'est mieux comme ça ?
Sacha
*{8)