Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 22h38   #1
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : décembre 2011
Messages : 5
Points : 1
Points : 1
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 :
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>
Sansa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 01h52   #2
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : décembre 2011
Messages : 5
Points : 1
Points : 1
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 :
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>
Sansa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 13h26   #3
Membre Expert
 
Avatar de kolodz
 
Homme Patrick Kolodziejczyk
Étudiant
Inscription : avril 2008
Messages : 441
Détails du profil
Informations personnelles :
Nom : Homme Patrick Kolodziejczyk
Âge : 24
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : avril 2008
Messages : 441
Points : 1 559
Points : 1 559
Envoyer un message via MSN à kolodz
Tu pourrait stocke l'URL de ton fond.

Cela de permettra de réutiliser le même fond pour deux Item différent.
Code :
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.
__________________
N'oubliez pas de marquer vos discussions
Si une réponse vous a été utile pensez à voter Pour
Pensez à la javadoc
kolodz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2011, 09h20   #4
Nouveau Membre du Club
 
Cyrille Keller
Inscription : juillet 2010
Messages : 66
Détails du profil
Informations personnelles :
Nom : Cyrille Keller

Informations forums :
Inscription : juillet 2010
Messages : 66
Points : 39
Points : 39
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 :
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
shaihulud1979 est déconnecté   Envoyer un message privé Réponse avec citation 11
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h40.


 
 
 
 
Partenaires

Hébergement Web