Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 21/01/2011, 20h45   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
Par défaut Souci avec plusieurs inclusions php

Salut,

Ça fait bien 1 h que je fouille sur les forums pour essayer de trouver une discussion me permettant de régler mon problème mais je ne trouve rien.

J'espère que vous pourrez m'aider.

Je suis débutante en php et j'ai un souci avec des include multiples sur ma page php....je m'explique

J'utilise une galerie php (sans base de données) que j'ai trouvé sur internet et adapté à mon site.
Comme j'ai plusieurs pages et plusieurs séries de photos à présenter, j'ai créé plusieurs galeries. (par contre, les fichiers js et css sont communs à toutes mes galeries ainsi que mon gallery_include.php) Généralement, je n'utilise qu'une galerie par page et tout fonctionne correctement. Mon problème se présente lorsque je tente de refaire un include pour insérer une seconde galerie dans la même page!

Du coup, mes images d'arrière-plan qui défilaient disparaissent et la seconde galerie ne s'affiche même pas!

Lorsque j'ouvre la page source sur internet ça m'écrit ça

Citation:
Fatal error</b>: Cannot redeclare build_gallery() (previously declared in /Applications/XAMPP/xamppfiles/htdocs/YAN/yan4/galeries/gallery_airbrush_caro.php:27) in <b>/Applications/XAMPP/xamppfiles/htdocs/YAN/yan4/galeries/gallery_airbrush_mur.php</b> on line <b>83</b><br />

Pour être plus claire voici mes pages

Celle qui fonctionne (1 seul include)
http://www.yanpigeon.com/yan4/airbrush.php

Celle qui ne fonctionne plus (2 includes)
http://www.yanpigeon.com/yan4/airbrush2.php


Que puis-je faire?
J'ai testé avec un include_once à la place d'un simple include mais ça n'a pas marché.

Je suis réellement dépassée et j'espère qu'un de vous pourra m'aider rapidement.

Merci d'avance

Lorraine
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 21h17   #2
Membre régulier
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 80
Points : 80
Salut,

à vrai dire... comme ça, pas évident de te filer un coup de main. L'include peut etre utiliser de plusieurs façon, dans différents objectifs, là apparemment tu inclus un fichier de définition de fonction. essai de mettre tout en include_once

il faudrait nous en montrer un peu plus, tout dépend de comment tu construit ta/tes page(s) .

tu pourrait aussi créer un fichier d'entête qui s'occuperait d'inclure toute ta librairie de fonctions php. Et dans les différentes pages de ta navigation (si tu as différents fichiers php pour tes différentes pages!) tu inclus ce fichier d'entête comme ça tu est sur que l'ensemble n'est inclus une seule foi lors de l'appel d'un de tes fichiers.

