IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utiliser un switch pour changer background selon Itemid


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    décembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : décembre 2011
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Utiliser un switch pour changer background selon Itemid
    Bonsoir à tous,

    Je suis des cours de webmaster à la fac et je voulais me créer un site sous joomla pour m'entrainer. J'ai réussi à le faire mais comme mon fond change à chaque page, j'ai du faire un template par page, ce qui n'est pas très propre. J'ai commencé les cours de php aussi je voulais changer mon index.php pr modifier les background et publier certains modules avec un switch relié à l'item id de la page demandée. Je bloque depuis plusieurs jours, pouvez-vous me dire ce qui vous semble faux ou me conseiller un moyen de parvenir au même résultat?
    P.S.: Je suis débutante, et je m'y perds avec les $this (jquery?), alors toute aide sera vraiment précieuse!
    P.P.S: Oui j'ai posté sur des forums pour joomla, mais les gens ne sont soit pas enclins à répondre, soit n'aime pas mettre les mains dans le cambouis...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <body>
     
    <div id="container">	
    	<div id="haut">
    			<div id="logo">
    				<h1><a href="http://www.kalianey.fr" accesskey="1"><img src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;?>/images/logo.png" alt="<?php echo JText::_('Kalianey Developpement - Page d\'accueil'); ?>" width="70" height="67" /></a></h1>	
    			</div>
    			<div id="titre">
    				<jdoc:include type="modules" name="header" />
    			</div>
    		</div>
     
    	<div id="contenu" <?php
    	$page =  $_GET['Itemid']; 
    	switch($page){
    	 case 11:
    		echo " class='accueil' ";
    		echo "<div id='accroche_accueil'>
    			<div id='presentation'><jdoc:include type='modules' name='right' /></div>
    		</div>";
    	 break;
     
    	 case 2:
    		echo "class='competences'";
    		echo "<div id='environnements'><jdoc:include type='modules' name='user1' />
    		</div>";
     
    		echo "<div id='navigateurs'><jdoc:include type='modules' name='user2' />
    		</div>";
     
    		echo "<div id='post-it'><jdoc:include type='modules' name='right' />
    		</div>";
     
    		echo "<div id='dock'><jdoc:include type='modules' name='user3' />
    		</div>";
    	 break;
     
    	 case 7:
    		echo " class='credits' ";
    	 break;
     
    	 case 3:
    		echo " class='realisation' ";
    	 break;
     
    	 case 4:
    		echo " class='mecontacter' ";
    	 break;
     
    	 case 5:
    		echo " class='credits' ";
    	 break;
     
    	 default:	
    	 echo " class='accueil' ";
    	 echo "<div id='accroche_accueil'><div id='presentation'><jdoc:include type='modules' name='right' /></div>
    		</div>";
     
    	}
    	?>>
    	</div>
     
     
    	<div id="bas">	
    		<div id="menu_principal">
    			<jdoc:include type="modules" name="bottom" />
    		</div>
    	</div>
     
    </div>
     
    </body>

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    décembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : décembre 2011
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Bon au final après plusieurs heures de galère j'ai trouvé une solution qui marche, par contre je pense qu'on peut faire plus simple au lieu de lister id par id, faire une boucle qui récupère le chiffre et le compare automatiquement.. M'enfin je suis arrivée au bout de ce que je suis capable de faire là je crois

    Je poste mon code si ca peut aider un jour (et au cas où quelqu'un a une idée pour l'améliorer^^):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <!-- On insère le script php pour générer chaque page avec son propre background nommé fond(numero de l'id) stocké dans images/stories associé à l'id de la page -->
     
    	<?php 
    	$itemid = JRequest::getVar('Itemid');	
    	if ($itemid==1) { 
    	?>		
    		<div class="contenu" style="background: url(images/stories/fond<?php echo($itemid); ?>.jpg) 0 0 no-repeat;">
    		<?php echo "<div class='accueil'></div>";?>
    		</div>
     
     
    	<?php } else { ?>
     
    	<?php } ?>
     
     
     
    	<?php 
    	$itemid = JRequest::getVar('Itemid');	
    	if ($itemid==2) { 
    	?>		
    		<div class="contenu" style="background: url(images/stories/fond<?php echo($itemid); ?>.jpg) 0 0 no-repeat;">
    		<?php echo "<div class='competences'></div>";?>
    		</div>
     
     
    	<?php } else { ?>
     
    	<?php } ?>	
     
     
    <!-- Partie contenant les modules propres à chaque page appelé dans plus haut dans le php -->
     
    		<div class="accueil">
    			 <jdoc:include type="modules" name="user1" />			 
    		</div>
     
    		<div class="competences" >
    		<jdoc:include type="modules" name="user2" />
    		</div>
     
     
    	</div>
     
     
    	<div id="bas">	
    		<div id="menu_principal">
    			<jdoc:include type="modules" name="bottom" />
    		</div>
    	</div>
     
     
    </div>

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2008
    Messages
    2 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : avril 2008
    Messages : 2 208
    Points : 8 313
    Points
    8 313
    Billets dans le blog
    51
    Par défaut
    Tu pourrait stocke l'URL de ton fond.

    Cela de permettra de réutiliser le même fond pour deux Item différent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<?php 
    	$itembackground = JRequest::getVar('itembackground');	
    	if ($itembackground !=null) { 
    	?>		
    		<div class="contenu" style="background: url(<?php echo $itembackground; ?>) 0 0 no-repeat;"> 
    	<?php }
    Dans l'absolu je te conseil de passer par une CSS différente pour chaque cas. Et donc n'avoir qu'à charger la bonne CSS dans la partie Header.
    Cela évite la duplication des balise "style" et des witch/echo.
    Tu réalise ton contenu d'un coté, tu gère sa présentation/style de l'autre.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2010
    Messages : 76
    Points : 62
    Points
    62
    Par défaut
    ma question va sembler con, mais pourquoi te casser la tête avec un switch pour un background ? Vu que tu comptes utiliser un background unique par id, renomme tes fichiers avec un truc du style background1.jpg, background2.jpg, etc... et utilises une variable php pour le définir, genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <body background=" <? echo "background".$itemid.".jpg"; ?> " >
    enfin bon c'est une idée, évidemment cela ne marche pas si un background sert pour plusieurs ID

Discussions similaires

  1. Réponses: 23
    Dernier message: 28/05/2014, 19h35
  2. Réponses: 5
    Dernier message: 12/03/2008, 17h38
  3. changer de background selon parametre URL
    Par huynhi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 17/10/2006, 16h18
  4. [VB.NET] Composant utilisée pour changer donnée access
    Par moust dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2005, 11h44
  5. Recupérer un argument et l'utiliser pour changer le bgcolor
    Par VincenzoR dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/01/2005, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo