Coucou !

Je me présente Aurore. Je suis en train de construire un site écologique. Je suis affiliée au site Note de Provence pour vendre quelques produits de beauté biologique.

Je veux présenter ses produits dans mon site. Grâce à ce tutoriel "galerie photo avec javascript". Le code est au http://css.alsacreations.com/Tutoriels-JavaScript/galerie-photo-javascript, j'ai pu enfin afficher une image.

Le seul problème est :

Quand la grande image se présente, elle n'est pas cliquable vers le site affilié. Je veux également qu'elle soit accompagnée d'un long texte de descriptif de produit.

Y a-t-il une seule phrase à ajouter ? veuillez m'excuser si cela a déjà été répondu mais je l'ai cherché toute la journée sur le net. Site du zero, alsacreations etc...

Bisous
Modifié par orboreale (02 Jun 2007 - 20:02)
Hello et bienvenue ici Smiley smile

Comme tout le monde n'est pas devin, je te rappelle l'une des Règles que tu as dû survoler trop vite :
Règle 13 a écrit :
Enfin, n'hésitez pas à toujours fournir une image explicative et une url où les membres auront un aperçu de votre problème. La règle est simple : il faut toujours donner un maximum de détails pour être sûr d'avoir une chance que les autres comprennent et aident.
Salut,

Comme il y a toujours plein de post qui en parle j'ai testé moi aussi un peu cette galerie et j'ai rajouté un texte a coté des images.

bon alors je previens les membres du jury. je n'ai peut être pas choisi la meilleure methode, j'en est trouvé une qui marche et qui puisse faire acte d'exemple.

en gros j'ai rajouté un dd#texte que j'ai placé a coté de l'autre mes dd sont en float:left; pour cela. un overflow:hidden a été rajouté pour compenser.

et pour le texte je ne savais pas où le placer il n'y avait pas de balise/attribut evidente comme l'attribut title de a pour ça.

finalement, je l'ai mis dans un tableau dans le javascript. j'ai rajouté un id au lien du div minigallerie. cet id me sert qui d'indice dans le tableau du texte correspondant.



dans le HTML on trouve le CSS

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859">
  <title> Gallerie </title>
  <style>
div#galerie
{
	width: 820px ;
	background: #eed ;
	border: 1px solid #dcb ;
	padding: 15px ;
	margin: 15px 30px ;
	text-align: center ;
	font: 0.9em Georgia, serif ;
	overflow:hidden;
}

ul#galerie_mini
{
	margin: 0 ;
	padding: 0 ;
	list-style-type: none ;
}

ul#galerie_mini li
{
	float: left ;
}

ul#galerie_mini li a img
{
	margin: 2px 1px ;
	border: 1px solid #dcb ;
}

dl#photo
{
	clear: both ;
	margin: 0 auto ;
}

dl#photo dt
{
	font: italic 2.5em/1.5em Georgia, serif ;
	color: #dcb ;
}

dl#photo dd
{
	margin: 0 ;
	float:left;
}

dd#texte {
	width:250px;
	text-align:right;
	padding:  0 0 0 30px;
	
}

dl#photo img
{
	border: 1px solid #dcb ;
}

  </style>
  <script type="text/javascript" src="galleriealsa.js"></script>
  <script>     
  </script>
 </head>
<body> 

<div id="galerie">
	<ul id="galerie_mini">
		<li><a id="0" href="diaporama/1996_yakutake.jpg" title="comete yakutake 1996"><img src="diaporama/min/1996_yakutake_mini.jpg" alt="Le titre de la photo 1" /></a></li>

		<li><a id="1" href="diaporama/2003_05_06_transitmercure.jpg" title="Titre de la photo 2"><img src="diaporama/min/2003_05_06_transitmercure_mini.jpg" alt="Le titre de la photo 2" /></a></li>
		<li><a id="2" href="diaporama/hale-boppmin.jpg" title="Titre de la photo 3"><img src="diaporama/min/hale-boppmin_mini.jpg" alt="Le titre de la photo 3" /></a></li>
		<li><a id="3" href="diaporama/lune1_28_10_04.jpg" title="Titre de la photo 4"><img src="diaporama/min/lune1_28_10_04_mini.jpg" alt="Le titre de la photo 4" /></a></li>

		<li><a id="4" href="diaporama/lune2_28_10_04.jpg" title="Titre de la photo 5"><img src="diaporama/min/lune2_28_10_04_mini.jpg" alt="Le titre de la photo 5" /></a></li>

	</ul>

	
	<dl id="photo">
		<dt>Titre de la photo 1</dt>
		<dd><img id="big_pict" src="diaporama/1996_yakutake.jpg" alt="Photo 1 en taille normale" /></dd>
		<dd id="texte"> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut eleifend. Pellentesque eget mi in ligula rutrum commodo. Vestibulum posuere, mi ut feugiat lobortis, arcu urna dignissim elit, eu vulputate sem dui ultrices arcu. Sed eros. Integer justo. In hac habitasse platea dictumst. Phasellus nec ligula. Aliquam elementum nisi at arcu. Cras vitae massa. Nunc iaculis, metus id rutrum dapibus, lectus velit porta lectus, vel gravida diam diam sed lacus. Phasellus dictum ultrices tellus. Vivamus sodales. Integer semper auctor ante. Cras leo. Nam accumsan diam id ipsum. Ut tortor. Curabitur posuere fermentum ipsum. </dd>
	</dl>
</div>

</body>
</html>



et mon js

function displayPics()
{

	var tabtexte = ["Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut eleifend. Pellentesque eget mi in ligula rutrum commodo. Vestibulum posuere, mi ut feugiat lobortis, arcu urna dignissim elit, eu vulputate sem dui ultrices arcu. Sed eros. Integer justo. In hac habitasse platea dictumst. Phasellus nec ligula. Aliquam elementum nisi at arcu. Cras vitae massa. Nunc iaculis, metus id rutrum dapibus, lectus velit porta lectus, vel gravida diam diam sed lacus. Phasellus dictum ultrices tellus. Vivamus sodales. Integer semper auctor ante. Cras leo. Nam accumsan diam id ipsum. Ut tortor. Curabitur posuere fermentum ipsum.","id rutrum dapibus, lectus velit porta lectus, vel gravida diam diam sed lacus. Phasellus dictum ultrices tellus. Vivamus sodales. Integer semper auctor ante.","blablabla","il etait une fois l'espace","tiintin et milou voyage"];

	var photos = document.getElementById('galerie_mini') ;
	// On récupère l'élément ayant pour id galerie_mini
	var liens = photos.getElementsByTagName('a') ;
	// On récupère dans une variable tous les liens contenu dans galerie_mini
	var big_photo = document.getElementById('big_pict') ;
	// Ici c'est l'élément ayant pour id big_pict qui est récupéré, c'est notre photo en taille normale

	var titre_photo = document.getElementById('photo').getElementsByTagName('dt')[0] ;
	// Et enfin le titre de la photo de taille normale
	
	var texte = document.getElementById('texte');

	// Une boucle parcourant l'ensemble des liens contenu dans galerie_mini
	for (var i = 0 ; i < liens.length ; ++i) {
		// Au clique sur ces liens
		liens[ i ].onclick = function() {
			big_photo.src = this.href; // On change l'attribut src de l'image en le remplaçant par la valeur du lien
			big_photo.alt = this.title; // On change son titre
			titre_photo.firstChild.nodeValue = this.title; // On change le texte de titre de la photo
			texte.innerHTML = "" + tabtexte[this.id];
			return false; // Et pour finir on inhibe l'action réelle du lien
		};
	}
}
window.onload = displayPics;
Coucou !

Hermann, merci pour la bienvenue ! Je m'excuse pour la règle. En fait je l'avais lu mais je croyais la respecter en mettant le code d'alsacreations car elle est identique. Mea culpa Smiley smile

Pour CPascal, c'est très gentil de m'avoir répondu. J'ai mis le code mais helas je n'ai pas réussi.

Pour faire simple j'ai mis que deux articles pour tester, voici mon code :

