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 :

Souci avec plusieurs inclusions php


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    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

    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

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    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!

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    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 : 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
    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

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    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!

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    (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

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    est-ce que ça pourrait avoir un lien avec ceci?

    <div id="div_content">

    Dans les 2 galeries, le $div_content est nommé pareil.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    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

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    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.

  9. #9
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    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.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
    <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 : 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
     
     
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    haha je n'en espérais pas tant Je vais tester tout ça et je vous reviens.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    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!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 89
    Points : 108
    Points
    108
    Par défaut
    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.

Discussions similaires

  1. [Forum] Souci avec les fonctions PHP
    Par LAMASPANZER dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 11/10/2014, 03h01
  2. [1.x] Soucis avec plusieurs applications et les routes
    Par scalpo dans le forum Symfony
    Réponses: 1
    Dernier message: 21/01/2011, 11h48
  3. [OpenTBS] Template PHPB, un petit soucis avec l'inclusion
    Par Falconpage dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 04/10/2007, 21h51
  4. [POO] [objet php 5] petit soucis avec $this
    Par estacado dans le forum Langage
    Réponses: 4
    Dernier message: 22/09/2006, 11h51
  5. [Conception] soucis avec mon code de recherche par un ou plusieurs critères
    Par jolipepage75 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 11/06/2006, 03h59

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