[PHP] Utiliser arrays pour aléger mon code

Résolu/Fermé
saith Messages postés 1 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 30 novembre 2007 - 30 nov. 2007 à 17:10
 saith - 2 déc. 2007 à 16:36
Bonjour tout le monde,
Je suis en trein de développer un site perso et j'aurais besoin de votre aide

Je dispose de plusieurs sections sur mon site : Interfaces de sites, Créas de pubs, Opérations Marketing, Mailings, Integrations, Projets personnels.

Selon la section sur laquelle l'utilisateur se trouve, 2 choses doivent changer : le nom de la section doit être affiché dans le titre de la page, et l'image du menu correspondant au nom de la section doit changer pour que le titre soit mis en avant par rapport à ceux des autres sectons (pour chaque section l'image normale a pour nom intitulé_de_la_section-off.jpg et la version "voyante" se nonme intitulé_de_la_section-on.jpg).

J'essai de créer un code qui me permettra d'obtenir ces deux changement automatiquement, à condition que je déclare la section dans la variable $section au début de mon code. par exemple si l'on est dans la section "créas de pub" je mettrais :
 $section ='creas';


Voici donc le code php que j'ai créé :
// J'initialise le statu de toutes les sections à off
$interfaces_statu = 'off';
$creas_statu = 'off';
$operations_statu = 'off';
$mailings_statu = 'off';
$integrations_statu = 'off';
$projets_statu = 'off';

if($section == 'interfaces') { // si section a pour valeur "interface"...
$section_title ='Intérfaces de sites'; // ...alors le titre a mettre dans la balise title est "Intérface de sites"
$interfaces_statu = 'on'; // le statu de la section interface est donc on
}
elseif($section == 'creas') {
$section_title ='Créas de pubs';
$creas_statu = 'on';
}
elseif($section == 'operations') {
$section_title ='Opérations Marketing';
$operations_statu = 'on';
}
elseif($section == 'mailings') {
$section_title ='Mailings';
$mailings_statu = 'on';
}
elseif($section == 'integrations') {
$section_title ='integrations';
$integrations_statu = 'on';
}
elseif($section == 'projets') {
$section_title ='Projets personnels';
$projets_statu = 'on';
}


Bien sur j'indique qu'il faut afficher $section_title dans la balise title, après le nom de mon site.
Je récupère également le statu des sections pour pouvoir afficher l'image "voyante" (c'est a dire l'image contenant le mot 'on') pour la section dans

laquelle on est, et l'image normale (celle avec le mot 'off') pour les autres sections:

<a href="#"><img src="/images/layout/menu/bt-interfaces-<?php echo $interfaces_statu; ?>.jpg" alt="Interfaces de sitesn"></a>
<a href="#"><img src="/images/layout/menu/bt-creas-<?php echo $creas_statu; ?>.jpg" alt="Interfaces de sitesn"></a>
......


Bon tout cela marche correctement, mais le code est très lourd, et en plus si je doit modifier le nom et le nombre de section (ce qui va arriver puisuq'ilss

ne sont que temporaire), ce sera laborieux à faire.
je sais que je peut alléger le code en utilisant des tableaux et des boucles histoire de ne as remettre la même chose plusieurs fois. Mais je ne sas pas trop comment procéder. est ce que quelqu'un pourrais m'aider s'il vous plait? j'ai regardé des cours de php parlant des tableau mais je ne sais pas trop comment l'exploiter dans le cas présent.
Je vous remerci d'avance

2 réponses

bonsoir,

utilises des switch case

switch ($section ){
   case 'interfaces':
        $section_title ='Interfaces de sites'; // attention remplace les caractères accentués par leur code html  &eacute;  etc...
         $interfaces_statu = 'on'; 
    break;
  case  'creas':
     $section_title ='Créas de pubs';
       $creas_statu = 'on';
     break;


case.....  etc



}

0
Je te remercie
0