<div id="galerie">
	<ul>
		<li><a id="0" href="http://www.notes-de-provence.com/images/acerola-plus-biokosma-m.jpg" title="Acerola Plus 500 vitamine C" alt="Acerola Plus 500 vitamine C"/>Acerola plus 500 vitamine C</a></li>
		<li><a id="1" href="http://www.notes-de-provence.com/images/spray-massage-chauffant-m.jpg" title="Air Spray Anti-moustique" alt="Air Spray Anti-moustique" />Air Spray Anti-moustique</a></li>
	</ul>

	<dl id="photo">
		<dt>Acerola Plus 500 vitamine C</dt>
		<dd><a href="http://www.notes-de-provence.com/pdt1145/beauty_products.html?ref=148&affiliate_banner_id=1" target="_blank"><img id="big_pict" src="http://www.notes-de-provence.com/images/acerola-plus-biokosma-m.jpg" border="0" alt="Acerola Plus 500 Vitamine C" alt="Photo 1 en taille normale" /></a></dd>
		<dd id="texte"> <p>L'acérola est une cerise rouge à haute teneur en vitamine C originaire d'Amérique Latine. La formule commercialisée par Biokosma est fabriquée à partir de jus d'acérola pressé sur place à Porto-Rico. Ce jus est ensuite déshydraté et enrichi avec des bioflavonoïdes et des extraits de fruits.</p>
						<p>L'acérola se présente en comprimés sécables emballés individuellement sous blister. La teneur en vitamine C varie de 370 à 500 mg par comprimé. Cette différence est due à la variation naturelle de la teneur en vitamine C des fruits.</p>
						<p>L'acérola est recommandé pour complémenter l'alimentation en vitamine C et stimuler l'organisme pendant l'hiver.</p>
						<p>Conseils d'utilisation Acerola Plus 500: 1/2 comprimé par jour.</p>
						<p>Ingrédients Acerola Plus 500 : Composition contenant 78% de poudre d'acérola</p>
						<p>Sachets 32 comprimés. Dosé à 500 mg de vitamine C naturelle.</p>
		</dd>
	</dl>
</div>


La première page m'apparaît claire. Je ne voulais pas de vignettes, je l'ai remplace par un menu. On clique sur l'une des deux phrases et hop en bas une image et son descriptif apparaît. C'est quand je cliquerai sur l'image que j'arriverai sur le site affilié de "Note de provence".

Jusque là ça va. Mais quand je clique sur l'une des deux phrases, l'image m'apparaît dans une nouvelle fenetre sans descriptif et en plus elle n'est pas cliquable.

Je m'excuse mais je suis vraiment nulle. Je débute totalement. Vous pouvez consulter mon site www.gains-equitables.com en attendant. Cela aurait été plus simple avec un script tout fait comme Amazon pour mes livres écologiques. Ce n'est helas pas le cas de Note de Provence.

Merci pour votre gentilesse

edit : je rajoute l'image qui devrait être comme cela en final

http://img235.imageshack.us/img235/4889/imagefinaledt1.th.jpg[/IMG]
Modifié par orboreale (01 Jun 2007 - 19:11)
hum ceci ressemble au probleme de cet autre topic. enfin je crois.

peut-être une faute dans le javascript qui se produit avant d'arriver au return false();.

dommage j'ai pas eu de retour la dessus. essaye de voir si la console d'erreur de firefox ne t'indique pas une faute js.

sinon j'ai pas bien vu si ton site contenait ton test ou pas.
Le javascript et le css associé nous aiderait a y voir plus clair ou mieux un lien en ligne.

pascal.
Modifié par CPascal (01 Jun 2007 - 19:31)
je suis effectivement sous firefox. Mais je ne sais pas c'est quoi la console d'erreur de firefox...

Sinon je n'ai pas mis le test dans mon site. Je ne sais pas comment le montrer sur le net sans modifier mon site. J'ai prefere faire un petit test très simple en attendant avant de l'envoyer par filezilla. J'ai mis le code sur le forum. Il est vrai que le javascript je n'y connais rien. J'ai appris à monter le site en html et php grâce au site zero avec mateo.

