<?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>Claire Desbois</title>
	<atom:link href="http://www.claire-desbois.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.claire-desbois.fr</link>
	<description></description>
	<lastBuildDate>Sun, 15 Apr 2012 19:36:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Drupal : Gérer la base de données avec Drush</title>
		<link>http://www.claire-desbois.fr/drupal-gerer-la-base-de-donnees-avec-drush/</link>
		<comments>http://www.claire-desbois.fr/drupal-gerer-la-base-de-donnees-avec-drush/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 03:11:34 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[base de données]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[drush]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=210</guid>
		<description><![CDATA[Comme expliqué dans un précédent article, Drush est un outil indispensable pour tout développeur Drupal qui veut s&#8217;économiser du temps et des cheveux blancs. En plus de permettre une gestion rapide et efficace des modules, Drush permet aussi de gérer votre base de données en un clin d&#8217;oeil. Vous pouvez ainsi vous y connectez, y [...]]]></description>
			<content:encoded><![CDATA[<p>Comme expliqué dans un <a href="http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/">précédent article</a>, Drush est un outil indispensable pour tout développeur Drupal qui veut s&#8217;économiser du temps et des cheveux blancs. En plus de permettre une gestion rapide et efficace des modules, Drush permet aussi de gérer votre base de données en un clin d&#8217;oeil. Vous pouvez ainsi vous y connectez, y faire des mises à jour, en faire des backup ou au contraire, la réinstaller et ceci grâce à quelques lignes de commandes. Je précise, je travaille encore et toujours sur GNU/Linux.</p>
<p>Avant de commencer à expliquer l&#8217;utilisation de Drush pour la base de données, j&#8217;explique d&#8217;abord une petite subtilité avant que les nouveaux utilisateurs s&#8217;arrachent totalement les cheveux. Pour utiliser la commande Drush, vous devez être dans le dossier de votre site. C&#8217;est à dire, pas seulement dans l&#8217;arborescence de votre installation Drupal mais bien dans le dossier sites/mon.site.drupal. Que vous soyez directement dans ce dossier ou dans un sous-dossier n&#8217;a aucune importance, l&#8217;important, c&#8217;est quand remontant dans l&#8217;arborescence, Drush finissent par trouver le fichier settings.php de votre site. Si vous êtes dans le dossier sites/all ou dans un autre dossier général de votre installation Drupal, Drush ne pourra pas trouver les informations de votre site pour savoir comment exécuter vos commandes. Vous avez donc deux possibilités:<br />
- Exécuter Drush dans l&#8217;arborescence de /sites/mon.site.drupal<br />
- Ajouter l&#8217;option &#45;&#45;uri=mon.site.drupal</p>
<p>Les deux possibilités sont un peu contraignante, la première vous oblige à changer de dossier si jamais vous êtes dans sites/all ou ailleurs, la deuxième peut vous obliger à taper un nom de dossier possiblement long. Dans un autre article, j&#8217;expliquerais une alternative à ce second problème grâce aux alias.</p>
<p>Revenons à notre base de données: si vous désirez vous connecter en 1 seconde à la base de données de votre site en ligne de commande, il vous suffit dans votre prompt de taper la commande:</p>
<div class="encadre_code">drush &#45;&#45;uri=[nom-du-site] sqlc</div>
<p>Drush va directement récupérer le nom d&#8217;utilisateur, le mot de passe et le nom de la base dans votre fichier settings.php et va simplement invoquer la commande de MySQL ou Postgres pour se connecter directement à la base. Vous n&#8217;avez plus qu&#8217;à balancer vos requêtes SQL.</p>
<p>Une autre chose très pratique avec Drush est la possibilité de faire des backup de votre base de données en à peu près 2 secondes chrono. Simple, efficace, rapide, même les personnes qui ont peur de la ligne de commande et qui utilisent toujours l&#8217;interface de PhpMyAdmin pourrait bien adopter cette méthode:</p>
<div class="encadre_code">drush &#45;&#45;uri=[nom-du-site] sql-dump &gt; sauvegarde_bdd.sql</div>
<p>Votre sauvegarde sql va donc simplement s&#8217;écrire dans le fichier sauvegarde_bdd.sql. Faites attention d&#8217;avoir les droits d&#8217;écrire dans le dossier où vous voulez que le fichier sauvegarde_bdd.sql se crée bien entendu. Je rappelle que l&#8217;utilisateur qui à les droits sur les dossier d&#8217;apache doit être www-data.</p>
<p>Étant donné que je me sers beaucoup de cette commande pour faire des migrations, par exemple, passer mon site de la version développement à la version pré-production, je donne mon astuce pour faire changer le nom du site dans le sql en 2 secondes (utile pour le nom du site mais aussi et surtout pour le chemin de fichiers).</p>
<div class="encadre_code">sed -i &#8216;s/valeur_ancien/valeur_nouvelle/g&#8217; sauvegarde_bdd.sql</div>
<p>Pour ceux qui ne connaissent pas la commande sed, c&#8217;est une commande très pratique qui permet de faire des transformations de texte sans ouvrir d&#8217;éditeur. Dans la commande ci-dessus, j&#8217;effectue une substitution, c&#8217;est à dire que je vais échanger une chaîne de caractère contre une autre. Nous allons nous intéresser d&#8217;abord à ce qui se trouve entre quote, c&#8217;est à dire:</p>
<div class="encadre_code">&#8216;s/valeur_ancien/valeur_nouvelle/g&#8217;</div>
<p>Cette partie est divisée en quatre avec comme symbole de division un slash. Ce symbole séparateur n&#8217;a pas besoin d&#8217;être nécessairement un slash, on retrouve beaucoup le dièse # dans les exemples de cette commande. La seule règle, c&#8217;est que votre séparateur ne doit être présent dans cette partie de la commande qu&#8217;en tant que séparateur.<br />
Je signifie à sed que je vais l&#8217;utiliser pour une substitution avec la lettre &#8216;s&#8217; au tout début de ma chaîne entre côte. Après mon séparateur, j&#8217;écris la chaîne de caractère que je souhaite remplacer. Nouveau séparateur, j&#8217;indique la chaîne de caractère qui remplacera la première. Le g après le dernier séparateur indique que je désire que cette opération soit effectué sur la totalité de mon fichier.<br />
Pour la globalité de la commande, le nom du fichier que l&#8217;on désire utilisé pour faire la substitution se retrouve à la fin, l&#8217;option -i au début indique que l&#8217;on désire que le résultat soit pris en compte dans le fichier. En effet, si vous n&#8217;utilisez pas cette option, la commande affichera son résultat dans la console. Si vous ne désirez pas envoyer le nouveau résultat dans le fichier, vous devez utiliser des redirections de flux comme ceci:</p>
<div class="encadre_code">sed &#8216;s/valeur_ancien/valeur_nouvelle/g&#8217; &lt; sauvegarde_bdd.sql &gt; sauvegarde_bdd_substitution.sql</div>
<p>Ainsi, votre fichier sauvegarde_bdd.sql restera le même et son contenu avec la chaîne remplacée sera dans sauvegarde_bdd_substitution.sql.<br />
Sachez que la commande sed ne permet pas de faire que cela, très loin de là. Vous pouvez utiliser des expressions régulières dans vos substitution et faire d&#8217;autres choses bien plus complexe encore. Mais je vous laisse découvrir ça sur le site de <a href='http://www.gnu.org/software/sed/manual/sed.html' title='GNU.org - Manuel de Sed'> de GNU.org</a> (et ailleurs si les sites tout blancs vous font peur).</p>
<p>Pour réinstaller votre ancienne version de la base sur votre site (ou installer la nouvelle) en quelques secondes, il vous suffit d&#8217;utiliser cette commande:</p>
<div class="encadre_code">cat sauvegarde_bdd.sql | drush –uri=[nom-du-site] sqlc</div>
<p>Oui, c&#8217;est super simple dans l&#8217;idée, on affiche le contenu de notre fichier sql et avec un pipe, on renvoie ce contenu vers la commande drush sqlc. On attend que la commande s&#8217;exécute et voilà. Lancer la commande pour vider le cache histoire de prévenir d&#8217;éventuels problèmes :</p>
<div class="encadre_code">drush –uri=[nom-du-site] cc all</div>
<p>Et voilà. Simple et très économique en temps.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Drupal+%3A+G%C3%A9rer+la+base+de+donn%C3%A9es+avec+Drush+http%3A%2F%2Fis.gd%2FT41xhh+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/drupal-gerer-la-base-de-donnees-avec-drush/&amp;t=Drupal+%3A+G%C3%A9rer+la+base+de+donn%C3%A9es+avec+Drush"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/drupal-gerer-la-base-de-donnees-avec-drush/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/drupal-gerer-la-base-de-donnees-avec-drush/&amp;title=Drupal+%3A+G%C3%A9rer+la+base+de+donn%C3%A9es+avec+Drush&amp;summary=Comme+expliqu%C3%A9+dans+un+pr%C3%A9c%C3%A9dent+article%2C+Drush+est+un+outil+indispensable+pour+tout+d%C3%A9veloppeur+Drupal+qui+veut+s%27%C3%A9conomiser+du+temps+et+des+cheve...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/drupal-gerer-la-base-de-donnees-avec-drush/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;ACTA ne sauvera pas les créateurs</title>
		<link>http://www.claire-desbois.fr/lacta-ne-sauvera-pas-les-createurs/</link>
		<comments>http://www.claire-desbois.fr/lacta-ne-sauvera-pas-les-createurs/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 01:21:56 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[ACTA]]></category>
		<category><![CDATA[droit d'auteur]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=213</guid>
		<description><![CDATA[Sans répéter inlassablement ce qui a déjà dit et redit, je poste la vidéo de la Quadrature du Net Et je met également des liens divers mais très intéressant pour que tout un chacun comprenne toute la complexité des débats qui se discute en ce moment. Benjamin Bayard parle de la différence entre Internet et [...]]]></description>
			<content:encoded><![CDATA[<p>Sans répéter inlassablement ce qui a déjà dit et redit, je poste la vidéo de la <a href="https://www.laquadrature.net/">Quadrature du Net</a></p>
<p><iframe width='560' height='315' src="http://www.youtube.com/embed/citzRjwk-sQ" frameborder="0"></iframe></p>
<p>Et je met également des liens divers mais très intéressant pour que tout un chacun comprenne toute la complexité des débats qui se discute en ce moment.<br />
Benjamin Bayard parle de la différence entre Internet et Minitel et de toutes les implications de cette différence dans cette excellente conférence:</p>
<p><iframe src="http://player.vimeo.com/video/3110600?title=0&amp;byline=0&amp;portrait=0" width="400" height="327" frameborder="0"></iframe></p>
<p><a href="http://vimeo.com/3110600">Minitel 2.0 par Benjamin Bayart</a> from <a href="http://vimeo.com/gaspard">gaspard</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Jeremie Zimmermann s&#8217;exprime sur la culture du gratuit, et la volonté excessive et disproportionnée de contrôler internet pour protéger des oeuvres culturelles:</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/K8QGynkh_mw" frameborder="0"></iframe></p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=L%E2%80%99ACTA+ne+sauvera+pas+les+cr%C3%A9ateurs+http%3A%2F%2Fis.gd%2FByzCZR+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/lacta-ne-sauvera-pas-les-createurs/&amp;t=L%E2%80%99ACTA+ne+sauvera+pas+les+cr%C3%A9ateurs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/lacta-ne-sauvera-pas-les-createurs/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/lacta-ne-sauvera-pas-les-createurs/&amp;title=L%E2%80%99ACTA+ne+sauvera+pas+les+cr%C3%A9ateurs&amp;summary=Sans+r%C3%A9p%C3%A9ter+inlassablement+ce+qui+a+d%C3%A9j%C3%A0+dit+et+redit%2C+je+poste+la+vid%C3%A9o+de+la+Quadrature+du+Net%0D%0A%0D%0A%0D%0A%0D%0AEt+je+met+%C3%A9galement+des+liens+divers+mais+...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/lacta-ne-sauvera-pas-les-createurs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction à Drush: Installation et gestion des modules</title>
		<link>http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/</link>
		<comments>http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 01:48:42 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[gestion]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[module]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=194</guid>
		<description><![CDATA[L&#8217;outil Drush est à Drupal ce que Rake est à Rails: Un outil de gestion en ligne de commande très pratique et qui permet d&#8217;économiser beaucoup de temps. La dernière version ne se trouve pas dans les dépots d&#8217;Ubuntu 10.04, vous allez devoir récupérer le .deb de Debian qui se trouve ici: http://packages.debian.org/fr/squeeze/all/drush/download Installez le [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;outil Drush est à Drupal ce que Rake est à Rails: Un outil de gestion en ligne de commande très pratique et qui permet d&#8217;économiser beaucoup de temps.</p>
<p>La dernière version ne se trouve pas dans les dépots d&#8217;Ubuntu 10.04, vous allez devoir récupérer le .deb de Debian qui se trouve ici: <a href="http://packages.debian.org/fr/squeeze/all/drush/download">http://packages.debian.org/fr/squeeze/all/drush/download</a></p>
<p>Installez le package normalement. Après l&#8217;installation, vous pouvez utiliser la commande Drush. En lançant simplement la commande sans la moindre option, vous obtiendrez la liste des commandes.</p>
<p>Dans cette liste des commandes, vous pouvez voir l&#8217;exemple suivant:</p>
<div class="encadre_code">
drush dl cck zen              <span style="padding-left: 30px;">            Download CCK module and Zen theme.</span>
</div>
<p>En effet, la commande <em>drush pm-download</em> ou son raccourci <em>drush dl</em> permet de télécharger directement des modules et des thèmes se trouvant sur le site de Drupal.org. Si vous faites la commande <em>drush help dl</em>, vous verrez que cette commande permet déjà de faire beaucoup de choses. Mais pour le moment, je vais simplement vous présenter le téléchargement et l&#8217;activation des modules pour votre site drupal. Via le prompt, placez vous là où se trouve le fichier settings.php de votre site. Nous allons installer les modules cck sur le site Drupal. Dans un premier temps, il faut télécharger ce module:</p>
<div class="encadre_code">
calysto@GUNNM:/var/www/site_drupal/sites/default$ drush dl cck<br />
Project cck (6.x-2.9) downloaded to                                  [success]<br />
/var/www/site_drupal/sites/all/modules/cck.
</div>
<p>Après l&#8217;avoir téléchargé, on voudrait activer le module Content. Pour cela, il faut utiliser la commande <em>drush pm-enable</em> ou <em>drush en</em> comme ceci:</p>
<div class="encadre_code">
calysto@GUNNM:/var/www/site_drupal/sites/default$ drush en content<br />
The following projects will be enabled: content<br />
Do you really want to continue? (y/n): y<br />
content was enabled successfully.                                    [ok]
</div>
<p>Sachez que si vous désirez activer un module dépendant d&#8217;autres non activés mais présent dans le projet, il va vous demander s&#8217;il peut aussi les activer.</p>
<div class="encadre_code">
calysto@GUNNM:/var/www/site_drupal/sites/default$ drush en nodereference<br />
The following projects will be enabled: text, optionwidgets, nodereference<br />
Do you really want to continue? (y/n): y<br />
nodereference was enabled successfully.                              [ok]<br />
optionwidgets was enabled successfully.                              [ok]<br />
text was enabled successfully.                                       [ok]
</div>
<p>Cette commande vous permet donc d&#8217;installer facilement et rapidement de nombreux modules. Si vous désirez désinstaller des modules, il vous faudra procéder en 2 étapes. D&#8217;abord désactiver le module pour qu&#8217;il ne soit plus utilisé sur votre site puis le désinstaller pour supprimer variables et tables qui y sont lié. La désactivation est aussi intéressante si vous désirez garder les données d&#8217;un module sans que celui soit encore utilisable. Pour désactiver un module, il faut utiliser la commande <em>drush pm-disable</em> ou son raccourci <em>drush dis</em> comme ceci:</p>
<div class="encadre_code">
calysto@GUNNM:/var/www/site_drupal/sites/default$ drush dis content<br />
The following projects will be disabled: content, nodereference, optionwidgets, text<br />
Do you really want to continue? (y/n): y<br />
content was disabled successfully.                                   [ok]<br />
nodereference was disabled successfully.                             [ok]<br />
optionwidgets was disabled successfully.                             [ok]<br />
text was disabled successfully.                                      [ok]
</div>
<p>En désactivant un module dont dépendent d&#8217;autres modules, vous les désactiverez en même temps. Pour désinstaller complètement un module, il faut lancer la commande <em>drush pm-uninstall</em> comme ci-dessous:</p>
<div class="encadre_code">
calysto@GUNNM:/var/www/site_drupal/sites/default$ drush pm-uninstall content<br />
The following modules will be uninstalled: content<br />
Do you really want to continue? (y/n): y<br />
content was successfully uninstalled.                                [ok]
</div>
<p>Même si d&#8217;autres modules sont dépendants de content, il sera le seul désinstaller.</p>
<p>Voilà, je pense faire d&#8217;autres tutoriels pour cette commande plus tard, vous avez déjà de quoi vous faciliter la vie avec ces quelques commandes.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Introduction+%C3%A0+Drush%3A+Installation+et+gestion+des+modules+http%3A%2F%2Fis.gd%2FdCQ2V1+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/&amp;t=Introduction+%C3%A0+Drush%3A+Installation+et+gestion+des+modules"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/&amp;title=Introduction+%C3%A0+Drush%3A+Installation+et+gestion+des+modules&amp;summary=L%27outil+Drush+est+%C3%A0+Drupal+ce+que+Rake+est+%C3%A0+Rails%3A+Un+outil+de+gestion+en+ligne+de+commande+tr%C3%A8s+pratique+et+qui+permet+d%27%C3%A9conomiser+beaucoup+de+t...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/introduction-a-drush-installation-et-gestion-des-modules/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Activation de clean url dans Drupal</title>
		<link>http://www.claire-desbois.fr/activation-de-clean-url-dans-drupal/</link>
		<comments>http://www.claire-desbois.fr/activation-de-clean-url-dans-drupal/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 22:25:57 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[Apache2]]></category>
		<category><![CDATA[clean url]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=174</guid>
		<description><![CDATA[Clean url est un module de Drupal qui permet les urls de votre site de façon simplifier en retirant la directive &#171;&#160;?q=&#160;&#187;. Ceci permet de faire des urls plus simple à écrire et à lire et est indispensable pour le fonctionnement de certains modules. Pour activer clean url dans Drupal, il faut d&#8217;abord régler certaines [...]]]></description>
			<content:encoded><![CDATA[<p>Clean url est un module de Drupal qui permet les urls de votre site de façon simplifier en retirant la directive &laquo;&nbsp;?q=&nbsp;&raquo;. Ceci permet de faire des urls plus simple à écrire et à lire et est indispensable pour le fonctionnement de certains modules. Pour activer clean url dans Drupal, il faut d&#8217;abord régler certaines choses dans Apache2.<br />
Dans un premier temps, il faut activer le module rewrite dans apache2. Ce module s&#8217;active de façon simple:</p>
<div class="encadre_code">sudo a2enmod rewrite</div>
<p>Si vous désirez le désactiver pour une raison ou une autre, la commande est également simple:</p>
<div class="encadre_code">sudo a2dismod rewrite</div>
<p>Une fois le module activé, il faut faire une modification dans votre vhost pour que apache2 reconnaissent les fichiers .htaccess. Par défaut dans apache2, le fichier qui gère votre vhost est dans /etc/apache2/sites-available et se nomme default. Éditez le avec les droits administrateurs, il devrait contenir ceci:</p>
<p style="padding-left: 30px;">‹VirtualHost *:80 ›</p>
<div class="encadre_code" style="padding-left: 30px;">
<p style="padding-left: 30px;">ServerAdmin webmaster@localhost<br />
DocumentRoot /var/www<br />
‹Directory /›</p>
<p style="padding-left: 60px;">Options FollowSymLinks<br />
AllowOverride None</p>
<p style="padding-left: 30px;">‹/Directory›<br />
‹Directory /var/www/›</p>
<p style="padding-left: 60px;">Options Indexes FollowSymLinks MultiViews<br />
AllowOverride None<br />
Order allow,deny<br />
allow from all</p>
<p style="padding-left: 30px;">‹/Directory›</p>
<p>&#8230;</p>
</div>
<p>Dans le fichier, la ligne</p>
<div class="encadre_code">AllowOverride None</div>
<p>indique qu&#8217;aucune commande contenu dans les .htaccess du dossier ne seront interprété. Et cela est vrai pour tous les dossiers en dessous sauf directive contraire. Pour activer l&#8217;interprétation des .htaccess pour notre site Drupal, il faut donc donner les bons paramètres dans le dossier contenant le site. J&#8217;ai donc rajouté ceci dans le fichier default à la suite des directives précédemment affichées:</p>
<p>‹Directory /var/www/site_drupal›</p>
<div class="encadre_code">
<p style="padding-left: 30px;">Options Indexes FollowSymLinks MultiViews<br />
AllowOverride All<br />
Order allow,deny<br />
allow from all&gt;</p>
<p>‹/Directory›</p>
</div>
<p>Il faut ensuite recharger les données d&#8217;apache, soit avec la commande</p>
<div class="encadre_code">sudo /etc/init.d/apache2 reload</div>
<p>qui permet de recharger les données sur les modules et les sites ou avec la commande</p>
<div class="encadre_code">sudo /etc/init.d/apache2 restart</div>
<p>qui permet de purement et simplement de redémarrer apache2 (plus violent si vous avez des sites qui tournent sur votre serveur, vous couperez leur fonctionnement)</p>
<p>Après ces différents paramétrages, vous devriez pouvoir démarrer le module Clean Url dans Drupal. Si toute fois cela ne fonctionne pas, vérifiez que votre Drupal a bien un fichier .htaccess à sa base. Il y en a un par défaut mais comme il s&#8217;agit d&#8217;un fichier caché, il se peut qu&#8217;il n&#8217;est pas été prit en compte si vous avez copier-coller les fichiers contenus dans le dossier de Drupal pour les mettre à la racine de votre site.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Activation+de+clean+url+dans+Drupal+http%3A%2F%2Fis.gd%2FNiy59P+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/activation-de-clean-url-dans-drupal/&amp;t=Activation+de+clean+url+dans+Drupal"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/activation-de-clean-url-dans-drupal/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/activation-de-clean-url-dans-drupal/&amp;title=Activation+de+clean+url+dans+Drupal&amp;summary=Clean+url+est+un+module+de+Drupal+qui+permet+les+urls+de+votre+site+de+fa%C3%A7on+simplifier+en+retirant+la+directive+%22%3Fq%3D%22.+Ceci+permet+de+faire+des+ur...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/activation-de-clean-url-dans-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation de Minecraft sous Linux</title>
		<link>http://www.claire-desbois.fr/installation-de-minecraft-sous-linux/</link>
		<comments>http://www.claire-desbois.fr/installation-de-minecraft-sous-linux/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 05:29:09 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[minecraft]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=189</guid>
		<description><![CDATA[Petit tutoriel d&#8217;aide pour lancer Minecraft sous Linux et plus précisément sous Ubuntu. En effet, même si Minecraft est en java et que le logiciel est censé fonctionner sous n&#8217;importe quel système, la réalité n&#8217;est pas aussi idyllique que la théorie. Pour commencer, sachez que Minecraft ne fonctionne pas avec openjdk, la version 100% libre [...]]]></description>
			<content:encoded><![CDATA[<p>Petit tutoriel d&#8217;aide pour lancer Minecraft sous Linux et plus précisément sous Ubuntu.  En effet, même si Minecraft est en java et que le logiciel est censé fonctionner sous n&#8217;importe quel système, la réalité n&#8217;est pas aussi idyllique que la théorie.</p>
<p>Pour commencer, sachez que Minecraft ne fonctionne pas avec openjdk, la version 100% libre de Java qui est dans les dépots de base. Comme précisé sur le site de Minecraft, vous devez utiliser la version de Java de Sun Oracle qui elle n&#8217;est pas totalement libre. Pour pouvoir l&#8217;installer, vous devez d&#8217;abord ajouter le dépot où l&#8217;on peut trouver les packages. Dans Ubuntu, ses dépots sont les dépots partenaires.</p>
<p>Pour les rajouter via l&#8217;interface graphique, allez dans:</p>
<div class="encadre_code">Système -&gt; Administration -&gt; Gestionnaire de paquets Synaptic -&gt; Configuration -&gt; Dépôts -&gt; Autres logiciels</div>
<p>et sélectionnez &laquo;&nbsp;<em>http://archive.canonical.com/ubuntu lucid partner</em>&nbsp;&raquo; (ou une autre version si vous n&#8217;avez pas celle-ci)</p>
<p>Rafraichissez la liste des packages et installez les packages suivant:<br />
sun-java6-jre sun-java6-plugin</p>
<p>La ligne de commande pour cette installation est:</p>
<div class="encadre_code">sudo apt-get install sun-java6-jre sun-java6-plugin</div>
<p>Une fois ces paquets installés, si vous pensez avoir d&#8217;autres version de Java, il faut indiquer au système quelle version utiliser. Pour cela, lancer la commande:</p>
<div class="encadre_code">sudo update-alternatives &#8211;&#8211;config java</div>
<p>et sélectionnez le numéro de la version java de Sun.</p>
<p>Par la suite, allez dans le dossier où se trouve le fichier jar de minecraft, faites clique droit sur le fichier et sélectionnez &laquo;&nbsp;Ouvrir avec Java 6 Runtime&nbsp;&raquo;.</p>
<p>Vous pouvez aussi lancer le jeu en ligne de commande, cela vous permettra d&#8217;avoir plus de détails sur le résultat de l&#8217;exécution (en cas de crash notamment) :</p>
<div class="encadre_code">java -jar minecraft.jar</div>
<p>ou</p>
<div class="encadre_code">java -cp minecraft.jar net.minecraft.LauncherFrame</div>
<p>Si vous obtenez une erreur de mémoire, lancez la commande:</p>
<div class="encadre_code">java -Xmx1024M -Xms512M -cp Minecraft.jar net.minecraft.LauncherFrame</div>
<p>Pour ceux qui se le demande, l&#8217;option -Xmx1024M indique à Java d&#8217;utiliser au maximum 1024Mo de RAM tandis que l&#8217;option -Xms512M indique à Java de s&#8217;allouer de base 512Mo de RAM.</p>
<p>Normalement, Minecraft devrait enfin pouvoir se lancer et fonctionner. Pour plus de détails, vous pouvez aussi vous référer à la <a href="http://doc.ubuntu-fr.org/minecraft">page du site français d&#8217;Ubuntu</a>.</p>
<p>Remarque: Ce poste était anciennement la première partie de <a href="http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/">cet article</a>. Je l&#8217;ai séparé pour alléger la lecture.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Installation+de+Minecraft+sous+Linux+http%3A%2F%2Fis.gd%2FEn8MmJ+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/installation-de-minecraft-sous-linux/&amp;t=Installation+de+Minecraft+sous+Linux"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/installation-de-minecraft-sous-linux/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/installation-de-minecraft-sous-linux/&amp;title=Installation+de+Minecraft+sous+Linux&amp;summary=Petit+tutoriel+d%27aide+pour+lancer+Minecraft+sous+Linux+et+plus+pr%C3%A9cis%C3%A9ment+sous+Ubuntu.++En+effet%2C+m%C3%AAme+si+Minecraft+est+en+java+et+que+le+logiciel...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/installation-de-minecraft-sous-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;erreur de la mort de Call of Duty Modern Warfare 2</title>
		<link>http://www.claire-desbois.fr/lerreur-de-la-mort-de-call-of-duty-modern-warfare-2/</link>
		<comments>http://www.claire-desbois.fr/lerreur-de-la-mort-de-call-of-duty-modern-warfare-2/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 23:59:28 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Debug]]></category>
		<category><![CDATA[Call of Duty]]></category>
		<category><![CDATA[Modern Warfare]]></category>
		<category><![CDATA[Patch]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=165</guid>
		<description><![CDATA[L&#8217;erreur va probablement être corrigé dans les jours prochains mais je fais quand même un poste histoire de débloquer le jeu pour ceux qui veulent jouer avant le patch. Depuis la nouvelle mise à jour du jeu, vous avez probablement rencontré cette sublime erreur: Couldn&#8217;t load image &#8216;gamefonts_pc&#8217; ou Couldn&#8217;t load image &#8216;specialty_new_nonenglish&#8217; C&#8217;est parce [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;erreur va probablement être corrigé dans les jours prochains mais je fais quand même un poste histoire de débloquer le jeu pour ceux qui veulent jouer avant le patch.</p>
<p>Depuis la nouvelle mise à jour du jeu, vous avez probablement rencontré cette sublime erreur:</p>
<div class="encadre_code">
Couldn&#8217;t load image &#8216;gamefonts_pc&#8217;
</div>
<p>ou</p>
<div class="encadre_code">
Couldn&#8217;t load image &#8216;specialty_new_nonenglish&#8217;
</div>
<p>C&#8217;est parce que la nouvelle mise à jour ne prend vraisemblablement pas en compte la localisation, que vous avez autre chose que de l&#8217;anglais et qu&#8217;elle va chercher les fichiers anglais qui n&#8217;existe justement pas. Alors vous allez devoir renommer des fichiers.</p>
<p>Allez dans Program Files\steam\steamapps\common\call of duty modern warfare 2\main<br />
Vous y trouverez les fichiers<br />
localized_french_iw00.iwd<br />
localized_french_iw01.iwd<br />
localized_french_iw02.iwd<br />
&#8230;</p>
<p>Et bien il ne vous reste plus qu&#8217;à renommer vos 9 fichiers en<br />
localized_english_iw00.iwd<br />
localized_english_iw01.iwd<br />
&#8230;</p>
<p>Bref, du gros patch comme on aime, surtout quand on a payé son jeu à 60$.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=L%E2%80%99erreur+de+la+mort+de+Call+of+Duty+Modern+Warfare+2+http%3A%2F%2Fis.gd%2FmajHPa+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/lerreur-de-la-mort-de-call-of-duty-modern-warfare-2/&amp;t=L%E2%80%99erreur+de+la+mort+de+Call+of+Duty+Modern+Warfare+2"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/lerreur-de-la-mort-de-call-of-duty-modern-warfare-2/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/lerreur-de-la-mort-de-call-of-duty-modern-warfare-2/&amp;title=L%E2%80%99erreur+de+la+mort+de+Call+of+Duty+Modern+Warfare+2&amp;summary=L%27erreur+va+probablement+%C3%AAtre+corrig%C3%A9+dans+les+jours+prochains+mais+je+fais+quand+m%C3%AAme+un+poste+histoire+de+d%C3%A9bloquer+le+jeu+pour+ceux+qui+veulent+...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/lerreur-de-la-mort-de-call-of-duty-modern-warfare-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache sous Windows ne veut pas se lancer</title>
		<link>http://www.claire-desbois.fr/apache-sous-windows-ne-veut-pas-se-lancer/</link>
		<comments>http://www.claire-desbois.fr/apache-sous-windows-ne-veut-pas-se-lancer/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 07:42:07 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Debug]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[Wamp]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=157</guid>
		<description><![CDATA[Peut être avez vous rencontré ce bogue récemment sous Wamp. En tentant d&#8217;exécuter des pages php sous wamp, vous n&#8217;obtenez que des pages blanches et le service d&#8217;apache n&#8217;arrive pas à se lancer. Pour vérifier que apache est bien lancé, dans l&#8217;interface de wamp, vous devez vérifier les états de son service comme l&#8217;image si [...]]]></description>
			<content:encoded><![CDATA[<p>Peut être avez vous rencontré ce bogue récemment sous Wamp. En tentant d&#8217;exécuter des pages php sous wamp, vous n&#8217;obtenez que des pages blanches et le service d&#8217;apache n&#8217;arrive pas à se lancer.</p>
<p>Pour vérifier que apache est bien lancé, dans l&#8217;interface de wamp, vous devez vérifier les états de son service comme l&#8217;image si dessous:<br />
<a href="http://www.claire-desbois.fr/wp-content/uploads/2011/03/apache.png"><img src="http://www.claire-desbois.fr/wp-content/uploads/2011/03/apache-300x201.png" alt="Interface du lancement de service d&#039;Apache" title="apache" width="300" height="201" class="aligncenter size-medium wp-image-160" /></a><br />
Si vous n&#8217;arrivez pas à lancer ce service et que vous avez skype en fonctionnement, alors la solution à votre problème est peut être toute simple. </p>
<p>En effet, skype, pour pouvoir être utilisé même sur un réseau où la plupart des ports auraient été bloqué, peut utiliser le port 80. C&#8217;est logiquement le port utilisé par http et donc le même port utilisé par apache qui ne peut alors plus se lancer correctement. Pour régler ce soucis, dans les options de Skype, allez dans Avancées puis Connexions et décochez la case &laquo;&nbsp;Utilisez les ports 80 et 443 comme alternatives&nbsp;&raquo;. Redémarrez Skype et testez le démarrage d&#8217;apache après. Le service devrait se lancer et votre serveur Wamp pourra fonctionner correctement.</p>
<p>Je ne sais pas si cette erreur est aussi présente sous GNU/Linux par contre.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Apache+sous+Windows+ne+veut+pas+se+lancer+http%3A%2F%2Fis.gd%2Fx4Zyfy+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/apache-sous-windows-ne-veut-pas-se-lancer/&amp;t=Apache+sous+Windows+ne+veut+pas+se+lancer"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/apache-sous-windows-ne-veut-pas-se-lancer/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/apache-sous-windows-ne-veut-pas-se-lancer/&amp;title=Apache+sous+Windows+ne+veut+pas+se+lancer&amp;summary=Peut+%C3%AAtre+avez+vous+rencontr%C3%A9+ce+bogue+r%C3%A9cemment+sous+Wamp.+En+tentant+d%27ex%C3%A9cuter+des+pages+php+sous+wamp%2C+vous+n%27obtenez+que+des+pages+blanches+et...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/apache-sous-windows-ne-veut-pas-se-lancer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Minecraft sous Linux: Carte ATI et Wine</title>
		<link>http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/</link>
		<comments>http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 18:57:38 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Debug]]></category>
		<category><![CDATA[ATI]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[minecraft]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=124</guid>
		<description><![CDATA[Si vous êtes le malheureux possesseur d&#8217;une carte graphique ATI, vous risquez d&#8217;avoir un problème en voulant lancer Minecraft, le jeu va freezer voir crasher au moment du chargement de la carte. Si vous avez une carte NVidia, vérifiez que vous avez correctement installé les drivers de votre carte graphique. Normalement, les drivers propriétaires fournis [...]]]></description>
			<content:encoded><![CDATA[<p>Si vous êtes le malheureux possesseur d&#8217;une carte graphique ATI, vous risquez d&#8217;avoir un problème en voulant lancer Minecraft, le jeu va freezer voir crasher au moment du chargement de la carte. Si vous avez une carte NVidia, vérifiez que vous avez correctement installé les drivers de votre carte graphique. Normalement, les drivers propriétaires fournis par NVidia sont de bonnes qualités. Mais ce n&#8217;est pas toujours le cas des drivers ATI et de nombreuses personnes rencontres des problèmes avec. Et ces problèmes touchent énormément Minecraft (sous Windows également d&#8217;ailleurs). Si c&#8217;est le cas, une nouvelle galère s&#8217;offre à vous et là, vous avez 2 solutions:<br />
- Installer les drivers non officiel de votre carte si ceux de Catalyst sont moins performants. Pour cela, il faut qu&#8217;ils prennent en compte l&#8217;accélération 3D. Cette solution n&#8217;est pas forcément évidente, vous avez des risques de détruire votre interface graphique si vous n&#8217;y allez pas en toute connaissance de cause. Je vous conseille de vous référez à cette page pour plus de détails: <a href="https://help.ubuntu.com/community/RadeonDriver">The open source ATI drivers (en anglais)</a><br />
- L&#8217;autre solution consiste à faire tourner Minecraft avec&#8230; wine. Oui, c&#8217;est très ironique de devoir émuler la version Windows d&#8217;un programme Java sous Linux mais dans mon cas, c&#8217;est la seule solution que j&#8217;ai trouvé.</p>
<p>Je vais donc expliquer la solution avec Wine. Pour ceux qui ne connaissent pas Wine, il s&#8217;agit d&#8217;un logiciel qui émule un environnement Windows sous Linux. Il permet donc d&#8217;utiliser un certain nombre de logiciel qui ne sont normalement compatible qu&#8217;avec Windows, y compris des jeux (mais ne rêvez pas, vous ne ferez pas tourner tout et n&#8217;importe quoi en un claquement de doigt). Pour commencer, il vous faut installer wine:</p>
<div class="encadre_code">sudo apt-get install wine</div>
<p>Ensuite, vous devez télécharger <a href="http://www.java.com/fr/download/manual.jsp">Java pour Windows sur le site de Java</a>.</p>
<p>Une fois le fichier récupéré, vous ne pouvez pas l&#8217;exécuter comme ça, vous devez donner un droit d&#8217;exécution dessus. Faites la commande:</p>
<div class="encadre_code">chmod a+x jre-6u24-windows-i586-s.exe</div>
<p>Vous pouvez ensuite l&#8217;exécuter ainsi:</p>
<div class="encadre_code">wine jre-6u24-windows-i586-s.exe</div>
<p>Une fenêtre devrait s&#8217;ouvrir. Suivez les étapes d&#8217;installation comme sous Windows. Précision: Contrairement aux vieilles versions de java, il n&#8217;est pas nécessaire de modifier le fichier system.reg de Wine pour que celui-ci reconnaisse Java. Vous pouvez quand même tester que java a bien été installé via la commande:</p>
<div class="encadre_code">wine java -version</div>
<p>Enfin, téléchargez le fichier Minecraft pour windows et dans le dossier où se trouve l&#8217;exécutable, exécutez la commande:</p>
<div class="encadre_code">wine Minecraft.exe</div>
<p>Si vous êtes aussi chanceux que moi, vous aurez peut être droit à cette erreur:</p>
<div class="encadre_code">Error occurred during initialization of VM<br />
Could not reserve enough space for object heap.</div>
<p>Cette erreur est dû à un problème de mémoire, Java voulant s&#8217;octroyer plus de mémoire que le système ne peut en offrir. Si vous avez ce même soucis, une des solutions consisterait à utiliser Linux en 64bits étant donné que Linux ne peut pas utiliser plus de 4Go de Ram théoriquement en 32bits. Pour cela&#8230; il faut formater votre système pour installer une version 64bits de votre OS. Je me demande tout de même si ça n&#8217;est pas un soucis de Java étant donné que celui installé pour Linux ne me pose aucun problème et qu&#8217;il a tout de même plus de 3Go de libre au moment de l&#8217;exécution ce qui est largement assez pour minecraft.</p>
<p>En insistant un peu, vous devriez peut être le lancer. Pour ma part, je fini par obtenir l&#8217;erreur suivante:</p>
<div class="encadre_code">
#<br />
# A fatal error has been detected by the Java Runtime Environment:<br />
#<br />
#  Internal Error (0xc0000194), pid=47, tid=60<br />
#<br />
# JRE version: 6.0_24-b07<br />
# Java VM: Java HotSpot(TM) Client VM (19.1-b02 mixed mode, sharing windows-x86 )<br />
# Problematic frame:<br />
# C  [ntdll.dll+0x24b5a]<br />
#</div>
<p>ainsi qu&#8217;un fichier de log. N&#8217;ayant pas trouvé de solution pour ce problème, j&#8217;ai testé une autre technique plus tordue encore: Lancer le fichier jar de minecraft avec la version java installé sur wine.</p>
<p>Pour cela, dans le dossier où se trouve le fichier jar, exécutez la commande suivante:</p>
<div class="encadre_code">wine java -jar minecraft.jar</div>
<p>N&#8217;exécutez pas les options -Xmx1024M et -Xms512M si vous avez l&#8217;erreur &laquo;&nbsp;Could not create the Java virtual machine&nbsp;&raquo;, vous aurez une erreur mémoire (pour ma part, même en insistant, il n&#8217;a jamais voulu lancer le jeu avec ces options)</p>
<div class="encadre_code">calysto@GUNNM:~/Téléchargements$ wine java -Xmx1024M -Xms512M -cp minecraft.jar net.minecraft.LauncherFrame<br />
Error occurred during initialization of VM<br />
Could not reserve enough space for object heap<br />
Could not create the Java virtual machine.</div>
<p>Insistez avec la commande (sans les options -Xmx et -Xms), le jeu devrait finir par se lancer. </p>
<a href="http://www.claire-desbois.fr/wp-content/uploads/2011/03/Fenetre_Minecraft1.png"><img src="http://www.claire-desbois.fr/wp-content/uploads/2011/03/Fenetre_Minecraft1-300x156.png" alt="Fenêtre de jeu de Minecraft" title="Fenetre_Minecraft" width="300" height="156" class="size-medium wp-image-143" /></a>
<p>Si vous n&#8217;avez pas de son, dans les options Audio de wine, ajoutez des pilotes (personnellement, j&#8217;en ai ajouté un peu au hasard en testant). il est possible que le son arrive au bout de quelques secondes. Le dossier .minecraft se trouve dans le dossier Application Data dans l&#8217;arborescence de wine.</p>
<p>Vous pouvez maintenant jouer. Sachez tout de même qu&#8217;au bout d&#8217;une heure et quelques, la mémoire peut saturer et java crasher. Il vous faudra relancer l&#8217;application. Enfin, sachez que si vous désirez jouer sous Linux, préférez une carte NVidia à une ATI, vérifiez aussi la compatibilité matérielle. Et ne vous leurrez pas, pour jouer à une majorité de jeux, la meilleure solution reste d&#8217;utiliser Windows.</p>
<p><strong>Remarque:</strong> Ce poste a été coupé en deux. La première partie du tutoriel expliquait comment installer Minecraft sous GNU/Linux, il se trouve maintenant ici. Pour ma part, depuis la mise à jour de mon kernel et de mes drivers de carte graphique, Minecraft ne se lance plus correctement d&#8217;aucune façon. A moins d&#8217;une nouvelle mise à jour me débloquant, il n&#8217;y aura plus de tuto pour Minecraft sous Linux avant un bon moment.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Minecraft+sous+Linux%3A+Carte+ATI+et+Wine+http%3A%2F%2Fis.gd%2FDpDokN+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/&amp;t=Minecraft+sous+Linux%3A+Carte+ATI+et+Wine"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/&amp;title=Minecraft+sous+Linux%3A+Carte+ATI+et+Wine&amp;summary=Si+vous+%C3%AAtes+le+malheureux+possesseur+d%27une+carte+graphique+ATI%2C+vous+risquez+d%27avoir+un+probl%C3%A8me+en+voulant+lancer+Minecraft%2C+le+jeu+va+freezer+vo...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/minecraft-sous-linux-carte-ati-et-wine/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Compiler la librairie Qt sous un Windows x64 avec Visual Studio 2008</title>
		<link>http://www.claire-desbois.fr/compiler-la-librairie-qt-sous-un-windows-x64-avec-visual-studio-2008/</link>
		<comments>http://www.claire-desbois.fr/compiler-la-librairie-qt-sous-un-windows-x64-avec-visual-studio-2008/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 18:39:32 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Debug]]></category>
		<category><![CDATA[compilation]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>
		<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=110</guid>
		<description><![CDATA[Pour compiler la librairie Qt sous un Windows x64 avec Visual Studio 2008, la manipulation peut être particulière. En effet, en compilant cette librairie, vous pouvez rencontrer cette erreur: fatal error U1077: ‘C:/Qt/2010,04/qt/bin/moc.exe’: return code ‘0&#215;1’ Pour remédier à ce problème, vous pouvez tenter les actions suivantes. Après avoir téléchargé la librairie, ouvrez le prompt [...]]]></description>
			<content:encoded><![CDATA[<p>Pour compiler la librairie Qt sous un Windows x64 avec Visual Studio 2008, la manipulation peut être particulière. En effet, en compilant cette librairie, vous pouvez rencontrer cette erreur:<br/></p>
<div class="encadre_code">fatal error U1077: ‘C:/Qt/2010,04/qt/bin/moc.exe’: return code ‘0&#215;1’</div>
<p>Pour remédier à ce problème, vous pouvez tenter les actions suivantes. Après avoir téléchargé la librairie, ouvrez le prompt de Visual Studio 2008 en version x64 (VS2008 x64 win64 Command Prompt), Dans le répertoire de Qt, lancez tout d&#8217;abord un clean:<br/></p>
<div class="encadre_code">nmake clean</div>
<p>Cela permet de supprimer tout fichier qui pourrait compromettre votre installation. Et même si vous venez de télécharger le dossier, n&#8217;hésitez pas à le faire pour être certain qu&#8217;aucun fichier malencontreux ne viendra faire échouer 4h de compilation.<br/><br />
Après la fin de votre clean, lancez la configuration avec les options suivantes.<br/></p>
<div class="encadre_code">configure -debug-and-release -opensource -shared -platform win32-msvc2008</div>
<p>Il n&#8217;existe pas d&#8217;option pour compiler votre librairie en x64, vous devez donc obligatoirement compiler en win32.<br/><br />
Après la fin de la configuration et avant de lancer la compilation, vous devez d&#8217;abord supprimer plusieurs fichiers du nom de <strong>mocinclude.tmp</strong> qui sont soudainement apparu dans plusieurs dossiers et qui sont vraisemblablement responsables de vos échecs. Supprimez donc tous les fichiers <strong>mocinclude.tmp</strong> dans les dossiers suivant :<br/></p>
<div class="encadre_code">src/script/tmp/moc/release_shared/<br/><br />
src/script/tmp/moc/debug_shared/<br/><br />
src/3rdparty/webkit/webcore/tmp/moc/release_shared/<br/><br />
src/3rdparty/webkit/webcore/tmp/moc/debug_shared/</div>
<p>Vous pouvez enfin lancer la commande nmake et vous occuper 4h le temps de la compilation.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Compiler+la+librairie+Qt+sous+un+Windows+x64+avec+Visual+Studio+2008+http%3A%2F%2Fis.gd%2FLLNVi9+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/compiler-la-librairie-qt-sous-un-windows-x64-avec-visual-studio-2008/&amp;t=Compiler+la+librairie+Qt+sous+un+Windows+x64+avec+Visual+Studio+2008"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/compiler-la-librairie-qt-sous-un-windows-x64-avec-visual-studio-2008/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/compiler-la-librairie-qt-sous-un-windows-x64-avec-visual-studio-2008/&amp;title=Compiler+la+librairie+Qt+sous+un+Windows+x64+avec+Visual+Studio+2008&amp;summary=Pour+compiler+la+librairie+Qt+sous+un+Windows+x64+avec+Visual+Studio+2008%2C+la+manipulation+peut+%C3%AAtre+particuli%C3%A8re.+En+effet%2C+en+compilant+cette+lib...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/compiler-la-librairie-qt-sous-un-windows-x64-avec-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Gestion de la DropDownList en ASP.NET MVC2</title>
		<link>http://www.claire-desbois.fr/gestion-de-la-dropdownlist-en-asp-net-mvc2/</link>
		<comments>http://www.claire-desbois.fr/gestion-de-la-dropdownlist-en-asp-net-mvc2/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 01:23:45 +0000</pubDate>
		<dc:creator>Claire</dc:creator>
				<category><![CDATA[Tutoriel]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[DropDownList]]></category>
		<category><![CDATA[MVC2]]></category>
		<category><![CDATA[Programmation]]></category>

		<guid isPermaLink="false">http://www.claire-desbois.fr/?p=46</guid>
		<description><![CDATA[Le Framework MVC2 de ASP. NET permet de créer des sites web en utilisant MVC. Avec cette architecture, la création du visuel est un peu particulière et pas forcément intuitive pour quelqu’un n’ayant jamais travaillé sur un framework MVC. Ici je vais expliquer comment créer une liste déroulante à partir de données provenant de la [...]]]></description>
			<content:encoded><![CDATA[<p>Le Framework MVC2 de ASP. NET permet de créer des sites web en utilisant MVC. Avec cette architecture, la création du visuel est un peu particulière et pas forcément intuitive pour quelqu’un n’ayant jamais travaillé sur un framework MVC. Ici je vais expliquer comment créer une liste déroulante à partir de données provenant de la base et avec une liste fixe.</p>
<p>Pour la création d’une DropDownList avec des données de la base de données, ayons  déjà un exemple de base de données. Un système de gestion pour une ludothèque par exemple : Une table Jeu (Games) à un et un seul développeur (Developers). Un développeur peut avoir fait plusieurs jeux.</p>
<p><a href="http://www.claire-desbois.fr/wp-content/uploads/2010/06/tableGame.png"><img class="aligncenter size-full wp-image-47" title="tablesGamesDevelopers" src="http://www.claire-desbois.fr/wp-content/uploads/2010/06/tableGame.png" alt="Tables Game et Developers" width="429" height="153" /></a></p>
<p>Si le CRUD de Developers est basique, il est un peu différent pour Games. En effet, pour indiquer le développeur du jeu lors de la création et de l’éditeur, on ne va pas entrer le nom à la main dans une TextBox : Entrer un Id à la main n’a aucun sens et si c’était le nom qui était demandé, les erreurs possibles seraient trop nombreuses (fautes de frappe, entrée d’un développeur qui n’existe pas dans la base, etc).  On va donc utiliser une liste déroulante  dans les vues « create » et « edit » de Games pour permettre de sélectionner un développeur parmi ceux qui sont dans la base.</p>
<p>Pour cela, on va d’abord récupérer le contenu de la table Developers et afficher ce qui nous intéresse. On enregistrera ensuite l’Id du développeur sélectionné dans  la table Games pour la clé étrangère developers_id.</p>
<p>Regardons d’abord le controller pour modifier la fonction en GET de create de Game :</p>
<p>GamesController.cs :</p>
<div class="encadre_code">
<p><span style="color: #008000;">// GET: /Games/Create</span></p>
<p><span style="color: #0000ff;">public </span><span style="color: #3366ff;">ActionResult </span><span style="color: #000000;">Create()</span></p>
<p><span style="color: #000000;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #3366ff;">MyBaseDataContext </span><span style="color: #000000;">db =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">MyBaseDataContext</span><span style="color: #000000;">();</span><br />
<span style="color: #000000;">ViewData[</span><span style="color: #800000;">"Developers_Id"</span><span style="color: #000000;">] =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">SelectList</span><span style="color: #000000;">(db.Developers,</span> <span style="color: #800000;">&laquo;&nbsp;Id&nbsp;&raquo;</span><span style="color: #000000;">,</span> <span style="color: #800000;">&laquo;&nbsp;Name&nbsp;&raquo;</span><span style="color: #000000;">);</span><br />
<span style="color: #3366ff;">Game </span><span style="color: #000000;">game =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">Game</span><span style="color: #000000;">();</span><br />
<span style="color: #0000ff;">return </span><span style="color: #000000;">View(game);</span></p>
<p><span style="color: #000000;">} </span></p>
</div>
<p>Au moment de la création de la vue « create », en plus d’envoyer un nouvel objet Game pour remplir ces différents attributs, on va également envoyer une SelectList contenant tous les objets de la table Developers via une ViewData. Lors de la création de la liste, on indique que les valeurs sont les Id des objets et le texte qui apparaitra dans la DropDownList sera le « Name ». Pour ce qui est de la variable db, elle peut être déclarée en haut de la classe si vous le désirez.</p>
<p>Modifions maintenant la vue Create. Là où l’on doit remplir les informations sur le développeur :</p>
<div class="encadre_code">
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-label&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">:</span> <span style="color: black;">Html.LabelFor(model =&gt; model.Developers_Id) </span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-field&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">=</span> <span style="color: black;">Html.DropDownList(</span><span style="color: #800000;">&laquo;&nbsp;Developers_Id&nbsp;&raquo;</span><span style="color: black;">)</span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
</div>
<p>La DropDownList va vous permettre d’afficher la liste des noms des développeurs. Pour cela, on appelle implicitement la ViewData « Developers_Id ».  Au moment de la validation, le système va récupérer l’Id du développeur. Etant donné quel’objet Html a le même nom de l’attribut de l’objet, il sera insérer dans l’attribut developers_Id de l’objet.</p>
<p>Maintenant, comment gérer l’édition pour que le développeur de l’objet qu’on édite soit sélectionné par défaut dans la DropDownList ?</p>
<p>Dans le controller de Game, modifions la fonction GET de « edit » :</p>
<div class="encadre_code">
<p><span style="color: #008000;">// GET: /Games/Edit/1</span></p>
<p><span style="color: #0000ff;">public </span><span style="color: #3366ff;">ActionResult </span><span style="color: #000000;">Edit()</span></p>
<p><span style="color: #000000;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #3366ff;">Game </span><span style="color: #000000;">game =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">Game</span><span style="color: #000000;">();</span><br />
<span style="color: #3366ff;">MyBaseDataContext </span><span style="color: #000000;">db =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">MyBaseDataContext</span><span style="color: #000000;">();</span><br />
<span style="color: #000000;">ViewData[</span><span style="color: #800000;">"Developers_Id"</span><span style="color: #000000;">] =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">SelectList</span><span style="color: #000000;">(db.Developers,</span><br/><span style="color: #800000;">&laquo;&nbsp;Id&nbsp;&raquo;</span><span style="color: #000000;">,</span><span style="color: #800000;">&laquo;&nbsp;Name&nbsp;&raquo;</span><span style="color: #000000;">,</span><br />
<span style="color: #000000;">game.Developers_Id);</span><br />
<span style="color: #0000ff;">return </span><span style="color: #000000;">View(game);</span></p>
<p><span style="color: #000000;">} </span></p>
</div>
<p>Ici, on récupère le contenu de la table Developers  pour le mettre dans une SelectList de la même manière que dans le create. La différence est le nouveau paramètre «  game.Developers_Id ». Cela permet d’indiquer dans le constructeur de la SelectList que la valeur sélectionnée est égale à developers_Id.</p>
<p>Pour la vue edit, le code est le même que pour la vue create :</p>
<div class="encadre_code">
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-label&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">:</span> <span style="color: black;">Html.LabelFor(model =&gt; model.Developers_Id) </span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-field&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">=</span> <span style="color: black;">Html.DropDownList(</span><span style="color: #800000;">&laquo;&nbsp;Developers_Id&nbsp;&raquo;</span><span style="color: black;">)</span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
</div>
<p>Vous savez maintenant réaliser une liste déroulante avec des données de la base.</p>
<p>Maintenant, comment réaliser une DropDownList avec des données fixes non issues de la base. Prenons un exemple simple, une table Persons. Une personne a un prénom, un nom et un sexe.</p>
<p><a href="http://www.claire-desbois.fr/wp-content/uploads/2010/06/tablePerson.png"><img class="aligncenter size-full wp-image-48" title="tablePerson" src="http://www.claire-desbois.fr/wp-content/uploads/2010/06/tablePerson.png" alt="Table Persons" width="145" height="120" /></a></p>
<p>Pour le sexe, vous n’allez pas créer une table pour la remplir des différentes possibilités ni remplir le sexe à la main via une TextBox(toujours trop de possibilité d’erreur entre les mots pouvant être employés et les fautes de frappe). On va donc créer une liste avec 3 choix possibles : « Non renseigné », « Femme », « Homme ».</p>
<p>Modifions d’abord la fonction GET du create dans le PersonsController.cs :</p>
<div class="encadre_code">
<p><span style="color: #008000;">// GET: /Persons/Create</span></p>
<p><span style="color: #0000ff;">public </span><span style="color: #3366ff;">ActionResult </span><span style="color: #000000;">Create()</span></p>
<p><span style="color: #000000;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #3366ff;">List</span><span style="color: black;">&lt;</span><span style="color: #3366ff;">SelectListItem</span><span style="color: black;">&gt; items =</span> <span style="color: #0000ff;">new</span> <span style="color: #3366ff;">List</span><span style="color: black;">&lt;</span><span style="color: #3366ff;">SelectListItem</span><span style="color: black;">&gt;();</span></p>
<p style="padding-left: 30px;"><span style="color: black;">items.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #3366ff;">SelectListItem</span><br />
<span style="color: black;">{</span></p>
<p style="padding-left: 60px;"><span style="color: black;">Text =</span> <span style="color: #800000;">&laquo;&nbsp;Non renseigné&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Value =</span> <span style="color: #800000;">&laquo;&nbsp;Non renseigné&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Selected =</span> <span style="color: #0000ff;">true</span></p>
<p style="padding-left: 30px;"><span style="color: black;">});</span><br />
<span style="color: black;">items.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #3366ff;">SelectListItem</span><br />
<span style="color: black;">{</span></p>
<p style="padding-left: 60px;"><span style="color: black;">Text =</span> <span style="color: #800000;">&laquo;&nbsp;Femme&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Value =</span> <span style="color: #800000;">&laquo;&nbsp;Femme&nbsp;&raquo;</span></p>
<p style="padding-left: 30px;"><span style="color: black;">});</span><br />
<span style="color: black;">items.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #3366ff;">SelectListItem</span><br />
<span style="color: black;">{</span></p>
<p style="padding-left: 60px;"><span style="color: black;">Text =</span> <span style="color: #800000;">&laquo;&nbsp;Homme&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Value =</span> <span style="color: #800000;">&laquo;&nbsp;Homme&nbsp;&raquo;</span></p>
<p style="padding-left: 30px;"><span style="color: black;">});</span><br />
<span style="color: #000000;">ViewData[</span><span style="color: #800000;">"Sex"</span><span style="color: #000000;">] = items;</span><br />
<span style="color: #3366ff;">Person </span><span style="color: #000000;">person =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">Person</span><span style="color: #000000;">();</span><br />
<span style="color: #0000ff;">return </span><span style="color: #000000;">View(person);</span></p>
<p><span style="color: #000000;">} </span></p>
</div>
<p>On crée une List&lt;SelectListItem&gt; contenant nos éléments sous la forme de SelectListItem. Le  « Text » sera ce qui est affiché dans la DropDownList, « Value » sera ce qui est récupéré si la donnée est sélectionnée, « Selected » indique si c’est cette donnée sélectionnée. On envoie ensuite cette liste à la vue avec un ViewData.</p>
<p>La vue Create se présente comme précédemment :</p>
<div class="encadre_code">
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-label&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">:</span> <span style="color: black;">Html.LabelFor(model =&gt; model.Sex) </span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-field&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">=</span> <span style="color: black;">Html.DropDownList(</span><span style="color: #800000;">&laquo;&nbsp;Sex&nbsp;&raquo;</span><span style="color: black;">)</span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
</div>
<p>Ensuite,  pour l’Edit, la modification est légèrement différente :</p>
<div class="encadre_code">
<p><span style="color: #008000;">// GET: /Persons/Edit/1</span></p>
<p><span style="color: #0000ff;">public </span><span style="color: #3366ff;">ActionResult </span><span style="color: #000000;">Edit()</span></p>
<p><span style="color: #000000;">{</span></p>
<p style="padding-left: 30px;"><span style="color: #3366ff;">Person </span><span style="color: #000000;">person =</span> <span style="color: #0000ff;">new </span><span style="color: #3366ff;">Person</span><span style="color: #000000;">();</span><br />
<span style="color: #3366ff;">List</span><span style="color: black;">&lt;</span><span style="color: #3366ff;">SelectListItem</span><span style="color: black;">&gt; items =</span> <span style="color: #0000ff;">new</span> <span style="color: #3366ff;">List</span><span style="color: black;">&lt;</span><span style="color: #3366ff;">SelectListItem</span><span style="color: black;">&gt;();</span><br />
<span style="color: black;">items.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #3366ff;">SelectListItem</span><br />
<span style="color: black;">{</span></p>
<p style="padding-left: 60px;"><span style="color: black;">Text =</span> <span style="color: #800000;">&laquo;&nbsp;Non renseigné&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Value =</span> <span style="color: #800000;">&laquo;&nbsp;Non renseigné&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Selected = (person.Sex == </span> <span style="color: #800000;">&laquo;&nbsp;Non renseigné&nbsp;&raquo;</span><span style="color: black;">)</span></p>
<p style="padding-left: 30px;"><span style="color: black;">});</span><br />
<span style="color: black;">items.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #3366ff;">SelectListItem</span><br />
<span style="color: black;">{</span></p>
<p style="padding-left: 60px;"><span style="color: black;">Text =</span> <span style="color: #800000;">&laquo;&nbsp;Femme&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Value =</span> <span style="color: #800000;">&laquo;&nbsp;Femme&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Selected = (person.Sex == </span> <span style="color: #800000;">&laquo;&nbsp;Femme&nbsp;&raquo;</span><span style="color: black;">)</span></p>
<p style="padding-left: 30px;"><span style="color: black;">});</span><br />
<span style="color: black;">items.Add(</span><span style="color: #0000ff;">new</span> <span style="color: #3366ff;">SelectListItem</span><br />
<span style="color: black;">{</span></p>
<p style="padding-left: 60px;"><span style="color: black;">Text =</span> <span style="color: #800000;">&laquo;&nbsp;Homme&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Value =</span> <span style="color: #800000;">&laquo;&nbsp;Homme&nbsp;&raquo;</span><span style="color: black;">,</span><br />
<span style="color: black;">Selected = (person.Sex == </span> <span style="color: #800000;">&laquo;&nbsp;Homme&nbsp;&raquo;</span><span style="color: black;">)</span></p>
<p style="padding-left: 30px;"><span style="color: black;">});</span><br />
<span style="color: #000000;">ViewData[</span><span style="color: #800000;">"Sex"</span><span style="color: #000000;">] = items;</span><br />
<span style="color: #0000ff;">return </span><span style="color: #000000;">View(person);</span></p>
<p><span style="color: #000000;">} </span></p>
</div>
<p>La seule différence est au niveau du Selected. On teste si le sexe de la personne correspond. On sait que si c’est le cas, la variable sera mit à True. Il suffit enfin d’afficher dans la vue Edit de la même manière que précédemment :</p>
<div class="encadre_code">
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-label&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">:</span> <span style="color: black;">Html.LabelFor(model =&gt; model.Sex) </span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
<p><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: red;">class</span><span style="color: #0000ff;">=&nbsp;&raquo;editor-field&nbsp;&raquo; &gt;</span></p>
<p style="padding-left: 30px;"><span style="background-color: yellow; color: black;">&lt;%</span><span style="color: #0000ff;">=</span> <span style="color: black;">Html.DropDownList(</span><span style="color: #800000;">&laquo;&nbsp;Sex&nbsp;&raquo;</span><span style="color: black;">)</span><span style="background-color: yellow; color: black;">%&gt;</span></p>
<p><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></p>
</div>
<p>Et vous avez enfin fini de créer vos DropDownList.</p>
<div class="tweetthis" style="text-align:right;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=Gestion+de+la+DropDownList+en+ASP.NET+MVC2+http%3A%2F%2Fis.gd%2FNyP51V+via+%40clairedsbs"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter3.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://www.claire-desbois.fr/gestion-de-la-dropdownlist-en-asp-net-mvc2/&amp;t=Gestion+de+la+DropDownList+en+ASP.NET+MVC2"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook.png" alt="Post to Facebook" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.google.com/buzz/post?url=http://www.claire-desbois.fr/gestion-de-la-dropdownlist-en-asp-net-mvc2/&amp;imageurl="><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/gbuzz/tt-gbuzz.png" alt="Post to Google Buzz" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.claire-desbois.fr/gestion-de-la-dropdownlist-en-asp-net-mvc2/&amp;title=Gestion+de+la+DropDownList+en+ASP.NET+MVC2&amp;summary=Le+Framework+MVC2+de+ASP.+NET+permet+de+cr%C3%A9er+des+sites+web+en+utilisant+MVC.+Avec+cette+architecture%2C+la+cr%C3%A9ation+du+visuel+est+un+peu+particuli%C3%A8r...&amp;source=Claire Desbois"><img class="nothumb" src="http://www.claire-desbois.fr/wp-content/plugins/tweet-this/icons/en/linkedin/tt-linkedin.png" alt="Post to LinkedIn" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://www.claire-desbois.fr/gestion-de-la-dropdownlist-en-asp-net-mvc2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