quelques petits bout de code, la structure de ton site pourrait nous aider à y voir plus clair!
Djef-69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 21h32   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
mmm mon code est long mais je crois que je vais le mettre au complet (en espérant que vous n'allez pas me détester ) sinon je vais être incapable d'expliquer correctement mon problème. Voir en rouge où se situe l'erreur
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<!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="en" lang="en">
<head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
    <title>YAN PIGEON - Artiste designer</title>
    <link href="./jbgallery/jbgallery-3.0.css" rel="stylesheet" media="screen" />
    <script src="libs/jquery-1.4.4.min.js" type="text/javascript"></script>
    <link href="./galeries/gallery_style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="./galeries/include/thickbox-jfd.js"></script>
    <link rel="stylesheet" href="./galeries/include/thickbox.css" type="text/css" media="screen" />
    <script src="./jbgallery/jbgallery-3.0.js" type="text/javascript"></script>
    
    <script type="text/javascript"><!--
    jQuery(document).ready(function(){
        jQuery("#fullscreen").jbgallery({
            menu  : 'simple',
            style : 'zoom',
            randomize : 2,
            slideshow:true
        });
        jQuery(".example").jbgallery({fullscreen : false,randomize : 1, slideshow:true, fade: false});
    });
	
    --></script>
  

<style type="text/css">
	
	
    body{font-family:Verdana, Geneva, sans-serif;color:#fff;letter-spacing:0px;}
    .toolbar a, .toolbar a:visited, .toolbar a:focus,
    .cnt a, .cnt a:visited, .cnt a:focus{color:#fff;border:0;outline: none;}
	.toolbar a:hover,.toolbar a:focus,
    .cnt a:hover,.cnt a:focus{border-bottom:2px solid #69C;}
    .cnt a, .cnt a:visited, .cnt a:focus{text-decoration:underline;}
	
    
    .cnt h2,.cnt h3,.cnt h4{color:#69C;text-transform:uppercase;font-family: Verdana, Geneva, sans-serif;}
    .cnt .strike{text-decoration:overline;}
    #toggle-docs, #docs .cnt, #jbg-menu{background:#FFF; repeat;}
    #docs{width:620px;right:200px;padding:0px;top:0px;position:absolute;z-index:1000;}
    #docs .wrapper{padding:0px;margin:0px;background:#fff;}
    #docs .cnt{margin-top:31px;padding-top:0px;padding-bottom:20px;}
	
	
    
    #credits, #nav{z-index:1001;position:fixed;bottom:0;text-decoration:none;font-size:11px; background:#000;padding:5px;margin:0px;}
    #credits{left:0;z-index:1002;}
    #nav{width:100%;}
	
    
	.toolbar ul {display:block;list-style-type:none;margin:6px;padding:0;margin-right:25px;}
    .toolbar ul li {float:right;margin-right:auto;margin-left:auto;}
    .toolbar ul li a, .toolbar ul li a:visited {text-decoration:none;display:block;border-bottom:4px solid transparent;margin-right:10px;}
	.toolbar ul li a:hover,.toolbar ul li a:focus{border-bottom:4px solid #FFF;}
	
    
    #fullscreen .jbg-caption{bottom:26px;left:0px;right:auto;top:auto;border:0px;}
    #docs .jbgallery a{border-bottom:0px;}
	
	#div_content
	{
  	width: 100%;
  	height: 100%;
	}
	
	
	table.ligne {
	border-bottom: solid; 
	border-width: 1px; 
	border-color: #000000;}
	
	td.ligne {
	border-bottom: solid; 
	border-width: 1px; 
	border-color: #000000;}
	
	
	h6.bold{
	font-weight:bold;}
	
	h6.avertissement{
	font-size: 30px;
	}


</style>

    
    <link href="libs/docs/dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" type="text/css" rel="stylesheet"></link>
    <link href="libs/docs/contactable/contactable.css" type="text/css" rel="stylesheet"></link>
    <script src="libs/docs/dp.SyntaxHighlighter/Scripts/shCore.js" type="text/javascript"></script>
    <script src="libs/docs/dp.SyntaxHighlighter/Scripts/shBrushJScript.js" type="text/javascript"></script>
    <script src="libs/docs/dp.SyntaxHighlighter/Scripts/shBrushCss.js" type="text/javascript"></script>
    <script src="libs/docs/dp.SyntaxHighlighter/Scripts/shBrushXml.js" type="text/javascript"></script>
    <script src="libs/docs/jquery.scrollTo-1.4.2-min.js" type="text/javascript"></script>
	<script src="libs/docs/jquery.form.js" type="text/javascript"></script>
	<script src="libs/docs/contactable/jquery.validate.pack.js" type="text/javascript"></script>
    <script src="libs/docs/contactable/jquery.contactable.js" type="text/javascript"></script>
    <script type="text/javascript">
<!--
//ONLY FOR DEMO
        
    jQuery(document).ready(function(){
        //jQuery("#docs-opacity").height(jQuery("#docs").height()).css("opacity","0.7");
        jQuery('a.blank').each(function(){
            this.target = "_blank";
        });
       jQuery('#nav > ul > li > a').click(function(){
            var _scrollto = this.href.split("#")[1];
            jQuery("#jbg-content").scrollTo(jQuery("#" +_scrollto), 700);
            return false;
        });
        
		jQuery('#feedback').contactable({
			subject: 'Message',
        });
    });

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
    </script>
    
    <!-- /DOCS -->
</head>    
<body>
<div id="feedback">
</div>
<div id="jbg-content">

<!-- PUT HERE CONTENT -->
<div id="credits" class="toolbar"><ul><li><a href="/blog/" class="blank">Yan Pigeon &copy; 2006-2011</a></li></ul></div>
<div id="nav" class="toolbar">
<ul>
    
    <li><a href="#usage" title="">G&Uuml;REN</a></li>
    <li><a href="#installation" title="">PIGEONCR&Eacute;ATEURS</a></li>
    <li><a href="#d" title="">FAUX-FINIS</a></li><br />     
</ul>
</div>

<div id="docs">

    <div class="cnt" id="d">

    </div>
    <div class="wrapper">

 <table height="76px" class="ligne">
  	<tr>
  	    <td ><img src="img/logo_yp.gif" width="118" height="76" align="middle" /></td>
  	  	<td><ul class="nav2"><li><a href="galerie.php" title="aller à la page Galerie">Galerie</a></li></ul></td>
		<td><ul class="nav2"><li><a href="etudes.html" title="aller à la page &Eacute;tudes">Airbrush</a></li></ul></td>
		<td><ul class="nav2"><li><a href="logiciels.html" title="aller à la page Logiciels">Expos/Performances</a></li></ul></td>
		<td><ul class="nav2"><li><a href="experiences.html" title="aller à la Exp&eacute;riences de travail">Revue de presse</a></li></ul></td>
		<td><ul class="nav2"><li><a href="mailto:cyann_17@hotmail.com" title="aller à la page @">Bio</a></li></ul></td>
  	</tr>
</table>
<table height="150px">
  <tr>
    <td height="90%"><h1>AIRBRUSH</h1></td>
  </tr>
  <tr>
    <td height="10%"><h6><b class="bold">Outre mes créations personnelles, je crée aussi des tableaux sur mesure.</b><br />
Pour plus de renseignements, contactez-moi par courriel yanpigeon@hotmail.com ou par téléphone au 1.418.575.1204</h6></td>
  </tr>
  
  </table>
  
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><h2>CARROSSERIE ET ACCESSOIRES</h2></td>
  </tr>
</table>

<table class="bottom">

<div id="div_content">
<?PHP
  include("./galeries/gallery_airbrush_caro.php");?>
   </div>
</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><h2>MURALES</h2></td>
  </tr>
</table>

<table class="bottom">

<div id="div_content">
<?PHP
  include("./galeries/gallery_airbrush_mur.php");?>
   </div>
</table>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="15px"></td>
  </tr>
  <tr>
    <td class="ligne" ></td>
  </tr>
  <tr>
    <td height="50px"></td>
  </tr>
</table>


    </div>
   
</div>
<!-- /PUT HERE CONTENT -->
</div>
<div class="jbgallery" id="fullscreen">
  <ul>
		<li><a  href="./jbgallery/background_galerie/bg.jpg" img src="./jbgallery/background_galerie/bg.jpg" ></a></li>
        <li><a  href="./jbgallery/background_galerie/bg2.jpg" img src="./jbgallery/background_galerie/bg2.jpg" ></a></li>
        <li><a  href="./jbgallery/background_galerie/bg3.jpg" img src="./jbgallery/background_galerie/bg3.jpg"></a></li>
        <li><a  href="./jbgallery/background_galerie/bg4.jpg" img src="./jbgallery/background_galerie/bg4.jpg" ></a></li>
        <li><a  href="./jbgallery/background_galerie/bg5.jpg" img src="./jbgallery/background_galerie/bg5.jpg" ></a></li>
        <li><a  href="./jbgallery/background_galerie/bg6.jpg" img src="./jbgallery/background_galerie/bg6.jpg"></a></li>
        <li><a  href="./jbgallery/background_galerie/bg7.jpg" img src="./jbgallery/background_galerie/bg7.jpg"></a></li>
  </ul>
</div>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-258871-1']);
  _gaq.push(['_setDomainName','.maxb.net']); 
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>
</body>
</html>
Ma page est capricieuse et la dernière fois que j'ai voulu insérer un include en en-tête ça brisait toute ma page, mais peut-être l'ai-je mal fait. Quant aux include_once j'ai testé et ça n'a pas fonctionné.

Est-ce que le problème pourrait être causé par le fait que mes 2 galeries utilisent des fichiers js et php communs? Pourtant sur mes autres pages ça s'affiche bien!

merci
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 22h20   #4
Membre régulier
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 80
Points : 80
en première lecture rapide, changer les include en include_once dans cette page ne résoudra pas le pb si dans les pages que t'inclus ligne 188 (gallery_airbrush_caro.php) et ligne 202 (gallery_airbrush_mur.php) tu as surement des include simple sur les mêmes librairies php.

tu as compris l'idée de l'include, grossièrement cette fonction php te permet d'inclure un fichier dans un autre. tu peux avoir des fichiers php dans lesquels tu ne fait que définir des fonctions, c'est ce qui doit être fait dans les fichiers gallery. quand tu inclus ces fichiers tu rend accessible dans ton code ces fonctions mais tu ne dois le faire qu'une seule foi. essai de changer les include de ces deux fichiers en include_once pour voir si cela change la donne!
Djef-69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 22h45   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
(au passage : utilise les balises code, le # au dessus de la zone de texte, cela rendra les posts plus lisible)

Excuse-moi, je veux bien le faire mais je ne comprends pas ce que tu veux dire par là...et pardon si un modérateur me lit

J'ai ouvert mes 2 fichiers php (gallery_airbrush_caro.php et gallery_airbrush_mur.php) et je n'ai aucun include à l'intérieur. Ces 2 fichiers appellent bien des fonctions pour la création de ma galerie et des miniatures. Le tout est en javascript. J'imagine qu'en javascrip un include ne s'écrit pas de la même façon qu'en php. Est-ce possible?

Quand aux includes de ma page airbrush2.php je les ai changé pour des include_once dans les 2 cas et cela n'a rien changé malheureusement. À part le fait que ça a brisé ma page au niveau du fond ...comme ici

http://www.yanpigeon.com/yan4/airbrush2.php
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 23h00   #6
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
est-ce que ça pourrait avoir un lien avec ceci?

<div id="div_content">

Dans les 2 galeries, le $div_content est nommé pareil.
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 01h25   #7
Membre régulier
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 80
Points : 80
aucun problème pour les balises code, c'était juste pour info (en fait quand tu clique sur le dièse ça va insérer deux balise dans ton texte [code [/code, elle s'utilise comme le html : il suffit juste de mettre le code entre les deux balises)

en effet, les id doivent être unique dans l'ensemble généré, tu peux avoir plusieurs class nommées de façon identiques mais tu ne peux avoir deux balises portant le même id sans engendrer des erreurs de traitement.

il y a pas mal de javascript utilisé, avoir deux div avec le même id peut engendrer quelques désagréments! les id sont utilisés par le javascript pour faire différents traitement sur la page côté client (entre autres, ils sont également utilisé pour la css : le style de ta page mais ne nous dispersons pas!).

les include sont utilisé par le moteur php côté serveur. les deux n'interviennent pas au même moment et ne sont pas interprété par le même acteur.
php est interprété par le serveur et va être utilisé afin de générer la page qui sera envoyé au navigateur.
la page contiendra le javascript/css qui sera interprété par le navigateur.

je crois que j'ai trouvé la librairie que t'utilise, je jetterais un coup d'oeil demain sur la façon de l'utiliser pour en savoir un peu plus
Djef-69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 05h19   #8
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
C'est super gentil
merci

ça me perd un peu toutes ses balises! J'imagine que je n'ai qu'a changer son nom et ça devrait régler mon problème mais je ne sais pas trop laquelle changer sans tout détruire.
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 08h03   #9
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 706
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 706
Points : 3 274
Points : 3 274
Salut

Citation:
J'imagine que je n'ai qu'a changer son nom et ça devrait régler mon problème mais je ne sais pas trop laquelle changer sans tout détruire.
Pas sûr que ce soit ce plus judicieux de procéder ainsi, même si théoriquement ça devrait régler le problème.

L'inconvénient, c'est si cette fonction build_gallery() est strictement identique, ça va te faire 2 fonctions identique inutilement, donc des traitements supplémentaires (et une maintenance de code en plus).

Donc observe d'abord si cette fonction build_gallery() (et uniquement la fonction) qui se trouve dans ces 2 fichiers est strictement identique ou pas.

-> Si les codes sont différents, alors les nommer autrement sera obligatoire.

-> Si les codes sont vraiment identiques, le mieux serait de sortir cette fonction, de l'enlever au niveau des 2 fichiers.
Ensuite et si tel est le cas, il y a au moins 2 solutions :
- Soit créer un nouveau fichier (genre build_gallery.php) et y mettre cette fonction commune, puis dans ta page l'inclure 1 seule fois.
- Ou alors, peut être as tu déjà un fichier rassemblant des fonctions exploitées par ton application et qui serait systématiquement inclus (une librairie de fonctions en faite), y placer/rajouter cette fonction dans ce fichiers peut être plus simple.


Fait un petit point la dessus.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 13h30   #10
Membre régulier
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 80
Points : 80
Bonjour,

je vais dans le sens de RunCodePhp(), centralise tes fonctions dans un (ou plusieurs) fichiers php cela te simplifiera la lecture quand tu repassera sur ton code par la suite. Le premier point à régler est de se débarrasser de ce problème de déclaration de fonction.

Après, je suppose que dans ta fonction build_gallery() tu construit dynamiquement l'affichage de la galerie photos a afficher.

Par contre en ce qui concerne l'utilisation de la librairie, je pense que j'ai trouvé la bonne : jbgallery, sur son principe d'utilisation, j'ai mis un peu la tête dans le code qu'il a fournis avec les sources.

la page est découpé en plusieurs morceaux, comme tu l'as déja compris vu que tu as adapté en conséquence les différentes parties

Chaque <div id=""></div> définis le contenu d'une zone de ta page, par exemple :

Code :
1
2
3
4
 
<div id="feedback">
<!-- ici tu va retrouver le formulaire de contact dynamiquement inséré en javascript (fichier jquery.contactable.js)-->
</div>
concrètement ici cet id est important car il est utilisé pour faire un traitement particulier, il ne peut y en avoir qu'un (c'est un id) ce qui n'est pas génant car un seul formulaire de contact est suffisant.

En ce qui concerne les galeries :

tu as compris que l'affichage dans la zone à droite était définis par :

Code :
1
2
3
4
 
<div id="docs">
<!-- ici sera tout le contenu de la zone de droite -->
</div>
ce div pouvant contenir plusieurs ensembles de contenu qui sont définis de cette façon :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<div id="docs">
<!--ici commence la définition du contenu de la zone de droite -->
 
    <div class="cnt" id="blabla1">
        <div class="wrapper">
             ici se trouve mon premier contenu 
        </div>
    </div>
 
    <div class="cnt" id="blabla2">
        <div class="wrapper">
            ici se trouve mon deuxième contenu
        </div>
    </div>
<!-- fin de la définition de la zone de droite -->
</div>
tu remarquera qu'il n'y a pas deux id identique mais que chaque div est identifié avec la même class

pour l'affichage d'une galerie :

c'est un peu plus complexe car il y a le côté dynamique en plus (le fond de page qui change automatiquement), c'est composé de deux parties.

la première : la structure/composition de la galerie telle qu'elle est affichée dans la zone de droite (ici on est dans une zone <div id="docs"><div class="cnt" id="blabla1">
<div class="wrapper">)
c'est composé de cette façon :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
<div class="gallery-container" style="height:400px;">
        <div class="jbgallery example">
            <ul>      
                <li>
                   <a title="titreImage1" href="lienVersImage1">
                       <img src="lienVersMiniatureImage1" alt="texteRemplacementMiniatureSiNeSaffichePas"/>
                   </a>
               </li>
                <li>
                    <!--lien vers image 2 etc... -->
                <li>
            </ul>
        </div>
</div>
et la partie qui définis ce qui va être affiché dynamiquement en fond de page qui elle est en dehors de la zone <div id="docs"></div>

elle est composé de cette façon :

Code :
1
2
3
4
5
6
7
8
9
 
<div class="jbgallery" id="fullscreen">
    <ul>    
        <li>
            <a title= etc...></a>
        </li>
 ici tu liste les images qui tournent en fond de page, indépendamment des galeries
    </ul>
</div>
tu ne peux avoir qu'une seule galerie qui fonctionne en fond de page => id="fullscreen"

voila pour l'explication du fonctionnement de cette librairie. maintenant si j'ai bien compris ce qui tu voulais faire : tu aimerais avoir une fonction php qui te renvoi dynamiquement une galerie a afficher?

ce que devra te renvoyer ta fonction est un bloc :

Code :
1
2
3
4
5
6
7
8
9
10
<div class="gallery-container" style="height:400px;">
        <div class="jbgallery example">
            <ul>      
                <li>
                   <a .../... </a>
                <li>
                .../...
            </ul>
        </div>
</div>
qui se retrouvera inséré dans la zone de droite, le côté dynamique pourra être obtenu, par exemple, en passant un paramètre qui te permettra de définir qu'elle galerie renvoyer : fonctionGalerie($numGalerie)

tu définira le contenu et le comportement de la fonction dans un fichier particulier ( maLirairieFonctionPerso.php, par exemple). dans ta page qui sera appelé, à un endroit de ton code tu l'inclus une seule fois :
include_once('root/chemin/maLirairieFonctionPerso.php');
et ensuite quand tu veux insérer dans ta page une galerie particulière tu appele ta fonction :
fonctionGalerie(1);
si tu veux insérer une autre galerie, tu fais un autre appel :
fonctionGalerie(2);
etc... chaque appel à ta fonction renverra le bout de code vu précédemment.

après, ce que contiendra la fonction et le traitement à réaliser, difficile d'aller plus loin mais cela ouvre beaucoup de perspective, on peut facilement imager une petite base de données derrière qui te permet de gérer la composition des différentes galeries. avec ajout d'une interface d'administration qui te permet d'organiser l'ensemble (ça y est je suis déja partit dans un délire! ) cette librairie est intéressante et donne envie de faire mumuse avec ! il y a un potentiel intéressant. Après, tout le jeu consiste à composer la page dynamiquement en fonction de l'action de l'utilisateur (ce qui n'est pas forcément si évident quand on démarre avec une page qui intègre beaucoup de dynamique et mélange plusieurs langage!)

J'espère que j'ai pu t'être utile! si j'ai pas été clair sur certains points (je m'en excuse) n'hésite pas à poser des questions!
Djef-69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 17h38   #11
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
haha je n'en espérais pas tant Je vais tester tout ça et je vous reviens.
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 19h14   #12
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
Alors, suite à vos conseils voici ce que j'ai trouvé.
---------------------
@RunCodePhp

En effet, les 2 fichiers (gallery_airbrush_caro.php et gallery_airbrush_mur.php)
sont absolument identiques! Tout simplement pcq j'ai dupliqué l'original et que j'ai changé leurs noms afin qu'ils pointent vers les différents dossiers contenant mes photos.

C'est clair que le bug se situe là comme tu l'as dit!

En gros voici la structure du fichier

1- déclarations des variables avec pointage vers les dossiers des photos et des miniatures qui doivent être affichées.

Ensuite on tombe directement dans la fonction build_gallery mais cette fonction englobe toutes les autres fonctions (création de la structure de la galerie - affichage du menu - création des miniatures).

dans mon fichier airbrush2.php le id de mon div appelant ma galerie s'appelle div_content

dans mon fichier de la galerie (celui appelé dans mon inclusion) il y a une variable appelée $div_content

Est-ce que ça a un lien?
---------------------
@Djef-69

En effet, j'utilise bien jbgallery pour l'affichage des images de fond qui apparaissent. J'ai trouvé cette galerie ici ----> http://maxb.net/scripts/jbgallery/

par contre pour l'affichage de ma galerie de photos je l'ai trouvé ici
http://galeriephp.free.fr/#

Au début, quand j'ai créé ma page, rien ne fonctionnait. Le problème a été réglé en mettant à jour les différents modules.

P-t que je me trompe mais est-ce que tu me donnes une solution pour l'affichage des images de fond?

En fait je ne cherche pas à afficher une seconde galerie de fond de page mais bien a afficher une seconde galerie dans mon bloc airbrush. J'ai déjà la galerie carrosserie d'affichée et je cherche à afficher une galerie murale juste en dessous du texte murale.
---------------------

Ce code offre un océan de possibilité! Dommage que je ne le maîtrise pas du tout mais c'est clair que je vais tenter de m'y replonger plus sérieusement. J'ai pris des cours de programmation de base en html et css et ça ...rien de plus facile! J'ai appris le c++, le java mais dès que je suis rentrée dans le javascript et le php j'ai abandonné! Par contre, je suis capable de comprendre la structure (appel de fonctions, incrémentations, affichage, variables). Je crois que je me suis lancée dans quelque chose de trop compliqué et je m'excuse de vous avoir embrigadé dans mes rêves de grandeur haha. Par contre, vous m'avez aidé à mieux comprendre ce qui n'allait pas. Je crois que la meilleure chose à faire pour moi est d'envoyer le tout à un programmeur que je connais et que je vais payer pour qu'il me règle tout ça! Est-ce que vous croyez que c'est un problème qui pourrait aisément être réglé en 2h? Et puis à côté je vais repotasser mon php! Connaissez-vous un bon bouquin, bien expliqué pour réapparendre le php du début? Je crois que je me suis découragée trop vite avec ce langage!

en tout cas, un grand merci à vous 2!
cyann17 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 21h20   #13
Membre régulier
 
Inscription : octobre 2007
Messages : 89
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 89
Points : 80
Points : 80
de rien, c'était avec plaisir

si tu as mangé du java, php est bien différent, y'a une chose qu'il faut comprendre, avec ce langage, c'est que tu as peu de persistance, l'objectif de son utilisation est de construire dynamiquement une page html que tu va envoyer au client (navigateur) (entre autres choses mais restons concentré sur un point!)

En java, tu instancie un conteneur auquel tu vas rajouter les composants/écouteurs&Cie, au final tu aura un objet qui encapsule l'ensemble des composants.

je comprend pourquoi tu as fait une fonction "globale" (à ne pas prendre dans son sens informatique! ) chargé de la construction de la galerie/menu etc... en web, techno php, à chaque appel du client le serveur web vas reconstruire ta page en fonction de différents paramètres et renvoyer le résultat au navigateur. Ce résultat sera composé d'html/css/javascript que le navigateur sera en mesure d'interpréter.

l'url permet d'indiquer quel fichier sera le point de départ. Il peut être un fichier php qui ne contient que de l'html! et cela fonctionnera si celui-ci contient le nécessaire à destination du navigateur qui lui ne peut interpréter de toute façon que de l'html/css/javascript!

c'est pourquoi j'ai décomposé la page en petit morceaux qui sont à emboîter! au début je pensais de la fonction était chargé de construire une galerie et simplement la galerie, pas l'ensemble de la page. je ne sais pas si je suis très clair...

après, tu utilise une deuxième librairie pour l'affichage de la galerie et, j'ai l'impression que cette galerie utilise div_content pour intégrer la galerie en javascript et ça doit être ce qui coince vu que tu ne peut avoir 2 div avec le mm id! et donc pas 2 galeries dans une même page à moins de surcharger le code de la librairie afin de pourvoir afficher deux galeries sur une même page (mais avant de se lancer la dedans il suffit peut être de voir s'il n'y a pas une possibilité de le faire nativement avec la librairie) au final empiler les librairies complexifie un peu le problème.

pour les images de fond, euh... je sais pas... je t'ai donné simplement la façon de l'utiliser pour l'implémenter.

pour les tuto php je ne peux que te renvoyer dans la section php de ce site qui contient énormément d'info! il y a également une section librairie très riche. ne te décourage pas, fait les choses petit à petit, tu verra php est agréable à utiliser et pour répondre à ta question, régler le problème en 2h je pense que c'est de l'ordre du possible (le temps de rentrer dans la structure du code et débloquer ce qui coince cela reste conditionné par la deuxième librairie), tout dépend de l'objectif, si on intègre une refactorisation du code et création d'une architecture fonctionnelle je tabulerais sur 1/2 voir une journée si on intègre la partie contact et gestion de l'info-lettre.
Djef-69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h31.


 
 
 
 
Partenaires

Hébergement Web