Le code javascrip est le même que le tien. J'ai fait copier coller. J'ai juste modifier le nom du fichier

Merci de ta patience
Modifié par orboreale (01 Jun 2007 - 20:15)
Re,

Tu as enlevé a ul son id='galerie_mini'. Un id est nécessaire à cet endroit car javascript retrouve ses petits grace à lui.

en rajoutant cet id de nouveau ça marche.

ensuite il faut personnaliser le style associé. là j'ai enlevé son float:left; y a ainsi plus rien.

tu peux changer le nom de l'id mais il faut alors le changer aussi dans le js.

a cet endroit:

var photos = document.getElementById('[b]galerie_mini[/b]') ;


Et bien sur le tableau
var tabtexte = ["Lorem....

est le tableau qui contient les textes qui se colleront a tes images. a personnaliser donc.

la déclaration de ce tableau pourrait d'ailleurs se transferer dans le fichier .php. entre 2 balises <script> </script> placées avant celles qui appelent le script.

En effet l'etape suivante de ce code serait de générer dynamique les données en fonction d'une base de données.....mais ceci est une autre histoire.


la console d'erreurs ce trouve là:

upload/11833-Sans-titre.gif

pascal
Modifié par CPascal (01 Jun 2007 - 21:03)
ca marche !!! c'etait bien le id minigalerie ! oh la la ! oh que je suis contente !

Merci beaucoup ! Il me reste plus qu'à trouver comment faire pour que ce soit cliquable vers le site affilié !

Encore merci ! j'avais sûrement la tête ailleurs car ca fait deux jours de suite que j'ai une migraine 24h/24 avec mes deux bébés qui pleurent Smiley smile
pour personnaliser le lien c'est vraiment la même procédure.

un deuxieme tableau qui contient les adresse tabadresse.
un id sur la balise <a id="biduletruc".
un var machin = document.getElementById('biduletruc');
et un machin.href = tabadresse[this.id]; dans le onclick.
Modifié par CPascal (01 Jun 2007 - 21:16)
Je vois que je dois apprendre également le javascript ! Je viens de découvrir qu'il ne reconnait pas les <p></p> dans le tableau tabtext.

Donc je vais m'y mettre. Je voulais éviter javascript le maximum. Mais c'est nécessaire pour ce que je veux faire on dirait.

Je te montrerai le résultat final de la boutique Smiley smile

Bisous !
vraiment? tu as du insérer autre chose de problématique.

j'ai mis des <p> des <b> </b> sans probleme. par contre un " ne passera pas sans être antislashé. \"
effectivement le <p> marche ! J'ai du oublier de fermer un </p>. Je crois qu'il vaut mieux que je me repose en regardant un dvd un peu joyeux pour liberer mon cerveau en compote.

je ne sais pas comment te remercier... cela me donne envie de t'embaucher en cas de creation d'entreprise Smiley biggrin
orboreale a écrit :
pardonnez moi Smiley confused je vais le faire sur le champ !

C'est pas grave. Et tu n'es pas la seule dans ce cas Smiley cligne
Bien le bonjour,

Excusez mon impolitesse, ma venue n'a strictement rien a voir avec ce forum.
Je ne vais pas m'étendre sur l'histoire que j'ai vécu, mais en quelque sorte, depuis 6 mois, je recherche cette "orboreale" ... Et là ...

Après avoir regarder tout les liens que j'ai pu trouver sur internet, voici le plus récent message de sa part, j'espère donc qu'elle parcourt a nouveau ce topic.

En quelques mots, je dirais que j'ai connu orboreale pendant un petit moment sur un MMO (Jeu en ligne) et je suis parti sans rien dire ...

Je fais mes excuses a tout les membres de ce forum, un bannissement sera possible, mais j'implore votre générosité pour m'accorder quelques jours sur ce forum, pour essayer de reprendre contact avec notre ami !
Si jamais vous connaissez son adresse email, ou autre, j'en serais ravi de la connaitre.

Ps : Excusez les fautes je suis pas très bien, ca me fait bizzare de me dire que je retrouve peut être, l'amie que j'ai perdu. Smiley bawling