PDA

Afficher la version complète : [PHP] Fil d'ariane



Foxysama
05/06/2008, 17h38
Bonjour,

Alors voilà, j'ai récupéré un petit script fait par des internautes (passionnés) que j'ai légèrement revu, mais qu'y ne fonctionne que pour afficher des noms de dossiers (et sous-dossier).
Voilà le code:


<?php

echo "Vous êtes ici ";
// Fonction fil d'ariane
function fildarianise(&$titres, $separateur=' >> ')
{
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'];
$retour = '' . $titres[0] . ' (')';
$chemin = explode("/", substr($_SERVER['PHP_SELF'], 1));

if (is_array($chemin)) foreach ($chemin as $k=>$v) if ($titres[$v] !== false)
{
$baseUrl .= "/$v";
$titre = isset($titres[$v]) ? $titres[$v] : $v;
$retour .= $separateur . '' . $titre . ' (')';
}
$retour .= '';
return $retour;
}

/* Modification des titres dans le fil d'ariane */
$titres = array(0=>false, 'stage'=>'Index', 'includes/tp.php'=>'Travaux Publiques', 'index.php'=>false);
echo fildarianise($titres);

?>


J'ai des URL de type "index.php?page=travaux-publiques"; comment récupérer la valeur affectée à 'page' pour l'afficher comme on le souhaite? (Je me doute bien que la valeur de la variable titres de l'index.php, ne doit pas être définit sur 'false' dans ce cas de figure..)

Merci pour votre aide, et si besoin d'infos complémentaire, ne pas hésiter. :P

salv-ice
05/06/2008, 21h53
Salut !

Toutes les variables passées par l'URL se trouvent dans un tableau nommé $_GET.

Pour récupérer la valeur de page, tu dois utiliser $_GET['page'].

Foxysama
09/06/2008, 11h49
Bonjour. :)

Donc la solution serait d'affecter à 'page' une variable prise dans une boucle avec incrémentation à chaque fois par pas de 1, de stocker leurs contenu dans des variables de services pour pouvoir les ré-utiliser dans le $titres ...? (Tout ça par la méthode $_GET)

:blink:

salv-ice
09/06/2008, 12h59
Je ne comprends pas bien ce que tu veux faire... :huh:

Tu ne peux normalement pas modifier le contenu du tableau $_GET, il sert uniquement à récupérer des variables passées dans l'URL...

Si tu dois garder des valeurs de page en page, tu peux utiliser le tableau $_SESSION, à condition d'avoir activé l'utilisation des sessions php.

Foxysama
09/06/2008, 14h31
D'accord.

Voilà ce que donne mon petit bout de code innabouti, d'un grand novice en PHP:


<?php

echo "Vous êtes ici ";
// Fonction fil d'ariane
function fildarianise(&$titres, $separateur=' >> ')
{
$baseUrl = 'http://'.$_SERVER['HTTP_HOST'];
$retour = '<span class="ariane">' . $titres[0] . ' (')';
$chemin = explode("/", substr($_SERVER['PHP_SELF'], 1));
$_GET['page'];

if (is_array($chemin)) foreach ($chemin as $k=>$v) if ($titres[$v] !== false)
{
$baseUrl .= "/$v";
$titre = isset($titres[$v]) ? $titres[$v] : $v;
$retour .= $separateur . '' . $titre . ' (')';
}
$retour .= '';
return $retour;
}

/* Modification des titres dans le fil d'ariane */
switch ($_GET['page']){
case "travaux-publiques": $nompage = 'Travaux Publiques'; break;
case "espace-vert": $nompage = 'Espace Vert'; break;
}
$titres = array(0=>false, 'stage'=>'Index', 'page'=>$nompage, 'index.php'=>false);
echo fildarianise($titres);

?>

J'ai du mal à faire en sorte de faire ressortir ce que le $_GET extrait, dans la table array...
Une idée? :) </span>

Foxysama
18/06/2008, 14h30
Personne n'aurait ne serait-ce qu'un semblant d'idée? :)