Bonjour

j'ai modifié comme ceci le scipt car les codes à inserer dans ma page index.php sont dans un repertoire inc et mes pages sont en php.

<?php 
$pages=array(
   'resumer'=>'resumer',
   'video'=>'video',
);
if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
   include 'inc/' . $pages[$_GET['page']].'.php';
else
   include 'inc/resumer.php';
?>


Mes liens :

 <div id="sidebar-right">
    <dl id="srubrique2">
      <dt>Titre du Film</dt>
      <? if ($_GET['page']=='resumer') echo "<dd class=\"current\">" else echo "<dd>" ?>
      <a href="index.php?page=resumer" title="Resumé">Resum&eacute;</a>
      </dd>
      <? if ($_GET['page']=='video') echo "<dd class=\"current\">" else echo "<dd>" ?>
      <a href="index.php?page=video" title="video">Video</a>
      </dd>
    </dl>
  </div>


Les liens fonctionne le systeme est bon mais j'ai un probleme au niveau de l'affichage des liens Smiley smile
la page en aperçu affiche le code php au lieu de m'afficher le <dd class="current"> ou le <dd> tout simplement.
L'objectif etant d'afficher la class="current" sur la balise <dd> lorsque le lien a été cliqué et par defaut quant la page se charge mettre la class sur le bon <dd>

J'espere ne pas être trop compliqué dans mon explication et ne pas trop abuser vu les nombreuses modifications apportées au script d'origine.

merci
Modifié par abrecht (19 Feb 2007 - 11:52)
Modérateur
Bonjour abrecht,

Il me semble qu'il vaut mieux toujours commencer un bout de code PHP par <?php plutôt que <? car cette seconde écriture dépend de la configuration de ton serveur. Smiley smile
Bonjour Koala64,
j'ai mis <?php plutôt que <?
et le message d'erreur suivant intervient

[#]
Parse error: parse error, unexpected T_ELSE, expecting ',' or ';' in C:\Program Files\EasyPHP 2.0b1\www\monsite\index.php on line 97


j'imagine que j'ai probème de syntaxe sur

<? if ($_GET['page']=='resumer') echo "<dd class=\"current\">" else echo "<dd>" ?>

      <a href="index.php?page=resumer" title="Resumé">Resum&eacute;</a>

      </dd>
Eratum
j'imagine que j'ai probème de syntaxe sur

<?php if ($_GET['page']=='resumer') echo "<dd class=\"current\">" else echo "<dd>" ?>

      <a href="index.php?page=resumer" title="Resumé">Resum&eacute;</a>

      </dd>
Trop fort, ça marche uniquement si je clique sur un des boutons et que l'url comporte ?page= , <dd> ne s'affiche pas si la page s'appelle juste index.php

Par defaut cette rubrique s'appelle 'resumer', y a t-il un moyen de forcer le demarage de cette page sous le nom index.php?page=resumer

De maniere à avoir desuite une rubrique active.

Merci


Smiley biggrin Smiley biggrin
Modérateur
ben oui, tu peux définir une page par défaut... même sans passer de paramètre d'ailleurs. Smiley ravi

mmh.. Tiens, voici un exemple :
<?php
header('Content-type: text/html; charset=utf-8');
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
   <title>Exemple</title>
</head>

<body>
<?php

$pages = array('résumé' => 'resume',
               'vidéo' => 'video');

$message = 'La page demandée n\'existe pas.';
$param = 'page';
$insert;

function error($msg)
{
   echo $msg;
}

function insert($tab, $arg, $msg)
{
   if(isset($_GET[$arg]) && !empty($_GET[$arg]) && verif($tab, $arg, $msg))
      $insert = include 'inc/'.$_GET[$arg].'.php';
   return true;
}

function verif($tab, $param, $msg)
{
   foreach($tab as $key => $value)
      if($_GET[$param] === $value)
         return true;
   error($msg);
   return false;
}

if(!isset($_GET[$param]))
   try
   {
      $insert = include 'inc/'.$pages['résumé'].'.php';
      if(!$pages['résumé'])
      {
         $error = new Exception();
         throw $error;
      }
   } catch(Exception $e) { error($message); }
else
   insert($pages, $param, $message);

?>
<div id="sidebar-right">
   <dl id="srubrique2">
      <dt>Titre du Film</dt>
      <?php
         echo ($_GET['page'] === 'resume')?
         "\t\t".'<dd class="current">'."\n" : "\t\t".'<dd>'."\n";
      ?>
         <a href="index.php?page=resume" title="Resumé">Résumé</a>
      </dd>
      <?php
         echo ($_GET['page'] === 'video')?
            "\t\t".'<dd class="current">'."\n" : "\t\t".'<dd>'."\n";
      ?>
         <a href="index.php?page=video" title="video">Video</a>
      </dd>
   </dl>
</div>

</body>

</html>

Modifié par koala64 (18 Feb 2007 - 14:02)
merci pour ta page exemple, je n'en reviens pas, elle est plus complete que le tutoriel et va plus loin que ma demande, ça fonctione c'est génial.
Un grand merci Smiley smile
Modifié par abrecht (19 Feb 2007 - 00:24)