<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flashxpress &#187; Dreamweaver extensions</title>
	<atom:link href="http://www.flashxpress.net/category/ressources-dreamweaver/dreamweaver-extensions/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flashxpress.net</link>
	<description>Ressources pour la création et les technologies du web</description>
	<lastBuildDate>Thu, 09 Feb 2012 01:00:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Exporter/Importer les fragments de code</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/exporterimporter-les-fragments-de-code/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/exporterimporter-les-fragments-de-code/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 10:51:33 +0000</pubDate>
		<dc:creator>Bertrand Gac</dc:creator>
				<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[Fragments de code]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/?p=1662</guid>
		<description><![CDATA[C&#8217;est trop souvent que j&#8217;ai perdu mes fragments de code, suite à des réinstallations complètes de Dreamweaver ou suite à un formatage. J&#8217;ai donc fait cette extension pour sauvegarder automatiquement tous mes fragments de code personnels. L&#8217;export peut être manuel ou automatique, en cochant l&#8217;option &#34;Exporter automatiquement à la fermeture de Dreamweaver&#34;. L&#8217;extension n&#8217;exporte que [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est trop souvent que j&#8217;ai perdu mes fragments de code, suite à des réinstallations complètes de Dreamweaver ou suite à un formatage. J&#8217;ai donc fait cette extension pour sauvegarder automatiquement tous mes fragments de code personnels. L&#8217;export peut être manuel ou automatique, en cochant l&#8217;option &quot;Exporter automatiquement à la fermeture de Dreamweaver&quot;.</p>
<p>L&#8217;extension n&#8217;exporte que les fragments de code créés par l&#8217;utilisateur. Dreamweaver les stocke dans le profil utilisateur.<br />
  (Par exemple : sur Vista : C:\Users\PROFIL\AppData\Roaming\Adobe\Dreamweaver CS4\fr_FR\Configuration\Snippets)</p>
<ul style="list-style: circle">
<li>Tout le dossier Snippets est exporté (copier sur une autre destination). Il n&#8217;est pas possible de sélectionner un fragment de code ou un dossier de fragments de code en particulier.</li>
<li>Tous les fragments de code natifs à Dreamweaver sont ignorés.</li>
<li>Pour importer les snippets sur une autre machine, ou après une réinstallation, il faut sélectionner non pas le dossier Snippets mais son dossier parent. L&#8217;extension cherche exclusivement la présence d&#8217;un dossier &quot;Snippets&quot;. Il ne doit donc bien sûr pas être renommé.</li>
</ul>
<p><img src="images/r_dream/snippets_extension_exporter/01.gif" width="573" height="364" title="Extension Exporter/Impoter les Fragments de code" /></p>
<p><a href="images/r_dream/snippets_extension_exporter/FXPSnippets.mxp">Télécharger l&#8217;extension</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/exporterimporter-les-fragments-de-code/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Supprimer plusieurs enregistrements</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-supprimer-plusieurs-enregistrements/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-supprimer-plusieurs-enregistrements/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 18:44:09 +0000</pubDate>
		<dc:creator>Bertrand Gac</dc:creator>
				<category><![CDATA[Dreamweaver dynamique]]></category>
		<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[comportements serveur]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-supprimer-plusieurs-enregistrements/</guid>
		<description><![CDATA[Dreamweaver MX possède par défaut un comportement serveur Supprimer un enregistrement. En voici un qui permet de supprimer non pas un mais plusieurs enregistrements à la fois : utile quand on a besoin de faire du ménage rapidement dans une table&#8230; Exemple d&#8217;utilisation Supposons que nous avons une table actualite, qui sert à stocker et [...]]]></description>
			<content:encoded><![CDATA[<p>Dreamweaver MX possède par défaut un comportement serveur <span class="italique">Supprimer un enregistrement</span>.</p>
<p>En voici un qui permet de supprimer non pas un mais plusieurs enregistrements à la fois : utile quand on a besoin de faire du ménage rapidement dans une table&#8230;</p>
<p align="center"><img src="/images/r_dream/comport_serveur/supmul/SupMult.gif" border="0" alt="" width="514" height="255" /></p>
<h2>Exemple d&#8217;utilisation</h2>
<p>Supposons que nous avons une table <span class="script">actualite</span>, qui sert à stocker et présenter des actus sur un site. Afin de garder cette table de dimension raisonnable, on décide de supprimer sélectivement de temps à autre des actualités qui ont plus de 3 mois.</p>
<p>Voici la structure et le contenu de la table. Elle a été simplifiée et réduite pour plus de clarté :</p>
<p align="center"><img src="/images/r_dream/comport_serveur/supmul/sme01.gif" border="0" alt="" width="402" height="231" /></p>
<blockquote class="source"><p><span class="sourceRouge">#<br />
# Structure de la table `actu`<br />
# </span></p>
<p><span class="sourceViolet">DROP TABLE IF EXISTS actu;<br />
CREATE TABLE actu (<br />
idActu tinyint(3) unsigned NOT NULL auto_increment,<br />
titre varchar(150) NOT NULL default &nbsp;&raquo;,<br />
date date NOT NULL default &#8217;0000-00-00&#8242;,<br />
PRIMARY KEY (idActu),<br />
UNIQUE KEY date (date)<br />
); </span></p>
<p class="sourceComment">#<br />
# Contenu de la table `actu`<br />
#</p>
<p class="sourceViolet">INSERT INTO actu VALUES (1, &#8216;Viva Cuba!&#8217;, &#8217;2004-01-28&#8242;),<br />
(2, &#8216;Jacques Brel : le coffret du 25e anniversaire&#8217;, &#8217;2003-08-27&#8242;),<br />
(3, &#8216;David Bowie, Reality&#8217;, &#8217;2003-07-25&#8242;),<br />
(4, &#8216;Le violon dans tous ses états&#8217;, &#8217;2004-02-03&#8242;),<br />
(5, &#8216;Je ne suis qu&#8217;une chanson&#8217;, &#8217;2003-04-28&#8242;),<br />
(6, &#8216;Herbie Hancock, My Point Of View&#8217;, &#8217;2003-12-08&#8242;);</p></blockquote>
<p class="sourceComment">
<p>Si vous souhaitez suivre ce tutorial, vous pouvez télécharger le fichier SQL qui crée la table et insère quelques enregistrements.</p>
<p><a title="actu.zip" name="file" href="images/r_dream/comport_serveur/supmul/actu.zip" target="_self"><img src="mambots/editors/mosce/jscripts/tiny_mce/plugins/filemanager/InsertFile/img/ext/zip_small.gif" border="0" alt="actu.zip" align="middle" /> actu.zip (<span id="672 bytes,null" style="font-size: 80%;">672 bytes)</span></a></p>
<h2>Le jeu d&#8217;enregistrements</h2>
<p>Créez un jeu d&#8217;enregistrements portant sur les données que nous voulons détruire, à savoir toutes les actus qui ont plus de 3 mois, et de trier ces données par ordre décroissant.:</p>
<blockquote class="source"><p>SELECT *<br />
FROM actu<br />
WHERE date &lt; DATE_SUB(NOW(), INTERVAL 90 DAY)<br />
ORDER BY date DESC</p></blockquote>
<p>Brève explication sur la clause <span class="script">WHERE</span> utilisée ici :<br />
Nous prenons la date d&#8217;aujourd&#8217;hui (NOW) à laquelle nous soustrayons (DATE_SUB) 90 jours (INTERVAL 90 DAY) et le résultat est comparé avec la colonne date de la table.</p>
<h2>Le formulaire</h2>
<p>Iinsérez un formulaire dans votre document, puis créez une région répétée dans ce formulaire de façon à afficher les données :</p>
<p align="center"><img src="/images/r_dream/comport_serveur/supmul/sme02.gif" border="0" alt="" width="428" height="96" /></p>
<p>Rajoutez une colonne à droite du tableau, insérez une case à cocher, nommez-la et donnez lui une valeur dynamique qui correspondra à la valeur de la clé primaire idActu. Pour cela, sélectionnez la case à cocher, allez dans le panneau <span class="italique">Applications &gt; onglet Liaisons</span>, déroulez le jeu d&#8217;enregistrements et glissez/déposez le texte dynamique idActu sur la case.</p>
<p align="center"><img src="/images/r_dream/comport_serveur/supmul/sme04.gif" border="0" alt="" width="352" height="79" /></p>
<blockquote class="source"><p>&lt;input name=&nbsp;&raquo;supp&nbsp;&raquo; type=&nbsp;&raquo;checkbox&nbsp;&raquo; id=&nbsp;&raquo;supp&nbsp;&raquo; value=&nbsp;&raquo;&lt;?php echo $row_rsActus3mois['idActu']; ?&gt;&nbsp;&raquo;&gt;</p></blockquote>
<p>Puis ajoutez un bouton Supprimer. Attention : ce bouton ne doit pas être dans la région répétée! (Ici j&#8217;e l&#8217;ai simplement mis dans un autre tableau, sous le premier mais en dehors de la région répétée)</p>
<p align="center"><img src="/images/r_dream/comport_serveur/supmul/sme03.gif" border="0" alt="" width="482" height="140" /></p>
<h2>Le comportement</h2>
<p>Appliquez le comportement. Sélectionnez les différents paramètres demandés, rentrez le nom de la case à cocher ainsi que l&#8217;URL de redirection quand la suppression est terminée.</p>
<p>Une fois appliqué, ce comportement a effectué deux opérations : outre le code PHP qui a été inséré en début de fichier, il a également renommé la case à cocher en lui rajoutant à la fin deux crochets : <span class="script">supp[]</span>.<br />
Cette notation est nécessaire : elle signifie pour PHP qu&#8217;il est en présence d&#8217;une variable de type tableau, ce qui permett de stocker les différentes valeurs que peut prendre la clé primaire, selon les actualités affichées. En l&#8217;absence de ces crochets, supp serait une simple variable dont la valeur serait écrasée à chaque fois par la précédente.</p>
<p>Le code PHP tient en quelques lignes :</p>
<p align="center"><img src="/images/r_dream/comport_serveur/supmul/sme05.gif" border="0" alt="" width="595" height="136" /></p>
<ul>
<li>Ligne 12 : on vérifie que le tableau supp n&#8217;est pas vide.</li>
<li> Ligne 13 : on parcourt le tableau avec une boucle foreach</li>
<li> Ligne 15 : on exécute la requête autant de fois qu&#8217;il y a d&#8217;éléments dans le tableau .</li>
<li> Ligne 17 : redirection quand les suppressions sont terminées.</li>
</ul>
<p align="center"><a title="SuppMultEnr.mxp" name="file" href="images/r_dream/comport_serveur/supmul/SuppMultEnr.mxp" target="_self"><img src="mambots/editors/mosce/jscripts/tiny_mce/plugins/filemanager/InsertFile/img/ext/mxp.gif" border="0" alt="SuppMultEnr.mxp" align="middle" /> SuppMultEnr.mxp (<span id="6.97 KB,null" style="font-size: 80%;">6.97 KB)</span></a></p>
<p><span id="more-497"></span><!--more--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-supprimer-plusieurs-enregistrements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fragments de code Select pour formulaires</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/fragments-de-code-select-pour-formulaires/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/fragments-de-code-select-pour-formulaires/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 10:06:56 +0000</pubDate>
		<dc:creator>Bertrand Gac</dc:creator>
				<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Evénements]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[Dreamweaver général]]></category>
		<category><![CDATA[Fragments de code]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/?p=1651</guid>
		<description><![CDATA[Quelques utilitaires de listes de formulaire, sous forme de fragments de code. Après installation via Extension Manager, ces fragments de code sont disponibles dans le panneau Fenêtres &#62; Fragments de code &#62; Flashxpress. Liste des départements : value = le nom du département : SelectDepartementsAvecNoms.mxp Liste des départements : value = numéro du département : [...]]]></description>
			<content:encoded><![CDATA[<p>Quelques utilitaires de listes de formulaire, sous forme de  fragments de code. Après installation via Extension Manager, ces fragments de code sont disponibles dans le panneau Fenêtres &gt; Fragments de code &gt; Flashxpress.</p>
<p><img title="Panneau Fragments de code" src="images/r_dream/snippets_select/panneau-snippets.gif" border="0" alt="Panneau des snippets" width="303" height="294" align="middle" /></p>
<p>Liste des départements : value = le nom du département : <a href="images/r_dream/snippets_select/SelectDepartementsAvecNoms.mxp">SelectDepartementsAvecNoms.mxp</a></p>
<p><img src="images/r_dream/snippets_select/01.gif" alt="" width="424" height="98" /></p>
<p>Liste des départements : value = numéro du département : <a href="images/r_dream/snippets_select/SelectDepartementsAvecNumeros.mxp">SelectDepartementsAvecNumeros.mxp</a></p>
<p><img src="images/r_dream/snippets_select/02.gif" alt="" width="465" height="108" /></p>
<p>Liste des pays : value = un simple numéro : <a href="images/r_dream/snippets_select/SelectPays.mxp">SelectPays.mxp</a></p>
<p><img src="images/r_dream/snippets_select/03.gif" alt="" width="398" height="107" /></p>
<p>Liste des pays : value = code à 2 lettres : <a href="images/r_dream/snippets_select/SelectPaysAlpha2.mxp">SelectPaysAlpha2.mxp</a><br />
Code pays alpha-2 (A2)<br />
Le code ISO 3166-1 &laquo;&nbsp;alpha-2&#8243; (ou A2) associe un code à deux caractères à chaque entité. Ces deux caractères sont choisis de manière à être facilement associables au pays qu&#8217;ils désignent (par exemple &laquo;&nbsp;FR&nbsp;&raquo; pour la France). Très utilisé, ce code est recommandé par de nombreux organismes de normalisation et notamment par le W3C pour l&#8217;identification des pays et des langues sur le Web.</p>
<p><img src="images/r_dream/snippets_select/04.gif" alt="" width="417" height="138" /></p>
<p>Liste des pays : value = code à 3 lettres : <a href="images/r_dream/snippets_select/SelectPaysAlpha3.mxp">SelectPaysAlpha3.mxp</a></p>
<p><img src="images/r_dream/snippets_select/05.gif" alt="" width="414" height="128" /></p>
<p>Liste des régions françaises : <a href="images/r_dream/snippets_select/SelectRegions.mxp">SelectRegions.mxp</a></p>
<p><img src="images/r_dream/snippets_select/06.gif" alt="" width="402" height="123" /></p>
<p><a href="images/r_dream/snippets_select/Snippets_Select.zip">Télécharger le package complet</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/fragments-de-code-select-pour-formulaires/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Snap Layers de Projectseven</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/comportement-snap-layers-de-projectseven/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/comportement-snap-layers-de-projectseven/#comments</comments>
		<pubDate>Wed, 27 Jul 2005 19:01:27 +0000</pubDate>
		<dc:creator>Jean-Luc</dc:creator>
				<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Dreamweaver général]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[comportements dreamweaver]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/ressources-dreamweaver/comportement-snap-layers-de-projectseven/</guid>
		<description><![CDATA[Un probl&#232;me r&#233;current au sujet de l&#8217;utilisation des calques est le probl&#232;me du positionnement par rapport &#224; des &#233;l&#233;ments tels que des images, dans un document utilisant des tableaux d&#233;finis en pourcentage, en cas de r&#233;solutions diff&#233;rentes de l&#8217;&#233;cran ayant servi &#224; la mise en page ou en cas de redimensionnement de la fen&#234;tre du [...]]]></description>
			<content:encoded><![CDATA[<p>Un probl&egrave;me r&eacute;current au sujet de l&#8217;utilisation des calques est le probl&egrave;me du positionnement par rapport &agrave; des &eacute;l&eacute;ments tels que des images, dans un document utilisant des tableaux d&eacute;finis en pourcentage, en cas de r&eacute;solutions diff&eacute;rentes de l&#8217;&eacute;cran ayant servi &agrave; la mise en page ou en cas de redimensionnement de la fen&ecirc;tre du navigateur.<br /><span id="more-519"></span>
<p>   L&#8217;extension <span class="italique">Snap Layers</span>,   disponible sur l&#8217;excellent site de <a href="http://www.projectseven.com" target="_blank">Project   Seven</a>, permet   de contourner ces probl&egrave;mes, nous allons voir ici comment l&#8217;utiliser   (reportez-vous au tutorial <a href="content/view/78/66/" target="_blank">Introduction aux extensions</a> pour savoir   comment installer et utiliser les extensions). </p>
<h2>Placement des images</h2>
<p> On cr&eacute;e tout d&#8217;abord une interface, avec un tableau de trois lignes et deux colonnes, faisant 100% de largeur. Jj&#8217;ai d&eacute;fini des marges de 20 pixels dans le document, afin que le tableau ne colle pas aux bords du document. </p>
<p>Dans les colonnes de droite du tableau viennent se placer trois boutons, faisant 135 * 30 pixels et se nommant bouton_1.gif, bouton_2.gif et bouton_3.gif.</p>
<p align="center"><img width="200" height="116" border="0" src="images/r_dream/extensions/ext_snap/interface_bouton.gif" alt="Interface des boutons" /> </p>
<p>   Dans le panneau <span class="italique">Propri&eacute;t&eacute;s</span> on nomme ces boutons, (boutonUn, boutonDeux, boutonTrois) afin de leur donner un identifiant unique, pas d&#8217;espaces ni de caract&egrave;res accentu&eacute;s. </p>
<p align="center"><img width="486" height="125" border="0" src="images/r_dream/extensions/ext_snap/nommage_boutons.gif" alt="Nommage des boutons" /> </p>
<p>   On en profite pour cr&eacute;er un lien virtuel, en tapant dans    le champ <span class="italique">Lien</span> <span class="source">javascript:;</span> (javascript deux points point virgule), lien    qui nous permettra d&#8217;afficher les calques sur un &eacute;venement <span class="script">OnMouseOver</span>. </p>
<h2>Placement des calques</h2>
<p> On d&eacute;finit ensuite trois calques, ayant pour noms, layerUn, layerDeux, layerTrois, d&#8217;une largeur de 150 pixels, hauteur ind&eacute;finie, visibilit&eacute; cach&eacute;e et de couleurs diff&eacute;rentes, afin de bien les diff&eacute;rencier. </p>
<p align="center"><img width="480" height="135" border="0" src="/images/r_dream/extensions/ext_snap/interface_layers.gif" alt="Interface des calques" /> </p>
<p align="center">L&#8217;interface des calques et des boutons dans   le document</p>
<p>Ces calques peuvent &ecirc;tre plac&eacute;s &agrave; n&#8217;importe quel endroit du document, le but &eacute;tant de les faire apparaitre par rapport aux coordonn&eacute;es du bouton voulu.</p>
<p align="center"><img width="484" height="120" border="0" src="/images/r_dream/extensions/ext_snap/proprietes_layers.gif" alt="Propriétés des calques" /> </p>
<p align="center">Les propri&eacute;t&eacute;s du layerUn </p>
<h2>Interface &quot;Snap Layers&quot;</h2>
<p>   On acc&egrave;de au comportement via le menu <span class="italique">Fen&ecirc;tre &gt; Comportements &gt;   Studio VII &gt; Snap layers by PVII</span>. </p>
<p align="center"><img width="400" height="358" border="0" src="/images/r_dream/extensions/ext_snap/interface_comportements.gif" alt="Interface des comportements" /> </p>
<p>La nouvelle fen&ecirc;tre qui apparait nous permet de choisir l&#8217;&eacute;v&egrave;nement, le bouton qui va servir d&#8217;ancre au calque et la position de ce calque par rapport au bouton choisi.</p>
<p align="center"><img width="480" height="449" border="0" src="/images/r_dream/extensions/ext_snap/interface_snap.gif" alt="Interface Snap Layers" /> </p>
<p>On s&eacute;lectionne le boutonUn en <span class="italique">Anchor Object</span>,   puis le layerUn qui va venir se positionner par rapport &agrave; ce bouton   dans <span class="italique">Layer   to Snap</span> et enfin la position par rapport &agrave; cette image dans <span class="italique">Presets</span>,   ici   &agrave; la droite du bouton (<span class="italique">To the Right of Image</span>). </p>
<p>En cliquant sur le bouton plus + de l&#8217;interface on ajoute autant d&#8217;&eacute;v&egrave;nement que voulu, au contraire en cliquant sur le bouton moins &#8211; on en &eacute;limine, on peut aussi les d&eacute;placer en utilisant les fl&egrave;ches haut et bas.</p>
<p>On peut donc jouer sur l&#8217;emplacement du calque par rapport &agrave;    l&#8217;image choisi, soit en utilisant le menu d&eacute;roulant <span class="italique">Presets</span>,    soit en rentrant les coordonn&eacute;es x y du calque choisi par rapport &agrave;    l&#8217;image, dans les champs <span class="italique">Offset Left </span>et <span class="italique">Offset Top</span>. </p>
<h2>Ev&egrave;nement onLoad et onResize</h2>
<p>Par d&eacute;faut l&#8217;extension s&#8217;applique &agrave; l&#8217;&eacute;v&egrave;nement <span class="script">onLoad</span> de la   balise <span class="script">&lt;body&gt;</span>, en cas de redimensionnement de la page il faut forcer le document &agrave; se recharger (pour NN4 et Opera) pour que les calques trouvent leurs positions par rapport aux images. </p>
<p>   Vous pouvez trouver, toujours sur <a href="http://www.projectseven.com" target="_blank">Project    Seven</a>, des extensions pour forcer le rechargement du document pour les navigateurs Netscape et Opera, &agrave; savoir les extensions Opera Resize Fix et ReDoIt. Vous pouvez trouver un bref descriptif de ces derni&egrave;res dans le tutorial de Mimi <a href="content/view/82/66/" target="_blank">Quelques extensions indispensables</a>. </p>
<h2>Affichage des calques</h2>
<p>Il nous reste &agrave; afficher/masquer les calques sur un &eacute;v&egrave;nement    <span class="script">OnMouseOver</span> des diff&eacute;rents boutons, pour ce faire vous pouvez utiliser les outils pr&eacute;sents dans les comportements de Dreamweaver en natif ou encore une fois les extensions de <a href="http://www.projectseven.com" target="_blank">Project&nbsp;Seven</a>,    &agrave; savoir <span class="italique">AutoLayers</span> et <span class="italique">autoHide    Layers</span>. </p>
<h2>Conclusion et exemple</h2>
<p>Cette extension est tr&egrave;s pratique pour la cr&eacute;ation de menus par exemple, mais pas seulement, car en la combinant &agrave; d&#8217;autres, vous pouvez jouer sur l&#8217;emplacement et les &eacute;v&egrave;nements de vos calques, et ce de mani&egrave;re tr&egrave;s simple, pour avoir des interfaces vraiment dynamiques et r&eacute;actives.<br />    Ce n&#8217;est qu&#8217;une histoire d&#8217;imagination&#8230;<br />    Vous pouvez voir l&#8217;exemple du tutorial sur <a href="images/r_dream/extensions/ext_snap/snap.htm" target="_blank">cette   page</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/comportement-snap-layers-de-projectseven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crypter un mot de passe</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-crypter-un-mot-de-passe/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-crypter-un-mot-de-passe/#comments</comments>
		<pubDate>Wed, 27 Jul 2005 18:41:23 +0000</pubDate>
		<dc:creator>Bertrand Gac</dc:creator>
				<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[comportements serveur]]></category>
		<category><![CDATA[Dreamweaver dynamique]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-crypter-un-mot-de-passe/</guid>
		<description><![CDATA[Crypter un mot de passe Ce comportement serveur permet de crypter rapidement un mot de passe en utilisant la fonction md5() de PHP. Elle peut être utile si vous utilisez les autres comportements serveurs disponibles sur Flashxpress, qui utilisent tous cette méthode pour les authentifications. Vous.pouvez ainsi l&#8217;utiliser dans un formulaire d&#8217;insertion d&#8217;enregistrement. Le code [...]]]></description>
			<content:encoded><![CDATA[<h2>Crypter un mot de passe</h2>
<p align="left">Ce comportement serveur permet de crypter rapidement      un mot de passe en utilisant la fonction <span class="script">md5()</span> de PHP. Elle peut être utile si vous utilisez les autres comportements serveurs disponibles sur Flashxpress, qui utilisent tous cette méthode pour les authentifications.</p>
<p align="center"><img title="Crypter un mot de passe" src="/images/r_dream/comport_serveur/crypter/crypter.gif" border="0" alt="" width="450" height="172" /></p>
<p align="left">Vous.pouvez ainsi l&#8217;utiliser dans un formulaire d&#8217;insertion d&#8217;enregistrement. Le code généré se place en début de fichier.<br />
Pensez à prévoir un champ de table adapté,      de type VARCHAR(50) par exemple.</p>
<p align="center"><a title="CreerPass.mxp" name="file" href="images/r_dream/comport_serveur/crypter/CreerPass.mxp" target="_self"><img src="mambots/editors/mosce/jscripts/tiny_mce/plugins/filemanager/InsertFile/img/ext/mxp.gif" border="0" alt="CreerPass.mxp" align="middle" /> CreerPass.mxp (<span id="4.81 KB,null" style="font-size: 80%;">4.81 KB)</span></a></p>
<p><span id="more-491"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-crypter-un-mot-de-passe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authentification HTTP avec MySql</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-http-avec-mysql/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-http-avec-mysql/#comments</comments>
		<pubDate>Wed, 27 Jul 2005 13:28:15 +0000</pubDate>
		<dc:creator>Bertrand Gac</dc:creator>
				<category><![CDATA[Dreamweaver dynamique]]></category>
		<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[comportements serveur]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-http-avec-mysql/</guid>
		<description><![CDATA[Ce comportment utilise la fonction header() de PHP pour demander une authentification au client, générant ainsi l&#8217;apparition d&#8217;une fenêtre de demande d&#8217;utilisateur et de mot de passe. Une fois que les champs ont été remplis, l&#8217;URL sera de nouveau appelée, avec les variables $PHP_AUTH_USER, $PHP_AUTH_PW contenant respectivement le nom d&#8217;utilisateur et le mot de passe. [...]]]></description>
			<content:encoded><![CDATA[<p>Ce comportment utilise la fonction header() de PHP pour demander une authentification au client, générant ainsi l&#8217;apparition d&#8217;une fenêtre de demande d&#8217;utilisateur et de mot de passe. Une fois que les champs ont été remplis, l&#8217;URL sera de nouveau appelée, avec les variables $PHP_AUTH_USER, $PHP_AUTH_PW contenant respectivement le nom d&#8217;utilisateur et le mot de passe. Ceux-ci sont ensuite comparées aux valeurs trouvées dans la table MySql.</p>
<h2>Avertissement</h2>
<p class="grasRouge">Les fonctions d&#8217;authentification HTTP de PHP ne sont disponibles que si PHP est exécuté comme module Apache, et non pas sous la forme d&#8217;un CGI.</p>
<p>Vous pouvez déterminer cela en faisant un fichier de      test PHP avec la fonction <span class="script">phpinfo()</span> chez votre hébergeur.<br />
Si dans le résultat, en début de fichier, vous ne voyez pas apparaitre      cette mention <strong>Server API Apache</strong> mais à la      place <strong>Server API CGI</strong>, vous ne pourrez pas utiliser      ce comportement (valable pour Apache 1.3x, pas testé sous Apache 2.4x)</p>
<p>La comparaison du mot de passe s&#8217;effectue à l&#8217;aide      de la fonction PHP <span class="script">md5()</span>.<br />
Il est donc impératif qu&#8217;au moment de l&#8217;enregistrement de ce visiteur, ce mot de passe ait été rentré à l&#8217;aide de la même fonction! (Voir le comportement &laquo;&nbsp;Crypter un mot de passe&nbsp;&raquo;).</p>
<h2>Exemple de fenêtre d&#8217;authentification</h2>
<p align="center"><img title="Fenêtre d 'authentification" src="/images/r_dream/comport_serveur/auth/authhttp1/fenauth.gif" border="0" alt="" width="326" height="289" /></p>
<h2>L&#8217;interface du comportement</h2>
<p align="center"><img title="Interface du comportement" src="/images/r_dream/comport_serveur/auth/authhttp1/AutthHTTP1.gif" border="0" alt="" width="493" height="511" /></p>
<p>Dans le champ <span class="italique">Texte à afficher</span>, vous pouvez      rentrer du HTML comme ci-dessous, proposant, en cas de refus, un nouvel essai      :</p>
<blockquote class="source"><p>&lt;p align=&nbsp;&raquo;center&nbsp;&raquo;&gt;Acc&amp;egrave;s refus&amp;eacute;&lt;/p&gt;<br />
&lt;p align=&nbsp;&raquo;center&nbsp;&raquo;&gt;&lt;a href=&nbsp;&raquo;&lt;?php $_SERVER['PHP_SELF']?&gt;&nbsp;&raquo;&gt;Nouvel          essai&lt;/a&gt;&lt;/p&gt;</p></blockquote>
<p align="center"><a title="AuthHTTPSql.mxp" name="file" href="images/r_dream/comport_serveur/auth/authhttp1/AuthHTTPSql.mxp" target="_self"><img src="mambots/editors/mosce/jscripts/tiny_mce/plugins/filemanager/InsertFile/img/ext/mxp.gif" border="0" alt="AuthHTTPSql.mxp" align="middle" /> AuthHTTPSql.mxp (<span id="11.24 KB,null" style="font-size: 80%;">11.24 KB)</span></a></p>
<p><span id="more-495"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-http-avec-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Authentification PHP et MySql</title>
		<link>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-php-et-mysql/</link>
		<comments>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-php-et-mysql/#comments</comments>
		<pubDate>Wed, 27 Jul 2005 13:24:12 +0000</pubDate>
		<dc:creator>Bertrand Gac</dc:creator>
				<category><![CDATA[Dreamweaver dynamique]]></category>
		<category><![CDATA[Dreamweaver extensions]]></category>
		<category><![CDATA[Tutoriels Dreamweaver]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[comportements serveur]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-php-et-mysql/</guid>
		<description><![CDATA[Les extensions présentes sur cette page font partie d&#8217;un ensemble appelé Gestion utilisateurs, disponible via le panneau Applications &#62; Comportements de serveur &#62; Flashxpress &#62; Gestion utilisateurs . Ce groupe d&#8217;extensions comprend aussi les deux suivantes : Mot de passe oublié et Crypter un mot de passe Md5. NOTES : Dreamweaver MX 2004 et Windows [...]]]></description>
			<content:encoded><![CDATA[<p>Les extensions présentes sur cette page font partie d&#8217;un ensemble appelé <span class="italique">Gestion utilisateurs</span>, disponible via le panneau <span class="italique">Applications &gt; Comportements de serveur &gt; Flashxpress &gt; Gestion utilisateurs</span> . Ce groupe d&#8217;extensions comprend aussi les deux suivantes :</p>
<ul>
<li> <a title="Extension Mot de passe oublié" href="content/view/72/66/" target="_blank">Mot de passe oublié</a> et</li>
<li> <a title="Extension Crypter un mot de passe" href="content/view/68/66/" target="_blank">Crypter un mot de passe Md5</a>.</li>
</ul>
<p align="center"><img title="Accès au groupe d'extension Gestion utilisateurs" src="/images/r_dream/comport_serveur/auth/authmysql/images/1.gif" border="0" alt="" width="424" height="116" /></p>
<p>NOTES :</p>
<ol>
<li><span class="grasRouge">Dreamweaver MX 2004 et Windows uniquement (en fait cette extension fonctionne aussi sous Mac, le seul problème sur cette plate-forme est l&#8217;interface du comportement qui peut apparaitre différemment, avec en particulier des champs inaccessibles&#8230;ou presque. Tout retour d&#8217;utilisateur de Mac sur ce sujet serait le bienvenu&#8230;).<br />
</span></li>
<li><span class="grasRouge">Tester ces extensions en réel, c&#8217;est-à-dire chez votre hébergeur ! Je n&#8217;utilise pas EasyPhp&#8230;.et votre hébergeur non plus&#8230;<br />
</span></li>
<li>Si vous aviez installé la version précédente de cette extension, il faut impérativement la désinstaller.</li>
</ol>
<p><span id="more-493"></span></p>
<h2>Exemple de formulaire d&#8217;authentification</h2>
<p>C&#8217;est un formulaire basique, comportant deux champs textes et une case à cocher.<br />
Donnez aux champs de formulaires le même nom que celui des colonnes correspondantes dans votre table MySQL.<br />
Ici le champ <span class="italique">Email</span> s&#8217;appelle&#8230;email et le champ <span class="italique">Mot de passe</span> s&#8217;appelle pass. Le nom et la valeur de la case à cocher n&#8217;ont pas d&#8217;importance.<br />
Notez qu&#8217;aucune action n&#8217;est mentionnée dans la balise <span class="script">&lt;form&gt;</span>.</p>
<blockquote class="source"><p>&lt;form name=&nbsp;&raquo;form1&#8243; id=&nbsp;&raquo;form1&#8243; method=&nbsp;&raquo;post&nbsp;&raquo; action=&nbsp;&raquo;"&gt;<br />
&lt;input type=&nbsp;&raquo;text&nbsp;&raquo; name=&nbsp;&raquo;email&nbsp;&raquo; id=&nbsp;&raquo;email&nbsp;&raquo; /&gt;<br />
&lt;input type=&nbsp;&raquo;text&nbsp;&raquo; name=&nbsp;&raquo;pass&nbsp;&raquo; id=&nbsp;&raquo;pass&nbsp;&raquo; /&gt;<br />
&lt;input type=&nbsp;&raquo;checkbox&nbsp;&raquo; name=&nbsp;&raquo;memoriser&nbsp;&raquo; value=&nbsp;&raquo;checkbox&nbsp;&raquo; id=&nbsp;&raquo;memoriser&nbsp;&raquo; /&gt;<br />
&lt;input type=&nbsp;&raquo;submit&nbsp;&raquo; name=&nbsp;&raquo;Submit&nbsp;&raquo; value=&nbsp;&raquo;Envoyer&nbsp;&raquo; id=&nbsp;&raquo;Submit&nbsp;&raquo; /&gt;<br />
&lt;/form&gt;</p></blockquote>
<p align="center"><img title="Exemple de formulaire d'authentification" src="/images/r_dream/comport_serveur/auth/authmysql/images/form001.gif" border="0" alt="Exemple de formulaire d'authentification" width="273" height="141" /></p>
<h2>Authentification utilisateur</h2>
<p>Ce comportement permet d&#8217;identifier un visiteur. DMX 2004 dispose déjà d&#8217;un comportement de ce type.<br />
Celui-ci offre quelques options supplémentaires telles que :</p>
<ul>
<li>Gestion des méthodes de cryptage des mots de passe</li>
<li>Activation ou non d&#8217;un cookie</li>
<li>Instauration d&#8217;un délai d&#8217;inactivité</li>
</ul>
<p align="center">Onglet <span class="italique">Base</span></p>
<p align="center"><img title="Authentification utilisateur : onglet Base" src="/images/r_dream/comport_serveur/auth/authmysql/images/auth_1.gif" border="0" alt="Authentification utilisateur 1" width="566" height="521" /></p>
<ul>
<li>Si l&#8217;identification échoue, le visiteur est redirigé vers un fichier de refus, à partir duquel on peut l&#8217;inviter à s&#8217;enregistrer, ou à contacter l&#8217;administrateur etc.</li>
<li>Si l&#8217;identification réussit, le nom d&#8217;utilisateur est stocké dans une variable de session, disponible tout le temps de sa visite. Cette variable de session est basée sur un champ de la table SQL, par exemple, l&#8217;email du visiteur, ou son pseudo etc.</li>
</ul>
<p align="center">
<p align="center">Onglet <span class="italique">Options</span></p>
<p align="center"><img title="Authentification utilisateur : onglet Options" src="/images/r_dream/comport_serveur/auth/authmysql/images/auth_2.gif" border="0" alt="Authentification utilisateur 2" width="566" height="521" /></p>
<p align="center">
<ul>
<li><span class="italique">Niveaux d&#8217;accès</span><br />
En plus de la vérification du login et du mot de passe, vous pouvez choisir de vérifier le niveau&nbsp;&raquo; d&#8217;accès, autrement dit le niveau de privilèges. C&#8217;est par exemple un champ réservé dans votre table qui peut contenir des valeurs telles que &laquo;&nbsp;Administrateur&nbsp;&raquo;, &laquo;&nbsp;Membre&nbsp;&raquo;, etc.</li>
<li><span class="italique">Mot de passe</span><br />
Vous pouvez choisir une méthode de cryptage du mot de passe, en fonction bien sûr de celle que vous avez utilisée lorsque les visiteurs se sont enregistrés la première fois dans la base.L&#8217;erreur la plus courante concernant les mots de passe cryptés est de ne pas prévoir un champ dans la table suffisamment grand pour recevoir une chaine de caractères cryptée. À titre d&#8217;exemple, voici une copie d&#8217;écran de deux mots de passe cryptés, le premier avec <span class="script">MD5</span>, le second avec <span class="script">PASSWORD</span>.<br />
Si vous voulez utiliser <span class="script">MD5</span>, prévoyez un champ de type VARCHAR(32). Pour <span class="script">PASSWORD</span> , VARCHAR(41) minimum.</li>
</ul>
<p align="center"><img title="Exemples de mots de passe cryptés" src="/images/r_dream/comport_serveur/auth/authmysql/images/capt_auth_2.gif" border="0" alt="" width="338" height="110" /></p>
<p><span class="grasRouge">L&#8217;utilisation des deux  options suivantes n&#8217; a de sens que si vous utilisez parallèlement l&#8217;extension <em>Protéger une page</em>. </span></p>
<ul>
<li><span class="italique">Mémoriser les informations</span><br />
Vous avez la possibilité d&#8217;installer un cookie sur le poste client. Ceci permettra à votre visiteur de ne plus avoir à s&#8217;identifier lorsqu&#8217;il reviendra sur le site .<br />
Si vous souhaitez donner un durée de vie &laquo;&nbsp;illimitée&nbsp;&raquo; à ce ccokie , rentrez simplement une valeur telle que 3650 jours par exemple (10 ans devrait faire l&#8217;affaire, non ?)</li>
<li><span class="italique">Désactiver la session</span><br />
Cette option permet d&#8217;instaurer un délai d&#8217;inactivité. Elle est incompatible avec la précédente.<br />
Instaurer un délai d&#8217;inactivité fournit un moyen supplémentaire d&#8217;accroitre la sécurité d&#8217;une page en déterminant l&#8217;heure d&#8217;arrivée du visiteur sur la page. Si aucune activité n&#8217;est détectée pendant plus de x minutes (rechargement de page, navigation entre pages), la session est désactivée. Si le visiteur tente d&#8217;accéder à une autre page, ou de recharger la page courante, il devra s&#8217;authentifier à nouveau.<br />
Cela peut être utile dans le cas où une personne consulte des pages confidentielles, puis pour une raison quelconque délaisse son ordinateur. Au bout de X temps, quelqu&#8217;un d&#8217;autre passant derrière lui, qui tenterait d&#8217;accéder à d&#8217;autres pages s&#8217;en verrait refuser l&#8217;accès.</li>
</ul>
<p align="center"><a title="FormAuth.mxp" name="file" href="images/r_dream/comport_serveur/auth/authmysql/FormAuth.mxp" target="_self"><img src="/images/icones/mxp.gif" border="0" alt="FormAuth.mxp" align="middle" /> FormAuth.mxp (<span id="18.08 KB,null" style="font-size: 80%;">18.08 KB)</span></a>{mospagebreak }</p>
<p><!-- xxxxxxxxxxxxxxx--></p>
<h2>Protéger une page<span class="titrerubriquerouge"> </span></h2>
<p>Ce comportement vérifie l&#8217;existence ou non d&#8217;une variable de session. Cette variable peut provenir d&#8217;un formulaire d&#8217;authentification.</p>
<p align="center">Onglet <span class="italique">Base</span></p>
<p align="center"><img title="Protéger une page : onglet Base" src="/images/r_dream/comport_serveur/auth/authmysql/images/prot_1.gif" border="0" alt="Protéger une page" width="522" height="409" /></p>
<ul>
<li><span class="italique">Variable de session</span><br />
Elle doit être basée sur un des champs du  formulaire d&#8217;authentification.</li>
<li> <span class="italique">URL de redirection</span><br />
Si cette variable n&#8217;existe pas, c&#8217;est que le visiteur ne s&#8217;est pas authentifié auparavant. Il est alors redirigé vers une autre page.</li>
<li><span class="italique">Autoriser l&#8217;accès par niveau</span><br />
Vous pouvez contrôler l&#8217;accès selon un niveau de privilège.<br />
Si par exemple, la page n&#8217;est accessible qu&#8217;à un administrateur, tout autre visiteur n&#8217;ayant pas ce statut sera redirigé vers une page de refus. Là encore, ce niveau doit être déterminé via le comportement <span class="italique">Authentification utilisateur</span>.</li>
</ul>
<p align="center">Onglet <span class="italique">Options</span></p>
<p align="center"><img title="Protéger une page ; onglet Options" src="/images/r_dream/comport_serveur/auth/authmysql/images/prot_2.gif" border="0" alt="Protéger une page" width="522" height="409" /></p>
<ul>
<li><span class="italique">Options supplémentaires</span><br />
N&#8217;utilisez ces options que si vous les avez paramétrées dans le comportement <span class="italique">Authentification utilisateur</span>.</p>
<ul>
<li>U<span class="italique">tiliser un cookie</span> : la présence du cookie est vérifiée lors de l&#8217;accès à la page. Si il est trouvé, l&#8217;accès à la page est autorisé. Notez bien qu&#8217;il ne s&#8217;agit pas d&#8217;une re-vérification de données (ce qui n&#8217;aurait pas de sens) mais simplement de vérifier la présence ou non de ce cookie. Pour que ce cookie existe, il doit avoir éte écrit lors de l&#8217;authentification.</li>
<li><span class="italique">Paramétrer un délai d&#8217;inactivité</span> : quand vous utilisez cette option,  l&#8217;heure d&#8217;arrivée du visiteur sur les pages protégées est enregistrée.<br />
Supposons que pour une raison quelconque, ce visiteur oublie de refermer une page, ou s&#8217;absente tout simplement pendant un certain temps, puis que lui ou un autre tente plus tard de recharger la page ou de naviguer dans les pages réservées, alors il devra s&#8217;identifier à nouveau si le délai est dépassé.<br />
C&#8217;est un moyen  d&#8217;accroitre la sécurité des espaces réservés à des membres.</li>
</ul>
</li>
</ul>
<div><a title="ProtectPage.mxp" name="file" href="images/r_dream/comport_serveur/auth/authmysql/ProtectPage.mxp" target="_self"><img src="/images/icones/mxp.gif" border="0" alt="ProtectPage.mxp" align="middle" /> ProtectPage.mxp (<span id="9.98 KB,null" style="font-size: 80%;">9.98 KB)</span></a></div>
<h2>Fermer une session</h2>
<p align="left">Cette extension permet simplement de supprimer toutes les informations de session du visiteur.</p>
<p align="center"><img title="Fermer une session" src="/images/r_dream/comport_serveur/auth/authmysql/images/fermer_1.gif" border="0" alt="Fermer une session" width="510" height="206" /></p>
<p align="center"><a title="FermerSession.mxp" name="file" href="images/r_dream/comport_serveur/auth/authmysql/FermerSession.mxp" target="_self"><img src="/images/icones/mxp.gif" border="0" alt="FermerSession.mxp" /> FermerSession.mxp (<span id="5.66 KB,null" style="font-size: 80%;">5.66 KB)</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flashxpress.net/ressources-dreamweaver/comportement-serveur-authentification-php-et-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

