<?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>Rémi THOMAS &#187; Développement</title>
	<atom:link href="http://remithomas.fr/category/developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://remithomas.fr</link>
	<description>Web addict</description>
	<lastBuildDate>Tue, 10 Apr 2012 08:08:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Ajouter un XIB à une vue (code)</title>
		<link>http://remithomas.fr/2012/04/10/ajouter-un-xib-a-une-vue-code/</link>
		<comments>http://remithomas.fr/2012/04/10/ajouter-un-xib-a-une-vue-code/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 08:08:40 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Pense-bête]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[vue]]></category>
		<category><![CDATA[xib]]></category>

		<guid isPermaLink="false">http://remithomas.fr/?p=215</guid>
		<description><![CDATA[Pense-bête pour ajouter un XIB dans une vue en utilisant uniquement le code Objective-]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><strong>Pense-bête</strong> pour ajouter un XIB dans une vue en utilisant uniquement le code Objective-C.</p>
<pre class="brush: plain; title: ; notranslate">NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@&quot;MonXIB&quot; owner:self options:nil];

MyView * myView = [xib objectAtIndex:0];

[self.scrollView addSubview:myView];</pre>
<div class="shr-publisher-215"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2012%2F04%2F10%2Fajouter-un-xib-a-une-vue-code%2F' data-shr_title='Ajouter+un+XIB+%C3%A0+une+vue+%28code%29'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2012%2F04%2F10%2Fajouter-un-xib-a-une-vue-code%2F' data-shr_title='Ajouter+un+XIB+%C3%A0+une+vue+%28code%29'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2012%2F04%2F10%2Fajouter-un-xib-a-une-vue-code%2F' data-shr_title='Ajouter+un+XIB+%C3%A0+une+vue+%28code%29'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2012/04/10/ajouter-un-xib-a-une-vue-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quand Eclipse se fait éclipser</title>
		<link>http://remithomas.fr/2012/04/03/quand-eclipse-se-fait-eclipser/</link>
		<comments>http://remithomas.fr/2012/04/03/quand-eclipse-se-fait-eclipser/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 09:02:52 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://remithomas.fr/?p=206</guid>
		<description><![CDATA[Après quelques années sous Eclipse, je viens de passer sous Netbeans. Après de nombreux problèmes ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Après quelques années sous <strong>Eclipse</strong>, je viens de passer sous <strong>Netbeans</strong>. Après de nombreux problèmes de plugins (notamment SVN), je suis passé à l&#8217;acte: changer d&#8217;outil.</p>
<p>La manœuvre a été plus simple que je croyais car mes attentes envers Netbeans étaient bien moindre. Pour être plus clair, j&#8217;étais persuadé que j&#8217;allais le tester puis le désinstaller..</p>
<h1>Important</h1>
<p>Ceci n&#8217;est pas un test de logiciels. C&#8217;est juste une impression rapide et retour d&#8217;expérience simple.</p>
<h1>Installation</h1>
<p>L&#8217;installation sous Mac OsX est toujours très simple. Pour info j&#8217;ai pris la version complète où l&#8217;on peut activer et désactiver certains modules (PHP, C++, Java..) déjà un bon point.</p>
<h1>Interface</h1>
<p>L&#8217;interface est de très très loin supérieure en qualité graphique mais je suis développeur.. Qualité supérieure qui est due notamment à l&#8217;organisation, moins &laquo;&nbsp;bordélique&nbsp;&raquo;.</p>
<h1>Utilisation</h1>
<p>Pour le développement, même outils qu&#8217;Eclipse en particulier sur les &laquo;&nbsp;autocompletions&nbsp;&raquo; en écriture. Peut être un peu plus précise (ou trop?).</p>
<p>Un SVN parfait en fonctionnement. Mais parfois illogique : Il ne vérifie pas tout seul si des fichiers ont été ajoutés/modifiés/supprimés sur notre serveur local par rapport au SVN. J&#8217;aurais préféré autrement mais bon pas de quoi en faire un fromage.</p>
<p>J&#8217;aime pas trop la police de caractères.. Ca doit se régler <img src='http://remithomas.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h1>Conclusion</h1>
<p>Bon &laquo;&nbsp;conclusion&nbsp;&raquo;, plus ou moins car je ne l&#8217;utilise que depuis quelques jours mais je dois avouer qu&#8217;il m&#8217;a totalement séduit en premier abord. A voir avec le temps.. ou je retournerais à mon premier amour: le bloc-note :p</p>
<div>les + :</div>
<div>
<ul>
<li>bonne interface</li>
<li>Organisation</li>
</ul>
</div>
<div>les -</div>
<div>
<ul>
<li>Peut être moins de plugins ?</li>
</ul>
</div>
<div>les &laquo;&nbsp;moyens&nbsp;&raquo;</div>
<div>
<ul>
<li>Police de caractères</li>
<li>SVN ok (&laquo;&nbsp;c&#8217;est bien mais pas top&nbsp;&raquo; A.C.)</li>
</ul>
</div>
<div class="shr-publisher-206"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2012%2F04%2F03%2Fquand-eclipse-se-fait-eclipser%2F' data-shr_title='Quand+Eclipse+se+fait+%C3%A9clipser'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2012%2F04%2F03%2Fquand-eclipse-se-fait-eclipser%2F' data-shr_title='Quand+Eclipse+se+fait+%C3%A9clipser'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2012%2F04%2F03%2Fquand-eclipse-se-fait-eclipser%2F' data-shr_title='Quand+Eclipse+se+fait+%C3%A9clipser'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2012/04/03/quand-eclipse-se-fait-eclipser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Input RADIO et comportement CHECKBOX</title>
		<link>http://remithomas.fr/2011/12/28/input-radio-et-comportement-checkbox/</link>
		<comments>http://remithomas.fr/2011/12/28/input-radio-et-comportement-checkbox/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 12:57:28 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[checkbox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[radio]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=52</guid>
		<description><![CDATA[Un input (HTML) Radio avec un comportement digne d&#8217;un input Checkbox, est-ce possible ? Selon ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Un input (HTML) <strong>Radio</strong> avec un comportement digne d&#8217;un input <strong>Checkbox</strong>, est-ce possible ?</p>
<p>Selon la définition d&#8217;une, non ce n&#8217;est pas possible mais ce serait tellement plus pratique&#8230; alors rajoutons ce qu&#8217;il faut pour l&#8217;obtenir : un petit script Jquery.</p>
<h2>Jquery</h2>
<p>Pour le plaisir et la pratique j&#8217;en ai fais un en Jquery</p>
<pre class="brush: plain; title: ; notranslate">$(&quot;input[type=radio]&quot;).mousedown(function(e) {
    if ($(this).attr(&quot;checked&quot;) == true) {
        setTimeout(&quot;$j = jQuery.noConflict();$j('input[id=&quot; + $(this).attr('id') + &quot;]').removeAttr('checked');&quot;, 200);
    }else {
        return true;
    }
});</pre>
<div class="shr-publisher-52"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F12%2F28%2Finput-radio-et-comportement-checkbox%2F' data-shr_title='Input+RADIO+et+comportement+CHECKBOX+'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F12%2F28%2Finput-radio-et-comportement-checkbox%2F' data-shr_title='Input+RADIO+et+comportement+CHECKBOX+'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F12%2F28%2Finput-radio-et-comportement-checkbox%2F' data-shr_title='Input+RADIO+et+comportement+CHECKBOX+'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/12/28/input-radio-et-comportement-checkbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal et sa page blanche</title>
		<link>http://remithomas.fr/2011/11/03/drupal-et-sa-page-blanche/</link>
		<comments>http://remithomas.fr/2011/11/03/drupal-et-sa-page-blanche/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 22:26:24 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[blanc]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=124</guid>
		<description><![CDATA[Bon retour de vacances.. plein d’idées ! Alors après quelques tests sur des versions fraichement ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Bon retour de vacances.. plein d’idées ! Alors après quelques tests sur des versions fraichement installées de Drupal, je m’attèle à la sauvegarde de tout un site (actuellement en prod) pour commencer de nouveaux tests sur une nouvelle version de développement.</p>
<ol>
<li>Récupération de la base de données</li>
<li>Récupération de tous les fichiers issus de (sites/*)</li>
<li>Récupération de tout Drupal pour être au plus près de la version de développement</li>
</ol>
<p>Et là erreur… page blanche !</p>
<h1>Que faire:</h1>
<ol>
<li>Première solution, installation (« <strong>From Stratch</strong> ») en gros, ré-installer un Drupal tout propre puis remettre la base de données… rien toujours blanc</li>
<li>Après recherche, je me dis que les vacances amènent les idées mais ralentissent ma mémoire… la solution était classique.</li>
</ol>
<p>Drupal consomme beaucoup, la mémoire de mon serveur local est resté faible… 32M. Une petite augmentation de la mémoire et mon site est reparti.. avec ce petit code à rajouter dans l’index.php</p>
<pre class="brush: plain; title: ; notranslate">ini_set(&quot;memory_limit&quot;, &quot;256M&quot;);</pre>
<div class="shr-publisher-124"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F11%2F03%2Fdrupal-et-sa-page-blanche%2F' data-shr_title='Drupal+et+sa+page+blanche'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F11%2F03%2Fdrupal-et-sa-page-blanche%2F' data-shr_title='Drupal+et+sa+page+blanche'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F11%2F03%2Fdrupal-et-sa-page-blanche%2F' data-shr_title='Drupal+et+sa+page+blanche'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/11/03/drupal-et-sa-page-blanche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tableau simple</title>
		<link>http://remithomas.fr/2011/10/08/tableau-simple/</link>
		<comments>http://remithomas.fr/2011/10/08/tableau-simple/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 19:35:36 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Exemple]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[tableau]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=120</guid>
		<description><![CDATA[Simple exemple sous Drupal pour créer un tableau Utilisation de theme(‘table’, header, rows)]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Simple exemple sous Drupal pour créer un tableau</p>
<pre class="brush: plain; title: ; notranslate">$rows = array(
array(
'Cell 1', 'Cell 2', 'Cell 3'
),array(
'Cell 4', 'Cell 5', 'Cell 6'
));

$output = theme('table', array(&quot;1&quot;,&quot;2&quot;,&quot;3&quot;), $rows);</pre>
<p>Utilisation de theme(‘table’, header, rows);</p>
<div class="shr-publisher-120"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F10%2F08%2Ftableau-simple%2F' data-shr_title='Tableau+simple'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F10%2F08%2Ftableau-simple%2F' data-shr_title='Tableau+simple'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F10%2F08%2Ftableau-simple%2F' data-shr_title='Tableau+simple'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/10/08/tableau-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Balises HTML basiques sous DRUPAL</title>
		<link>http://remithomas.fr/2011/10/06/balises-html-basiques-sous-drupal/</link>
		<comments>http://remithomas.fr/2011/10/06/balises-html-basiques-sous-drupal/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 19:28:39 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Exemple]]></category>
		<category><![CDATA[Balise]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=118</guid>
		<description><![CDATA[Si comme moi, vous galèrez à trouver le bon code en développement sous Drupal pour ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Si comme moi, vous galèrez à trouver le bon code en développement sous Drupal pour des balises HML simples.. Ce post est pour vous..</p>
<p>Au sommaire et avec des exemples comment faire une liste UL/OL</p>
<h1>Une liste ..</h1>
<p>Pour effectuer une liste il suffit d’écrire ce code suivant:</p>
<pre class="brush: plain; title: ; notranslate">return theme_item_list($items, $title, $type, $attributes);</pre>
<p>Voici un exemple tout simple ou sur <a href="http://api.drupal.org">api.drupal.org</a></p>
<pre class="brush: plain; title: ; notranslate">$title = &quot;Ma liste&quot;;
$type = 'ul';
$attributes = array('class' =&gt; 'ma-classe-de-liste');
$items = array(
array( 'data' =&gt; &quot;item #1&quot;,
'class' =&gt; 'niveau-1',
'id' =&gt; 'level-1-item-1',
'children' =&gt; array(
array('data' =&gt; &quot;Simple Bloc #1&quot;,
'class' =&gt; 'simple-bloc',
'id' =&gt; 'level-2-item-1',),
)
),
array( 'data' =&gt; &quot;item #2&quot;,
'class' =&gt; 'niveau-1c',
'id' =&gt; 'level-1-item-2',
));

$output .= theme_item_list($items, $title, $type, $attributes);</pre>
<h1>Faire des liens..</h1>
<h3>Lien simple</h3>
<pre class="brush: plain; title: ; notranslate">l($text, $path, $options = array() );1

en exemple

1l(&quot;www.remithomas.fr&quot;, &quot;http://www.remithomas.fr&quot; );</pre>
<h3>Lien avec une ancre</h3>
<pre class="brush: plain; title: ; notranslate">l(&quot;Avec une ancre&quot;, '', array('fragment' =&gt; '#mon_ancre', 'external' =&gt; TRUE) );</pre>
<h3>Lien et son javascript</h3>
<pre class="brush: plain; title: ; notranslate">l(&quot;lien avec javascript&quot;, '', array('attributes' =&gt; array('onclick' =&gt; 'ma_fonction();return false;')) );</pre>
<div class="shr-publisher-118"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F10%2F06%2Fbalises-html-basiques-sous-drupal%2F' data-shr_title='Balises+HTML+basiques+sous+DRUPAL'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F10%2F06%2Fbalises-html-basiques-sous-drupal%2F' data-shr_title='Balises+HTML+basiques+sous+DRUPAL'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F10%2F06%2Fbalises-html-basiques-sous-drupal%2F' data-shr_title='Balises+HTML+basiques+sous+DRUPAL'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/10/06/balises-html-basiques-sous-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Petites requêtes en SQL pour Drupal</title>
		<link>http://remithomas.fr/2011/09/09/petites-requetes-en-sql-pour-drupal/</link>
		<comments>http://remithomas.fr/2011/09/09/petites-requetes-en-sql-pour-drupal/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 19:05:51 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Exemple]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[requêtes]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=110</guid>
		<description><![CDATA[Un petit rappel des requêtes basiques en SQL pour Drupal. Select Insert Update Faire un ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Un petit rappel des requêtes basiques en SQL pour <a href="http://www.drupal.org">Drupal</a>.</p>
<ul>
<li>Select</li>
<li>Insert</li>
<li>Update</li>
</ul>
<h1>Faire un simple SELECT</h1>
<pre class="brush: plain; title: ; notranslate">db_query_range($query, $args,$from, $count);</pre>
<p>Avec un petit exemple</p>
<pre class="brush: plain; title: ; notranslate">$result = db_query_range('
SELECT block.id_block
FROM {epragma_block} block
WHERE block.block_qcm = %d
', $id_qcm, 0, 10);

while ($node = db_fetch_object($result)) {

// Actions, par exemple $node-&gt;body, etc...

print_r($node);

}</pre>
<h1>Un INSERT ?</h1>
<pre class="brush: plain; title: ; notranslate">drupal_write_record($table, &amp;$object, $update = array());</pre>
<p>Avec un petit exemple</p>
<pre class="brush: plain; title: ; notranslate">$table = 'ma_table';

$record = new stdClass();
$record -&gt; Nom = $nom;

drupal_write_record($table, $record);</pre>
<h1>Un UPDATE ?</h1>
<p>Sur le même principle mais en indiquant l’identifiant</p>
<pre class="brush: plain; title: ; notranslate">$table = 'ma_table';

$record = new stdClass();
$record -&gt; Nom = $nom;

$record -&gt; id = $id;

drupal_write_record($table, $record, 'id');</pre>
<div class="shr-publisher-110"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F09%2F09%2Fpetites-requetes-en-sql-pour-drupal%2F' data-shr_title='Petites+requ%C3%AAtes+en+SQL+pour+Drupal'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F09%2F09%2Fpetites-requetes-en-sql-pour-drupal%2F' data-shr_title='Petites+requ%C3%AAtes+en+SQL+pour+Drupal'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F09%2F09%2Fpetites-requetes-en-sql-pour-drupal%2F' data-shr_title='Petites+requ%C3%AAtes+en+SQL+pour+Drupal'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/09/09/petites-requetes-en-sql-pour-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Traduction de plugins et autres sous Joomla!</title>
		<link>http://remithomas.fr/2011/09/01/traduction-de-plugins-et-autres-sous-joomla/</link>
		<comments>http://remithomas.fr/2011/09/01/traduction-de-plugins-et-autres-sous-joomla/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 18:56:16 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[traduction]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=107</guid>
		<description><![CDATA[Adepte de WordPress et Drupal, il m’arrive aussi de développer sous Joomla! Cependant pour certains ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Adepte de WordPress et Drupal, il m’arrive aussi de développer sous Joomla! Cependant pour certains modules, composants et plugins voir thèmes, je rencontre quelques petits désagréments: des traductions non disponibles.</p>
<h1>Alors comment faire ?</h1>
<p>Une solution brutale et longue est de créer le fichier .ini de traduction qui sera placé dans la partie administrator/language ou language (public).</p>
<h1>Un composant fort utile !</h1>
<p>L’inconvénient de la technique précédente est qu’elle est assez compliquée à mettre en oeuvre:</p>
<ul>
<li>Accès souvent difficile au FTP (sans être &laquo;&nbsp;root&nbsp;&raquo;, cela peut être un problème)</li>
<li>Eviter de faire des erreurs.. et encore obliger de modifier plusieurs fois le fichier</li>
<li>Un fichier à modifier.. ou plus.. cela devient vite embêtant..</li>
</ul>
<p>Voici donc un petit composant fort utile, précisant :</p>
<ul>
<li>Le pourcentage de traduction</li>
<li>Ajout d’élément traduit ou à traduire à la volée</li>
<li>Affichage des fichiers non traduits</li>
</ul>
<p>Son nom est <a href="http://extensions.joomla.org/extensions/languages/language-edition/1776">Translations Manager</a> !</p>
<div class="shr-publisher-107"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F09%2F01%2Ftraduction-de-plugins-et-autres-sous-joomla%2F' data-shr_title='Traduction+de+plugins+et+autres+sous+Joomla%21'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F09%2F01%2Ftraduction-de-plugins-et-autres-sous-joomla%2F' data-shr_title='Traduction+de+plugins+et+autres+sous+Joomla%21'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F09%2F01%2Ftraduction-de-plugins-et-autres-sous-joomla%2F' data-shr_title='Traduction+de+plugins+et+autres+sous+Joomla%21'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/09/01/traduction-de-plugins-et-autres-sous-joomla/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CIVIevent, faire un template de listing</title>
		<link>http://remithomas.fr/2011/08/16/civievent-faire-un-template-de-listing/</link>
		<comments>http://remithomas.fr/2011/08/16/civievent-faire-un-template-de-listing/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 16:26:43 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Tuto]]></category>
		<category><![CDATA[civicrm]]></category>
		<category><![CDATA[civievent]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[listing]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=89</guid>
		<description><![CDATA[Qu’est ce que CIVICRM et CIVIevent CIVICRM est comme une partie de son nom l’indique: ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h1>Qu’est ce que CIVICRM et CIVIevent</h1>
<ol>
<li><a href="http://civicrm.org/">CIVICRM</a> est comme une partie de son nom l’indique: un CRM ou Customer Relationship Management. le système en lui même est gratuit et en open source, il permet de faire un suivi facile de contacts, de structures.</li>
<li>Outre le fait que CIVICRM permet la gestion aisée de contacts (sous forme répertoire), il permet aussi de créer ses propres événements et leur gestion (avec des possibilités de paiement en ligne).</li>
</ol>
<p>Voici donc un petit tutorial pour générer <strong>un joli listing de participants</strong> sur son site. Plus développé que les modèles d’origine:</p>
<ul>
<li>Name only</li>
<li>Name and Email</li>
<li>name, Status and Register date</li>
</ul>
<h1>Que va t-on faire ???</h1>
<p>La première chose à faire, lorsqu’on développe ou autre est de se poser la question, que faire ? Ce qui permet de se poser une autre question essentielle.. par où commencer</p>
<p>Donc le début pour notre cas, est de réutiliser des classes et templates déjà créés (ce n’est pas la peine de ré-inventer la roue) pour rajouter nom et prénom sur notre nouveau (joli) listing.</p>
<h2>Première étape: le modèle</h2>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto01.jpg" title="" class="shutterset_singlepic2" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/2__50x50_tuto01.jpg" alt="tuto01" title="tuto01" />
</a>
 Nous allons créer un nouveau modèle (appelé Gabarit dans la version française) à notre listing de participant. Pour cela il nous suffit d’aller dans la partie d’administration de CIVICRM pour choisir « gabarit de liste de participants » dans l’administration de CIVIevent ou à l’aide du lien suivant:</p>
<pre class="brush: plain; title: ; notranslate">[url]/civicrm/admin/options/participant_listing &amp;group=participant_listing&amp;reset=1</pre>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto02.jpg" title="" class="shutterset_singlepic3" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/3__50x50_tuto02.jpg" alt="tuto02" title="tuto02" />
</a>
 Nous allons insérer un nouveau modèle qui portera la description suivante:</p>
<p>CRM_Event_Page_ParticipantListing_<strong>MONMODELE</strong></p>
<p><strong>Attention le label n’est absolument pas importante (c’est pour vous) ; Par contre la DESCRIPTION est plus qu’importante, c’est elle le lien avec vos classes et modèles</strong></p>
<h2>Deuxième étape: Ajouter son fichier de classe</h2>
<p>Nous allons ajouter un fichier de classe dans le dossier suivant :</p>
<p>« [URL]/sites/all/modules/civicrm/CRM/Event/Page/ParticipantListing ».</p>
<p>Pour ce faire nous allons utiliser le fichier existant pour le modifier sous notre nouveau nom.</p>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto01.jpg" title="" class="shutterset_singlepic2" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/2__50x50_tuto01.jpg" alt="tuto01" title="tuto01" />
</a>
 La modification est toute simple, nous allons réutiliser le fichier le plus proche de ce que nous voulons faire: ajouter la date d’inscription dans le fichier Name and Email</p>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto02.jpg" title="" class="shutterset_singlepic3" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/3__50x50_tuto02.jpg" alt="tuto02" title="tuto02" />
</a>
 Dupliquer le fichier NameAndEmail.php et renommez le sous le nom <strong>NameAndEmailDate.php</strong></p>
<p><span style="text-decoration: underline;"><em><strong>Remarques</strong>: vous avez vu, nous avons rajouté juste Date</em></span></p>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto03.jpg" title="" class="shutterset_singlepic4" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/4__50x50_tuto03.jpg" alt="tuto03" title="tuto03" />
</a>
 Maintenant modifions le code d’entête de la classe de ce nouveau fichier pour ajouter le bon nom de classe.</p>
<pre class="brush: plain; title: ; notranslate">class CRM_Event_Page_ParticipantListing_NameAndEmailDate extends CRM_Core_Page {</pre>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto04.jpg" title="" class="shutterset_singlepic5" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/5__50x50_tuto04.jpg" alt="tuto04" title="tuto04" />
</a>
 Modifier maintenant la requête SQL, avec ce que vous avez besoin pour envoyer dans le futur tableau qui sera utilisé par le template (prochaine grosse étape).</p>
<p><strong>La modification de la requête se fait à divers endroits:</strong></p>
<ul>
<li>Dans la fonction run()</li>
</ul>
<pre class="brush: plain; title: ; notranslate">$query = &quot;SELECT civicrm_contact.id as contact_id , civicrm_contact.display_name as name ,
civicrm_contact.sort_name as sort_name ,
civicrm_participant.id as participant_id,
civicrm_participant.status_id as status_id ,
civicrm_participant.register_date as register_date
$fromClause
$whereClause
ORDER BY $orderBy
LIMIT $offset, $rowCount&quot;;</pre>
<ul>
<li>Dans la boucle While</li>
</ul>
<pre class="brush: plain; title: ; notranslate">while ( $object-&gt;fetch( ) ) {
$row = array( 'id' =&gt; $object-&gt;contact_id,
'participantID' =&gt; $object-&gt;participant_id,
'name' =&gt; $object-&gt;name ,
'email' =&gt; $object-&gt;email,
'status' =&gt; CRM_Utils_Array::value( $object-&gt;status_id,$statusLookup ),
'date' =&gt; $object-&gt;register_date );
$rows[] = $row;
}</pre>
<ul>
<li>Dans la fonction OrderBy, vous pouvez aussi rajouter votre code. A titre d’exemple:</li>
</ul>
<pre class="brush: plain; title: ; notranslate">if ( ! $headers ) {
$headers = array( );
$headers[1] = array( 'name' =&gt; ts( 'Name' ),
'sort' =&gt; 'civicrm_contact.sort_name',
'direction' =&gt; CRM_Utils_Sort::ASCENDING );
$headers[2] = array( 'name' =&gt; ts( 'Status' ),
'sort' =&gt; 'civicrm_participant.status_id',
'direction' =&gt; CRM_Utils_Sort::DONTCARE );
$headers[3] = array( 'name' =&gt; ts( 'Register Date' ),
'sort' =&gt; 'civicrm_participant.register_date',
'direction' =&gt; CRM_Utils_Sort::DONTCARE );
}</pre>
<h2>troisième étape : Modifier le fichier.TPL</h2>
<p>Maintenant que notre classe est créée, afin de pouvoir voir quelque chose, il nous avoir un template qui sera utilisé pour afficher notre résultat.</p>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto01.jpg" title="" class="shutterset_singlepic2" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/2__50x50_tuto01.jpg" alt="tuto01" title="tuto01" />
</a>
 Où se situe notre fichier pour modifier le Template: partie importante de ce tuto, sinon on voit rien <img src='http://remithomas.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<pre class="brush: plain; title: ; notranslate">[url]/sites/all/modules/civicrm/templates/ CRM/Event/Page/ParticipantListing</pre>
<p>Ici même démarche que la première fois avec le fichier de classe, duplication du fichier NameAndEmail.tpl</p>
<p>
<a href="http://remithomas.fr/wp-content/gallery/kit-tuto/tuto02.jpg" title="" class="shutterset_singlepic3" >
	<img class="ngg-singlepic ngg-left" src="http://remithomas.fr/wp-content/gallery/cache/3__50x50_tuto02.jpg" alt="tuto02" title="tuto02" />
</a>
 Il suffit de rajouter dans ce fichier un champ qui fait référence à la données de la date.</p>
<pre class="brush: plain; title: ; notranslate">&lt;td class=&quot;crm-participant-date&quot;&gt;{$row.date}&lt;/td&gt;</pre>
<div class="shr-publisher-89"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F08%2F16%2Fcivievent-faire-un-template-de-listing%2F' data-shr_title='CIVIevent%2C+faire+un+template+de+listing'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F08%2F16%2Fcivievent-faire-un-template-de-listing%2F' data-shr_title='CIVIevent%2C+faire+un+template+de+listing'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F08%2F16%2Fcivievent-faire-un-template-de-listing%2F' data-shr_title='CIVIevent%2C+faire+un+template+de+listing'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/08/16/civievent-faire-un-template-de-listing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Générer son schéma de BDD</title>
		<link>http://remithomas.fr/2011/08/06/generer-son-schema-de-base-de-donnees/</link>
		<comments>http://remithomas.fr/2011/08/06/generer-son-schema-de-base-de-donnees/#comments</comments>
		<pubDate>Sat, 06 Aug 2011 15:28:21 +0000</pubDate>
		<dc:creator>Rémi</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://blog.remithomas.fr/?p=78</guid>
		<description><![CDATA[Lorsque vous développez pour DRUPAL vos propres modules, vous avez besoin de générer votre schéma de base de données. ]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Lorsque vous développez pour <strong>DRUPAL</strong> vos propres modules, vous avez besoin de <strong>générer</strong> votre schéma de <span style="text-decoration: underline;">base de données</span>. La tâche est souvent complexe et longue.</p>
<p>Après avoir importer votre script SQL correspondant à votre modélisation, vous pouvez facilement générer votre <a href="http://drupal.org/node/146862" target="_blank">schéma</a> de base de données.</p>
<p><em>Un petit module qui est fort utile à cette action :</em></p>
<blockquote><p><a href="http://drupal.org/project/schema" target="_blank">http://drupal.org/project/schema</a></p></blockquote>
<p>A l’aide de l’inspecteur, vous pouvez extraire le(s) schéma(s) correspondant à votre (vos) table(s) qui sont situés dans le champ (au début) nommé « <strong>Unknown</strong> » (au début de la page).</p>
<p><em>Le lien d’administration :</em></p>
<blockquote><p>[URL]/admin/build/schema/inspect</p></blockquote>
<div class="shr-publisher-78"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='standard' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F08%2F06%2Fgenerer-son-schema-de-base-de-donnees%2F' data-shr_title='G%C3%A9n%C3%A9rer+son+sch%C3%A9ma+de+BDD'></a><a class='shareaholic-googleplusone' data-shr_size='standard' data-shr_count='false' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F08%2F06%2Fgenerer-son-schema-de-base-de-donnees%2F' data-shr_title='G%C3%A9n%C3%A9rer+son+sch%C3%A9ma+de+BDD'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fremithomas.fr%2F2011%2F08%2F06%2Fgenerer-son-schema-de-base-de-donnees%2F' data-shr_title='G%C3%A9n%C3%A9rer+son+sch%C3%A9ma+de+BDD'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://remithomas.fr/2011/08/06/generer-son-schema-de-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

