<?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>chto.fr</title>
	<atom:link href="http://blog.chto.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chto.fr</link>
	<description>Mémoire partagée des trucs et astuces !</description>
	<lastBuildDate>Wed, 16 May 2012 17:17:36 +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>[ Symfony 2 ] Enlever les labels des formulaires</title>
		<link>http://blog.chto.fr/2012/05/symfony-2-enlever-les-labels-des-formulaires/</link>
		<comments>http://blog.chto.fr/2012/05/symfony-2-enlever-les-labels-des-formulaires/#comments</comments>
		<pubDate>Wed, 16 May 2012 17:16:32 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[foundation]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=243</guid>
		<description><![CDATA[J&#8217;utilise Foundation avec Symfony 2.0, je voulais faire des beaux formulaires, des &#171;&#160;nice form&#160;&#187; avec &#171;&#160;inline label&#160;&#187;. Evidemment si on laisse le label au dessus c&#8217;est moche&#8230;. Pour les petits formulaires on peut le faire en passant par le fichier Twig, mais si on pouvait gérer ça dans le buildForm directement ça serait parfait&#8230; J&#8217;ai [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;utilise <a href="http://foundation.zurb.com/docs/forms.php">Foundation</a> avec Symfony 2.0, je voulais faire des beaux formulaires, des &laquo;&nbsp;nice form&nbsp;&raquo; avec &laquo;&nbsp;inline label&nbsp;&raquo;. Evidemment si on laisse le label au dessus c&#8217;est moche&#8230;. Pour les petits formulaires on peut le faire en passant par le fichier Twig, mais si on pouvait gérer ça dans le buildForm directement ça serait parfait&#8230;<span id="more-243"></span></p>
<p>J&#8217;ai trouvé une très grande partie de la solution sur <a href="https://groups.google.com/forum/#!topic/symfony2/QXMBYIi8CeE">le groupe Google de Symfony 2</a>, elle a été donnée par Martin Schnabel, mais pas expliquée.</p>
<p>Voici donc ce que vous devez faire :</p>
<p>Créer le fichier : Foo\BarBundle\Form\Extension\LabelFormTypeExtension.php et mettre ceci dedans :</p>
<p><code><br />
namespace Foo\BarBundle\Form\Extension;<br />
use Symfony\Component\Form\AbstractTypeExtension;<br />
use Symfony\Component\Form\FormBuilder;<br />
class LabelFormTypeExtension extends AbstractTypeExtension<br />
{<br />
public function buildForm(FormBuilder $builder, array $options)<br />
{<br />
if (array_key_exists('label', $options) &amp;&amp; $options['label']=== false)<br />
{<br />
$builder-&gt;setAttribute('label', false);<br />
}<br />
}<br />
public function getExtendedType()<br />
{<br />
return 'field';<br />
}<br />
}<br />
</code></p>
<p>Ensuite il faut ajouter dans le fichier Foo\BarBundle\Resources\config\services.yml sous services:</p>
<p><code><br />
foo_bar.form.label_extension:<br />
class: Foo\BarBundle\Form\Extension\LabelFormTypeExtension<br />
tags:<br />
- { name: form.type_extension, alias: field }<br />
</code></p>
<p>Après ajouter le fichier Foo\BarBundle\Resources\views\Form\fields.html.twig</p>
<p><code><br />
{% block generic_label %}<br />
{% spaceless %}<br />
{% if label is not sameas(false) %}<br />
{% if required %}<br />
{% set attr = attr|merge({'class': attr.class|default('') ~ '<br />
required'}) %}<br />
{% endif %}<br />
<label for="">{{ label|trans }}</label><br />
{% endif %}<br />
{% endspaceless %}<br />
{% endblock %}<br />
</code></p>
<p>Dans le fichier Foo\BarBundle\Form\entiteForm.php, il suffit de définir le label à false</p>
<p><code><br />
................<br />
public function buildForm(FormBuilder $builder, array $options)<br />
{<br />
$builder<br />
-&gt;add('champ', 'text', array (<br />
'attr' =&gt; array(<br />
'placeholder' =&gt; 'Champ',<br />
'class' =&gt; "input-text"<br />
),<br />
'label' =&gt; false<br />
)<br />
)<br />
................<br />
</code></p>
<p>Enfin pour que ça fonctionne, il faut dire au formulaire de se servir de fields.html.twig</p>
<p>Dans votre twig qui affiche le formulaire, juste avant il faut insérer une ligne<br />
<code><br />
{% form_theme form 'foobarBundle:Form:fields.html.twig' %}<br />
{{ form_widget(form) }}<br />
</code></p>
<p>Le tour est joué !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/05/symfony-2-enlever-les-labels-des-formulaires/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ phpMyAdmin ] Mettre à jour phpMyAdmin sur Linux</title>
		<link>http://blog.chto.fr/2012/05/phpmyadmin-mettre-a-jour-phpmyadmin-sur-linux/</link>
		<comments>http://blog.chto.fr/2012/05/phpmyadmin-mettre-a-jour-phpmyadmin-sur-linux/#comments</comments>
		<pubDate>Fri, 04 May 2012 13:17:46 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=259</guid>
		<description><![CDATA[Pour mettre à jour phpMyAdmin, il suffit simplement de remplacer le dossier par la nouvelle version, c&#8217;est très simple. Attention il faut garder le config.inc.php de la version précédente ! Le plus dur est de localiser l&#8217;endroit où se trouve phpMyAdmin, vous pouvez aller voir dans /usr/share/ s&#8217;il y a un dossier phpMyAdmin, sinon il [...]]]></description>
			<content:encoded><![CDATA[<p>Pour mettre à jour phpMyAdmin, il suffit simplement de remplacer le dossier par la nouvelle version, c&#8217;est très simple. Attention il faut garder le config.inc.php de la version précédente !<span id="more-259"></span></p>
<p>Le plus dur est de localiser l&#8217;endroit où se trouve phpMyAdmin, vous pouvez aller voir dans /usr/share/ s&#8217;il y a un dossier phpMyAdmin, sinon il faut aller voir du côté des paramètre du serveur Apache.</p>
<p>Une fois connecté en SSH sur votre serveur. Tapez les commandes suivantes :<br />
<code><br />
su<br />
*Mot de passe root<br />
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.1/phpMyAdmin-3.5.1-all-languages.tar.gz<br />
(Pensez à vérifier le lien de téléchargement sur le site de phpmyadmin)<br />
tar -xzvf phpMyAdmin-3.5.1-all-languages.tar.gz<br />
cp /usr/share/phpmyadmin/config.inc.php config.inc.php<br />
rm -R /usr/share/phpmyadmin<br />
cp -R phpMyAdmin-3.5.1-all-languages /usr/share/phpmyadmin<br />
cp config.inc.php /usr/share/phpmyadmin/config.inc.php</code></p>
<p>C&#8217;est fini ! Vérifiez que la configuration est toujours bonne. Le thème n&#8217;a pas forcément changé, à vous de le faire.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/05/phpmyadmin-mettre-a-jour-phpmyadmin-sur-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ Proxmox sur Dedibox ] Mise en place de la VM : Partie 2 (Virtualmin)</title>
		<link>http://blog.chto.fr/2012/05/proxmox-sur-dedibox-mise-en-place-de-la-vm-partie-2-virtualmin/</link>
		<comments>http://blog.chto.fr/2012/05/proxmox-sur-dedibox-mise-en-place-de-la-vm-partie-2-virtualmin/#comments</comments>
		<pubDate>Fri, 04 May 2012 12:43:00 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[1and1]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dedibox]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[virtualmin]]></category>
		<category><![CDATA[webmin]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=248</guid>
		<description><![CDATA[Ce tuto n&#8217;est pas finalisé, il comporte des approximations, des erreurs et des oublis attention donc ! Dans cette version nous allons installer Virtualmin qui nous permettra de gérer plusieurs noms de domaine facilement. Virtualmin créera des espaces cloisonnés rapidement et simplement pour chaque domaine et sous-domaine Tout d&#8217;abord, on va se rendre sur le [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #ff0000;">Ce tuto n&#8217;est pas finalisé, il comporte des approximations, des erreurs et des oublis attention donc !</span></strong></p>
<p>Dans cette version nous allons installer Virtualmin qui nous permettra de gérer plusieurs noms de domaine facilement. Virtualmin créera des espaces cloisonnés rapidement et simplement pour chaque domaine et sous-domaine<span id="more-248"></span></p>
<p>Tout d&#8217;abord, on va se rendre sur le site de <a href="http://www.virtualmin.com/download.html">Virtualmin dans la rubrique Download</a> pour suivre le tuto indiqué.</p>
<p>On se connecte en SSH<br />
Adresse : 88.190.100.81, port 8800 avec le compte userchto<br />
Puis</p>
<p><code>su<br />
*Mot de passe root<br />
wget http://software.virtualmin.com/gpl/scripts/install.sh<br />
/bin/sh install.sh<br />
*Taper y puis entrée</code></p>
<p>Avant de pouvoir se connecter, il faut ouvrir le port 10000 dans le parefeu.<br />
On se connecte en SSH sur hoster pour autoriser le trafic réseau sur le parefeu.<br />
Adresse : 88.190.1.6, port 8800 avec le compte userchto<br />
Puis<br />
<code><br />
su<br />
*Mot de passe root<br />
nano /etc/firewall.d/master<br />
# This file is processed by /etc/init.d/firewall CTID="101"<br />
CTNAME="MASTER"<br />
CTIP="88.190.100.81"<br />
OPEN_INPUT_TCP_PORTS="20 21 25 53 80 443 8800 10000"<br />
OPEN_INPUT_UDP_PORTS="53 123"<br />
OPEN_OUTPUT_TCP_PORTS="20 21 25 53 80 443 8800"<br />
OPEN_OUTPUT_UDP_PORTS="53 123"<br />
*On enregistre<br />
/etc/init.d/firewall restart<br />
</code></p>
<p>On ouvre le navigateur et on va sur https://88.190.100.81:10000, on se connecte en root. Ensuite normalement, on tombe sur la page Post-Installation Wizard, on clique sur &laquo;&nbsp;Next&nbsp;&raquo;.<br />
Preload Virtualmin libraries? Yes<br />
Run email domain lookup server? Yes<br />
Next<br />
Run ClamAV server scanner? Yes<br />
Next<br />
Run SpamAssassin server filter? Yes<br />
Next<br />
(Là c&#8217;est selon vos besoins)<br />
Run MySQL database server? Yes<br />
Run PostgreSQL database server? No<br />
Next<br />
Un message d&#8217;erreur peut apparaitre, &laquo;&nbsp;MySQL has been enabled, but cannot be used by Virtualmin. Use the MySQL Database module to fix the problem.&nbsp;&raquo; Ouvrez dans une nouvel onglet le lien &laquo;&nbsp;MySQL Database&nbsp;&raquo; et entrez les identifiants que vous aviez donné à l&#8217;installation de MySQL et cliquez sur &laquo;&nbsp;Save&nbsp;&raquo;. Fermez l&#8217;onglet pour revenir à la page Post-Installation Wizard et on clique sur &laquo;&nbsp;Next&nbsp;&raquo;. Ca doit passer à l&#8217;étape suivante.<br />
Change MySQL password : Leave un-changed<br />
Next<br />
(Là c&#8217;est selon vos besoins)<br />
MySQL configuration size : Medium system (512M) with regular MySQL use<br />
Next<br />
Primary nameserver : 88-190-100-81.rev.dedibox.fr (On met le reverse de l&#8217;ip failover du server)<br />
Secondary nameservers (optional) : nssec.online.net<br />
Next<br />
Password storage mode : Only store hashed passwords<br />
Next<br />
Next<br />
Re-Check and refresh configuration</p>
<p>Maintenant on clique sur Webmin en haut à gauche. Ensuite on va dans &laquo;&nbsp;Webmin&nbsp;&raquo;, &laquo;&nbsp;Webmin configuration&nbsp;&raquo; puis dans &laquo;&nbsp;Ports and Addresses&nbsp;&raquo;. On change le numéro du port, on va mettre 8801. On met &laquo;&nbsp;Listen for broadcasts on UDP port&nbsp;&raquo; sur &laquo;&nbsp;Don&#8217;t listen&nbsp;&raquo;. On appuie sur &laquo;&nbsp;Save&nbsp;&raquo;. On retourne dans le firewall pour fermer le port 10000 et ouvrir le port 8801.</p>
<p>On se reconnecte sur https://88.190.100.81:8801, on se connecte en root et on va dans &laquo;&nbsp;Webmin&nbsp;&raquo;, &laquo;&nbsp;Change Language and Theme&nbsp;&raquo;. On choisi &laquo;&nbsp;French&nbsp;&raquo; et on clique sur &laquo;&nbsp;Make Change&nbsp;&raquo;.<br />
On va supprimer l&#8217;accès root à webmin pour donner l&#8217;accès uniquement à userchto. On va dans &laquo;&nbsp;webmin&nbsp;&raquo;, &laquo;&nbsp;Utilisateurs Webmin&nbsp;&raquo;, &laquo;&nbsp;Créer un nouveau groupe d&#8217;utilisateurs&nbsp;&raquo;, &laquo;&nbsp;Nom du groupe&nbsp;&raquo; : &laquo;&nbsp;Admin&nbsp;&raquo;, &laquo;&nbsp;Description&nbsp;&raquo; : &laquo;&nbsp;Admin&nbsp;&raquo;, On clique pour déplier &laquo;&nbsp;Les modules Webmin disponibles&nbsp;&raquo; et on clique sur &laquo;&nbsp;sélectionner tout&nbsp;&raquo;. Puis sur &laquo;&nbsp;Créer&nbsp;&raquo;. On clique ensuite sur &laquo;&nbsp;Convertir des utilisateurs Unix en utilisateurs Webmin&nbsp;&raquo; et on choisi &laquo;&nbsp;Seulement les utilisateurs&nbsp;&raquo; et on sélectionne userchto.<br />
On coche &laquo;&nbsp;Utiliser à l&#8217;avenir le même mot de passe que l&#8217;utilisateur Unix ?&nbsp;&raquo; et &laquo;&nbsp;convertir maintenant&nbsp;&raquo;. On se déconnecte et on se reconnecte en userchto. On va dans &laquo;&nbsp;webmin&nbsp;&raquo;, &laquo;&nbsp;Utilisateurs Webmin&nbsp;&raquo;, on coche root et on clique sur &laquo;&nbsp;effacer la sélection&nbsp;&raquo; puis sur &laquo;&nbsp;effacer les utilisateurs&nbsp;&raquo;.</p>
<p>Maintenant on va créer le premier site pour le nom de domaine chto.fr. On clique sur Virtualmin en haut à gauche. On va dans System Settings puis dans Server Templates. On clique sur Default Settings.<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Email message to send upon server creation : Message below<br />
Also Cc email to : votre email<br />
Save and Next<br />
Redirect admin.domain to Virtualmin? : No<br />
Default PHP version : 5<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Automatically delete old spam? Yes, if older than 14 days<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
Save and Next<br />
PostgreSQL Database Server (for database) : No<br />
SSH Login : No<br />
Save and Next</p>
<p>Maintenant sur Create Virtual Server :<br />
Domain name : chto.fr<br />
Description :<br />
Administration password : votre mot de passe<br />
Create Server</p>
<p>Une fois tous ces paramétrages effectués, on clique tout en haut à droite sur : Appliquer La Configuration. En cas de doute vous pouvez utiliser la commande named-checkconf -z via SSH pour connaitre les erreurs de configuration.</p>
<p>Ensuite on va dans l&#8217;interface de gestion Online : https://console.online.net/. On clique sur Mes serveurs puis sur le menu du côté gauche on clique sur DNS secondaire . Tout en bas de la page on met notre domaine, chto.fr, dans le champs Domaine. Dans le champs adresse on sélectionne notre ip 88.190.100.81.<br />
Si vous avez une erreur, vérifiez votre configuration DNS avec named-checkconf -z, votre parefeu aussi (port 53 ouvert en TCP et UDP).<br />
Pour vérifier votre configuration vous pouvez cliquer sur &laquo;&nbsp;Modifier le fichier d&#8217;enregistrements&nbsp;&raquo;, votre fichier de configuration doit être de cette forme :</p>
<blockquote><p>$ttl 38400<br />
chto.fr. IN SOA 88-190-100-81.rev.dedibox.fr. votre.adresse.fr. (<br />
1313486494<br />
10800<br />
3600<br />
604800<br />
38400 )<br />
chto.fr. IN NS 88-190-100-81.rev.dedibox.fr.<br />
www.chto.fr. IN A 88.190.100.81<br />
chto.fr. IN A 88.190.100.81<br />
ftp.chto.fr. IN A 88.190.100.81<br />
mail.chto.fr. IN A 88.190.100.81<br />
smtp.chto.fr. IN A 88.190.100.81<br />
pop.chto.fr. IN A 88.190.100.81<br />
magna.chto.fr. IN A 88.190.100.81<br />
chto.fr. IN NS nssec.online.net.<br />
chto.fr. IN MX 10 mail.chto.fr.</p></blockquote>
<p>Une fois que le nom de domaine est ajouté sur la console d&#8217;Online, il faut patienter. Le serveur DNS se met à jour tous les jour à 2h45 environ selon la doc. Donc tant que le serveur DNS n&#8217;est pas à jour, ça ne sert à rien de passer à l&#8217;étape suivante.</p>
<p>Vous pouvez après aller sur le site de l&#8217;AFNIC pour voir si votre configuration est prête pour le changement de serveur DNS. Ca se passe à l&#8217;adresse : <a href="http://www.afnic.fr/outils/zonecheck/form">http://www.afnic.fr/outils/zonecheck/form</a>, rentrez chto.fr puis les deux serveurs DNS, 88-190-100-81.rev.dedibox.fr et nssec.online.net.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/05/proxmox-sur-dedibox-mise-en-place-de-la-vm-partie-2-virtualmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ Apache ] mod_fcgid: read data timeout in 31 seconds</title>
		<link>http://blog.chto.fr/2012/05/apache-mod_fcgid-read-data-timeout-in-31-seconds/</link>
		<comments>http://blog.chto.fr/2012/05/apache-mod_fcgid-read-data-timeout-in-31-seconds/#comments</comments>
		<pubDate>Thu, 03 May 2012 21:22:07 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webmin]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=241</guid>
		<description><![CDATA[C&#8217;est une erreur assez énervante, je l&#8217;ai à chaque fois que je fais un truc un peu long sur un de mes sites internet, à chaque fois je passe 30 minutes à trouver la solution ! Pourtant c&#8217;est très simple ! Si vous avez Webmin, il faut aller dans Serveurs -&#62; Serveur Web Apache. Choisir [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est une erreur assez énervante, je l&#8217;ai à chaque fois que je fais un truc un peu long sur un de mes sites internet, à chaque fois je passe 30 minutes à trouver la solution !<span id="more-241"></span></p>
<p>Pourtant c&#8217;est très simple ! Si vous avez Webmin, il faut aller dans Serveurs -&gt; Serveur Web Apache. Choisir le site en question et cliquer sur Serveur virtuel. Ensuite cliquer sur Edition des directives et chercher la ligne qui commence par : IPCCommTimeout. Vous mettez ce que vous voulez après, c&#8217;est la durée que va prendre au maximum une requête en seconde.</p>
<p><code>IPCCommTimeout 240</code></p>
<p>Enfin appliquer et le tour est joué !</p>
<p>Source : <a href="http://rickchristie.com/blog/2011/note/apache-mod_fcgid-read-data-timeout-error/">http://rickchristie.com/blog/2011/note/apache-mod_fcgid-read-data-timeout-error/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/05/apache-mod_fcgid-read-data-timeout-in-31-seconds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Notepad++ ] Impossible d&#8217;afficher un fichier avec FTP_synchronize</title>
		<link>http://blog.chto.fr/2012/04/notepad-impossible-dafficher-un-fichier-avec-ftp_synchronize/</link>
		<comments>http://blog.chto.fr/2012/04/notepad-impossible-dafficher-un-fichier-avec-ftp_synchronize/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 07:52:14 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[logiciel]]></category>
		<category><![CDATA[notepad++]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=238</guid>
		<description><![CDATA[J&#8217;ai découvert il y a quelques jours un plugin pour Notepad++, un fabuleux éditeur à tout faire ! Ce plugin permet d&#8217;aller éditer les fichiers sur un serveur FTP. En fait il fait une copie locale du fichier et quand vous faites une modification puis enregistrez, le fichier est automatiquement mis à jour sur le [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai découvert il y a quelques jours un plugin pour <a title="Notepad++" href="http://notepad-plus-plus.org/download/v6.1.2.html">Notepad++</a>, un fabuleux éditeur à tout faire ! Ce plugin permet d&#8217;aller éditer les fichiers sur un serveur FTP. En fait il fait une copie locale du fichier et quand vous faites une modification puis enregistrez, le fichier est automatiquement mis à jour sur le serveur FTP. Un gain de temps incroyable, plus besoin de passer par Filezilla !<span id="more-238"></span></p>
<p>Le plugin s&#8217;appelle <a href="http://sourceforge.net/projects/npp-plugins/files/FTP_synchronize/">FTP_Synchronize</a>. Une fois téléchargé, il faut copier le fichier dll dans le dossier C:\Programmes\Notepad++\plugins</p>
<p>Sauf qu&#8217;après un redémarrage, impossible d&#8217;ouvrir le fichier sur le serveur FTP. Un message d&#8217;erreur affichait : &laquo;&nbsp;Unable to create directory for file C&nbsp;&raquo;. Pour résoudre ce problème, c&#8217;est très simple !</p>
<p>Il faut aller dans le dossier C:\Programmes\Notepad++\plugins, il doit y avoir un dossier FTP_synchronize. S&#8217;il n&#8217;y est pas, créez le. S&#8217;il y est, fait un clic droit dessus, puis Propriétés. Allez dans l&#8217;onglet Sécurité, cliquez sur Modifier&#8230; Sur la nouvelle fenêtre, cliquez sur Utilisateurs et cochez la case Contrôle total, Autoriser. Faites Appliquer, puis ok.</p>
<p>Ca remarche !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/04/notepad-impossible-dafficher-un-fichier-avec-ftp_synchronize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ Prestashop ] Surcharger une classe</title>
		<link>http://blog.chto.fr/2012/03/prestashop-surcharger-une-classe/</link>
		<comments>http://blog.chto.fr/2012/03/prestashop-surcharger-une-classe/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 14:00:10 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=231</guid>
		<description><![CDATA[Je voulais réaliser une liste des produits qui sont cochés en solde, mais qui n&#8217;ont pas de réduction définie dans l&#8217;onglet prix. Pour cela la fonction getPricesDrop() ne convenait pas. J&#8217;ai donc développé une fonction qui s&#8217;appelle getProductsOnSale() que j&#8217;avais mis dans classes/Product.php. Le problème c&#8217;est que ça empêche forcément la mise à jour de [...]]]></description>
			<content:encoded><![CDATA[<p>Je voulais réaliser une liste des produits qui sont cochés en solde, mais qui n&#8217;ont pas de réduction définie dans l&#8217;onglet prix. Pour cela la fonction getPricesDrop() ne convenait pas.<span id="more-231"></span></p>
<p>J&#8217;ai donc développé une fonction qui s&#8217;appelle getProductsOnSale() que j&#8217;avais mis dans classes/Product.php. Le problème c&#8217;est que ça empêche forcément la mise à jour de Prestashop qui supprimera la fonction. Donc il faut créer un fichier Product.php dans override/classes/ et on mets ceci dans le fichier</p>
<p><code><br />
< ?php</p>
<p>class Product extends ProductCore {</p>
<p>	public static function getProductsOnSale($id_lang, $start, $limit)<br />
	{<br />
		$rq = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('<br />
		SELECT DISTINCT p.id_product as id, p.*, pl.* , t.`rate` AS tax_rate, m.`name` AS manufacturer_name, s.`name` AS supplier_name<br />
		FROM `'._DB_PREFIX_.'product` p<br />
		LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product`)<br />
		LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`<br />
			AND tr.`id_country` = '.(int)Country::getDefaultCountryId().'<br />
			AND tr.`id_state` = 0)<br />
		LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`)<br />
		LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)<br />
		LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (s.`id_supplier` = p.`id_supplier`)<br />
		LEFT JOIN `'._DB_PREFIX_.'category_product` c ON (c.`id_product` = p.`id_product`)<br />
		WHERE pl.`id_lang` = '.(int)($id_lang). '<br />
		AND p.`active` = 1 AND p.`on_sale` = 1<br />
		ORDER BY rand()'.<br />
		($limit > 0 ? ' LIMIT '.(int)($start).','.(int)($limit) : '')<br />
		);</p>
<p>		return ($rq);<br />
	}</p>
<p>}</p>
<p>?><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/03/prestashop-surcharger-une-classe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML5 et IE8</title>
		<link>http://blog.chto.fr/2012/01/html5-et-ie8/</link>
		<comments>http://blog.chto.fr/2012/01/html5-et-ie8/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 14:02:53 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[(x)html]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[graphisme]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=227</guid>
		<description><![CDATA[Aujourd&#8217;hui il faudrait développer les site en HTML5 et CSS3 pour profiter des dernières innovations. Mais évidemment les versions Internet Explorer antérieure à la 9 ont beaucoup de mal à comprendre les balises du HTML5. Il faut donc passer par un petit bout de Javascript à mettre dans le HEAD des pages &#60;!--[if lt IE [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui il faudrait développer les site en HTML5 et CSS3 pour profiter des dernières innovations. Mais évidemment les versions Internet Explorer antérieure à la 9 ont beaucoup de mal à comprendre les balises du HTML5. Il faut donc passer par un petit bout de Javascript à mettre dans le HEAD des pages<span id="more-227"></span></p>
<p><code>&lt;!--[if lt IE 9]&gt;<br />
&lt;script&gt;<br />
document.createElement('header');<br />
document.createElement('nav');<br />
document.createElement('section');<br />
document.createElement('article');<br />
document.createElement('aside');<br />
document.createElement('footer');<br />
document.createElement('hgroup');<br />
&lt;/script&gt;<br />
&lt; ![endif]-- &gt;<br />
</code></p>
<p>Et normalement votre site ouvert dans IE7 ou IE8 devrait avoir la même apparence que dans IE9 ou presque&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2012/01/html5-et-ie8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[ Concrete5 ] Mettre le même bloc sur différentes pages</title>
		<link>http://blog.chto.fr/2011/12/concrete5-mettre-le-meme-bloc-sur-differentes-pages/</link>
		<comments>http://blog.chto.fr/2011/12/concrete5-mettre-le-meme-bloc-sur-differentes-pages/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 11:23:58 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Tutoriels]]></category>
		<category><![CDATA[Concrete5]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[SPIP]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=225</guid>
		<description><![CDATA[J&#8217;ai créé de très nombreux sites avec SPIP qui permet une très grande souplesse dans la création d&#8217;un site, tant au niveau design que contenu et fonctionnalités, on fait à peu près ce qu&#8217;on veut avec. Cependant ce qui commence à me gonfler c&#8217;est la partie admin, elle est moche, pas vraiment pratique et pas [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai créé de très nombreux sites avec SPIP qui permet une très grande souplesse dans la création d&#8217;un site, tant au niveau design que contenu et fonctionnalités, on fait à peu près ce qu&#8217;on veut avec. Cependant ce qui commence à me gonfler c&#8217;est la partie admin, elle est moche, pas vraiment pratique et pas simple pour tout le monde. Franchement quand on développe un site sympa et qu&#8217;on montre au client la partie admin, c&#8217;est limite la honte à côté d&#8217;un WordPress, Prestashop ou autre. Je ne parle pas de Joomla! car je ne supporte pas ce CMS, que je ne trouve ni pratique pour le développeur, ni très simple pour les personnes qui le gèrent, c&#8217;est une grosse usine à gaz qui peut tout faire, mais mal&#8230;<span id="more-225"></span></p>
<p>J&#8217;ai donc cherché un nouveau CMS qui soit simple pour moi et pour les personnes qui vont faire vivre le site, c&#8217;est pas simple à trouver. Après quelques tentatives avec CMS Made Simple et autre déceptions j&#8217;ai testé <a href="http://www.concrete5.org">Concrete5</a>. J&#8217;ai décidé de monter le site d&#8217;une entreprise avec. C&#8217;est un site de présentation qui n&#8217;aura pas d&#8217;actualité et qui sera modifié de temps en temps. J&#8217;ai jugé que WordPress ne serait pas adéquate dans ce cas précis.</p>
<p>Après la découverte de ce nouveau moteur je me suis lancé dans la création du site et je me suis confronté à un problème : <strong>afficher le même footer sur toutes les pages</strong>. Après quelques recherches je suis tombé sur l&#8217;extension gratuite Global Areas qui est parfaite pour ça. Il suffit d&#8217;aller dans la page où vous voulez une copie du footer, ensuite vous ajouter le bloc Global Areas et vous sélectionnez la page où vous avez préalablement fait le footer et vous sélectionner la zone footer.</p>
<p>Et voilà, y&#8217;a plus qu&#8217;à faire ça sur les autres pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2011/12/concrete5-mettre-le-meme-bloc-sur-differentes-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ Prestashop ] Impossible d&#8217;accéder à l&#8217;admin après installation</title>
		<link>http://blog.chto.fr/2011/11/prestashop-impossible-dacceder-a-ladmin-apres-installation/</link>
		<comments>http://blog.chto.fr/2011/11/prestashop-impossible-dacceder-a-ladmin-apres-installation/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 18:17:46 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=203</guid>
		<description><![CDATA[Vous venez d&#8217;installer Prestashop et après avoir renommé le dossier admin, il est impossible d&#8217;y accéder à cause d&#8217;une erreur 500 ? Dans le fichier error.log d&#8217;apache vous avez un message du genre mod_fcgid: stderr: PHP Warning: require_once(/admin/init.php): failed to open stream: No such file or directory in /admin/header.inc.php on line 34 mod_fcgid: stderr: PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Vous venez d&#8217;installer Prestashop et après avoir renommé le dossier admin, il est impossible d&#8217;y accéder à cause d&#8217;une erreur 500 ? <span id="more-203"></span></p>
<p>Dans le fichier error.log d&#8217;apache vous avez un message du genre<br />
<code><br />
mod_fcgid: stderr: PHP Warning:  require_once(/admin/init.php): failed to open stream: No such file or directory in /admin/header.inc.php on line 34<br />
mod_fcgid: stderr: PHP Fatal error:  require_once(): Failed opening required '/admin/init.php' (include_path='.:/usr/share/php:/usr/share/pear') in /admin/header.inc.php on line 34<br />
</code></p>
<p>Relancez Apache et ça ira beaucoup mieux&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2011/11/prestashop-impossible-dacceder-a-ladmin-apres-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ Symfony 2 ] Commandes essentielles</title>
		<link>http://blog.chto.fr/2011/11/symfony-2-commandes-essentielles/</link>
		<comments>http://blog.chto.fr/2011/11/symfony-2-commandes-essentielles/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 10:19:15 +0000</pubDate>
		<dc:creator>Brice</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.chto.fr/?p=199</guid>
		<description><![CDATA[Je regroupe ici toutes les commandes dont on a toujours besoin pour Symfony 2.0. Pour découvrir un tuto complet sur la découverte de Symfony 2.0 vous pouvez aller voir celui de Jérôme Place. Création d&#8217;un bundle : php app/console generate:bundle Génération des entités : php app/console doctrine:generate:entities MyApp Création de la base de donnée : [...]]]></description>
			<content:encoded><![CDATA[<p>Je regroupe ici toutes les commandes dont on a toujours besoin pour Symfony 2.0. Pour découvrir un tuto complet sur la découverte de Symfony 2.0 vous pouvez aller voir celui de <a href="http://j-place.developpez.com/tutoriels/php/creer-premiere-application-web-avec-symfony2/">Jérôme Place</a>.</p>
<p><span id="more-199"></span></p>
<p>Création d&#8217;un bundle :<br />
<code>php app/console generate:bundle</code></p>
<p>Génération des entités :<br />
<code>php app/console doctrine:generate:entities MyApp</code></p>
<p>Création de la base de donnée :<br />
<code>php app/console doctrine:database:create</code></p>
<p>Création des tables :<br />
<code>php app/console doctrine:schema:create</code></p>
<p>Mettre à jour les tables :<br />
<code>php app/console doctrine:schema:update --force</code></p>
<p>Mettre à jour les CSS, JS et images :<br />
<code>php app/console assets:install web</code></p>
<p>Vider le cache :<br />
<code>php app/console cache:clear</code></p>
<p>Création d&#8217;un utilisateur pour FOSUserBundle :<br />
<code>php app/console fos:user:create username email password</code></p>
<p>Rendre un utilisateur admin :<br />
<code>php app/console fos:user:promote username<br />
ROLE_ADMIN</code></p>
<p>En cas de problème, pour vérifier les entités :<br />
<code>php app/console cache:warmup --env=prod --no-debug</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.chto.fr/2011/11/symfony-2-commandes-essentielles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

