<?xml
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>Tech de Gamuza</title>
	<link>https://tech.gamuza.fr/</link>
	
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://tech.gamuza.fr/spip.php?id_auteur=2&amp;page=backend" rel="self" type="application/rss+xml" />




<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<item xml:lang="fr">
		<title>DDEV - Configuration pour utiliser mariadb de l'h&#244;te</title>
		<link>https://tech.gamuza.fr/Configuration-pour-utiliser-mariadb-de-l-hote.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/Configuration-pour-utiliser-mariadb-de-l-hote.html</guid>
		<dc:date>2024-11-15T08:30:23Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>DDEV</dc:subject>
		<dc:subject>tutoriel</dc:subject>

		<description>
&lt;p&gt;# Configuration pour utiliser mariadb de l'h&#244;te &lt;br class='autobr' /&gt;
## 1. Configuration de DDEV &lt;br class='autobr' /&gt;
Il faut ajouter un fichier &#224; la racine de son sous dossier .ddev (de son projet) : docker-compose.override.yaml services : db : extra_hosts : - &#034;host.docker.internal:host-gateway&#034; environment : - MYSQL_HOST=host.docker.internal &lt;br class='autobr' /&gt;
Apres avoir red&#233;marr&#233; ddev, si vous vous connectez dans le conteneur db, vous pourrez voir que la commande suivante fonctionne ping host.docker.internal Pour (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-DDEV-15-.html" rel="directory"&gt;DDEV&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-DDEV-336-+.html" rel="tag"&gt;DDEV&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;md&gt;&lt;br class='autobr' /&gt;
# Configuration pour utiliser mariadb de l'h&#244;te&lt;/p&gt;
&lt;p&gt;## 1. Configuration de DDEV&lt;/p&gt;
&lt;p&gt;Il faut ajouter un fichier &#224; la racine de son sous dossier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;.ddev&lt;/code&gt; (de son projet) : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;docker-compose.override.yaml&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;yaml&#034; class='spip_code spip_code_block language-yaml' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;services: db: extra_hosts: - &#034;host.docker.internal:host-gateway&#034; environment: - MYSQL_HOST=host.docker.internal &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Apres avoir red&#233;marr&#233; ddev, si vous vous connectez dans le conteneur db, vous pourrez voir que la commande suivante fonctionne &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ping host.docker.internal&lt;/code&gt; Pour ce&lt;/p&gt;
&lt;p&gt;## 2. Configuration de mysql de l'h&#244;te.&lt;/p&gt;
&lt;p&gt;Il faut modifier votre instance de mysql/mariadb pour qu'elle &#233;coute toutes les ip et pas seulement localhost. Pour cela il faut changer dans la conf de mariadb &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;my.cnf&lt;/code&gt; la ligne : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bind-address = localhost&lt;/code&gt; par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bind-address = 0.0.0.0&lt;/code&gt; En terme de s&#233;cu, c'est un peu moins bien ;-)&lt;/p&gt;
&lt;p&gt;## 3. User mysql pour le spip&lt;/p&gt;
&lt;p&gt;Il faut que votre user mysql est comme nom d'h&#244;te &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;%&lt;/code&gt; et non &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;localhost&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;## 4. Configuration du spip&lt;/p&gt;
&lt;p&gt;Il faut changer dans le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;connect.php&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;* le nom d'host devient &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;host.docker.internal&lt;/code&gt;&lt;br class='autobr' /&gt;
* le port &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;3306&lt;/code&gt; (inchang&#233;)&lt;br class='autobr' /&gt;
* user -&gt; celui d&#233;fini dans l'&#233;tape 3&lt;br class='autobr' /&gt;
&lt;/md&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>DDEV - Personnalisation de phpmyadmin</title>
		<link>https://tech.gamuza.fr/DDEV-Personnalisation-de-phpmyadmin.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/DDEV-Personnalisation-de-phpmyadmin.html</guid>
		<dc:date>2024-11-15T08:25:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>DDEV</dc:subject>
		<dc:subject>tutoriel</dc:subject>

		<description>
&lt;p&gt;Si vous souhaitez modifier la configuration de phpmyadmin, en utilisant un fichier config.user.inc.php &lt;br class='autobr' /&gt;
1. dans le fichier : docker-compose.phpmyadmin.yaml, ajouter dans la cl&#233; phpmyadmin :
&lt;br class='autobr' /&gt;
services : phpmyadmin : build : context : ./phpmyadmin &lt;br class='autobr' /&gt;
2. Il faut maintenant cr&#233;er le dossier phpmyadmin dans .ddev : mkdir phpmyadmin
&lt;br class='autobr' /&gt;
3. Ajouter dans ce dossier un fichier Dockerfile avec le contenu suivant : FROM phpmyadmin:5.2.0 COPY config.user.inc.php /etc/phpmyadmin/config.user.inc.php (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-DDEV-15-.html" rel="directory"&gt;DDEV&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-DDEV-336-+.html" rel="tag"&gt;DDEV&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Si vous souhaitez modifier la configuration de phpmyadmin, en utilisant un fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.user.inc.php&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;1. dans le fichier : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;docker-compose.phpmyadmin.yaml&lt;/code&gt;, ajouter dans la cl&#233; phpmyadmin :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;services: phpmyadmin: build: context: ./phpmyadmin&lt;/textarea&gt;
&lt;p&gt;2. Il faut maintenant cr&#233;er le dossier phpmyadmin dans .&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ddev&lt;/code&gt; : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mkdir phpmyadmin&lt;/code&gt;&lt;br class='autobr' /&gt;
3. Ajouter dans ce dossier un fichier &lt;strong&gt;Dockerfile&lt;/strong&gt; avec le contenu suivant :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre php class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;FROM phpmyadmin:5.2.0 COPY config.user.inc.php /etc/phpmyadmin/config.user.inc.php&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;4. Ajouter dans ce dossier votre fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.user.inc.php&lt;/code&gt; ex :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;&lt;?php $cfg['TablePrimaryKeyOrder'] = 'DESC'; $cfg['MaxNavigationItems'] = 100;&lt;/textarea&gt;
&lt;p&gt;5. Relancer &lt;strong&gt;ddev&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Compiler imagemagick pour ajouter les delegated </title>
		<link>https://tech.gamuza.fr/Compiler-imagemagick-pour-ajouter-les-delegated.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/Compiler-imagemagick-pour-ajouter-les-delegated.html</guid>
		<dc:date>2023-09-14T08:33:18Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>tutoriel</dc:subject>
		<dc:subject>Debian</dc:subject>
		<dc:subject>serveur</dc:subject>

		<description>&lt;p&gt;&lt;strong&gt;D&#233;pannage :&lt;/strong&gt; r&#233;solution d'un probl&#232;me dans l'utilisation de &lt;i&gt;convert&lt;/i&gt; pour la conversion des jpg en pdf&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-configuration-d-un-serveur-debian-.html" rel="directory"&gt;Debian&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-debian-+.html" rel="tag"&gt;Debian&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-serveur-+.html" rel="tag"&gt;serveur&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;md&gt;&lt;br class='autobr' /&gt;
# tranformer une image (jpg) en pdf&lt;br class='autobr' /&gt;
Si la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert toto.jpg toto.pdf&lt;/code&gt;&lt;br class='autobr' /&gt;
vous renvoie l'erreur : &lt;br class='autobr' /&gt;
&gt;ImageMagick : No decode delegate for this image format&lt;/p&gt;
&lt;p&gt;cela veut dire que imagemagick n'est pas compil&#233; avec les bons &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;delegates&lt;/code&gt;&lt;br class='autobr' /&gt;
la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;convert -list configure | grep DELEGATES&lt;/code&gt; ne doit pas vous retourner &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;jpeg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour r&#233;soudre ce probl&#232;me, il faut compiler le paquet &#224; la main :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;sudo apt update sudo apt install build-essential sudo apt install -y libjpeg-dev wget https://www.imagemagick.org/download/ImageMagick.tar.gz tar xvzf ImageMagick.tar.gz cd ImageMagick-[version_number] ./configure --disable-shared sudo make sudo make install sudo make check &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/md&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<item xml:lang="fr">
		<title>OSM AND+ ajouter carte IGN</title>
		<link>https://tech.gamuza.fr/OSM-AND-ajouter-carte-IGN.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/OSM-AND-ajouter-carte-IGN.html</guid>
		<dc:date>2021-11-09T07:53:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>


		<dc:subject>tutoriel</dc:subject>
		<dc:subject>IGN</dc:subject>
		<dc:subject>Cartographie</dc:subject>
		<dc:subject>smartphone</dc:subject>

		<description>
&lt;p&gt;Ajouter les fonds de carte IGN TOP25 sur l'appli mobile OSM and + &lt;br class='autobr' /&gt;
Installer OSM AND + https://osmand.net/ sur Fdroid : https://f-droid.org/fr/packages/net.osmand.plus/ &lt;br class='autobr' /&gt;
Geoportail Cr&#233;er un compte sur : https://geoservices.ign.fr/ Cr&#233;er un cl&#233; de services web MON ESPACE &gt; Mes cl&#233;s de services web Cr&#233;er une cl&#233; Usage gratuites des SCAN 25/100/OACI Copier sa cl&#233; ! &lt;br class='autobr' /&gt;
Cr&#233;ation de l'URL Remplacer MaCleWebIGN par la cl&#233; copi&#233; pr&#233;c&#233;demment (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-Outils-logiciels-.html" rel="directory"&gt;Outils et logiciels&lt;/a&gt;

/ 
&lt;a href="https://tech.gamuza.fr/+-tutoriel-+.html" rel="tag"&gt;tutoriel&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-IGN-+.html" rel="tag"&gt;IGN&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-Cartographie-+.html" rel="tag"&gt;Cartographie&lt;/a&gt;, 
&lt;a href="https://tech.gamuza.fr/+-smartphone-+.html" rel="tag"&gt;smartphone&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Ajouter les fonds de carte IGN TOP25 sur l'appli mobile OSM and +&lt;/h2&gt;&lt;h2 class=&#034;spip&#034;&gt;Installer OSM AND +&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a href=&#034;https://osmand.net/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://osmand.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; sur Fdroid : &lt;a href=&#034;https://f-droid.org/fr/packages/net.osmand.plus/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://f-droid.org/fr/packages/net.osmand.plus/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Geoportail&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Cr&#233;er un compte sur : &lt;a href=&#034;https://geoservices.ign.fr/&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://geoservices.ign.fr/&lt;/a&gt;&lt;/li&gt;&lt;li&gt; Cr&#233;er un cl&#233; de services web
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; MON ESPACE &gt; Mes cl&#233;s de services web&lt;/li&gt;&lt;li&gt; Cr&#233;er une cl&#233;&lt;/li&gt;&lt;li&gt; Usage gratuites des SCAN 25/100/OACI&lt;/li&gt;&lt;li&gt; Copier sa cl&#233; !&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Cr&#233;ation de l'URL &lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Remplacer MaCleWebIGN par la cl&#233; copi&#233; pr&#233;c&#233;demment &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;https://wxs.ign.fr/MaCleWebIGN/geoportail/wmts?layer=GEOGRAPHICALGRIDSYSTEMS.MAPS&amp;style=normal&amp;tilematrixset=PM&amp;Service=WMTS&amp;Request=GetTile&amp;Version=1.0.0&amp;Format=image%2Fjpeg&amp;TileMatrix={0}&amp;TileCol={1}&amp;TileRow={2}&lt;/textarea&gt;&lt;/li&gt;&lt;li&gt; Pour tester votre cl&#233;, pour pouvez afficher l'url ci dessous dans votre navigateur, apr&#232;s avoir de nouveau remplac&#233; votre cl&#233; &lt;textarea readonly='readonly' cols='40' rows='5' class='spip_cadre spip_cadre_block' dir='ltr'&gt;https://wxs.ign.fr/MaCleWebIGN/geoportail/wmts?Layer=GEOGRAPHICALGRIDSYSTEMS.MAPS&amp;Style=normal&amp;TileMatrixSet=PM&amp;SERVICE=WMTS&amp;REQUEST=GetTile&amp;VERSION=1.0.0&amp;FORMAT=image/jpeg&amp;TileMatrix=15&amp;TileCol=16810&amp;TileRow=11700&lt;/textarea&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;Configuration de OSM AND&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; menu &gt; Param&#233;trer la carte &gt; Carte en ligne &gt; Ajouter
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Nom : celui que vous voulez, ex IGN&lt;/li&gt;&lt;li&gt; Lien : le premier lien cr&#233;&#233; ci dessus&lt;/li&gt;&lt;li&gt; stockage : SQLiteDB&lt;/li&gt;&lt;li&gt; Les autres champs : laisser par d&#233;faut.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034;&gt;T&#233;l&#233;charger un fond de carte IGN pour un usage hors-ligne&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; S&#233;lectionner la carte en ligne &#224; t&#233;l&#233;charger
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; volet &gt; Param&#233;trer la carte &gt; Carte en ligne&#8230;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt; Zoomer/d&#233;zoomer pour n'afficher que la portion de carte &#224; t&#233;l&#233;charger ;&lt;/li&gt;&lt;li&gt; Faire un appui long sur la carte avec votre doigt ;&lt;/li&gt;&lt;li&gt; Sur le menu qui appara&#238;t en bas de l'&#233;cran, s&#233;lectionner &#8220;Actions&#8221; ;&lt;/li&gt;&lt;li&gt; T&#233;l&#233;charger une carte&lt;/li&gt;&lt;li&gt; S&#233;lectionner le niveau de zoom maximal &#224; pr&#233;charger ;&lt;/li&gt;&lt;li&gt; T&#233;l&#233;charger&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Liens trouv&#233; apr&#232;s la r&#233;daction d'une grande partie de cette article :&lt;br class='autobr' /&gt;
&lt;a href=&#034;https://www.randonner-leger.org/wiki/doku.php?id=osmand&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://www.randonner-leger.org/wiki/doku.php?id=osmand&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>SCSS - creer les m&#233;dia queries avec la bonne largeur background-image()</title>
		<link>https://tech.gamuza.fr/SCSS-creer-les-media-queries-avec-la-bonne-largeur-background-image.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/SCSS-creer-les-media-queries-avec-la-bonne-largeur-background-image.html</guid>
		<dc:date>2019-11-25T10:44:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>
&lt;p&gt;Quand on veut s&#233;lectionner une image background pour chaque breakpoint, on peut utiliser tout le potentiel de SCSS $image_bg : 480, 576, 768, 992, 1200 ; @each $bp in $image_bg @media screen and (min-width : #$bppx) .maDiv background-image : url('img/bg_#$bp.jpg') ; &lt;br class='autobr' /&gt; Si on veut utiliser des variables de breakpoint : $tiny : 480px !default ; // or 'em' if you prefer, of course $smal : 576px !default ; $medium : 768px !default ; $large : 992px !default ; $extra-large : 1200px (&#8230;)&lt;/p&gt;


-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Quand on veut s&#233;lectionner une image background pour chaque breakpoint, on peut utiliser tout le potentiel de SCSS&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='css spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$image_bg: 480, 576, 768, 992, 1200; @each $bp in $image_bg { @media screen and (min-width: #{$bp}px) { .maDiv { background-image: url('img/bg_#{$bp}.jpg'); } } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Si on veut utiliser des variables de breakpoint :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='css spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$tiny: 480px !default; // or 'em' if you prefer, of course $smal: 576px !default; $medium: 768px !default; $large: 992px !default; $extra-large: 1200px !default; $list: $tiny, $small, $medium, $large, $extra-large; // fonction qui supprime les unit&#233;s sans connaitre &#224; l'avance l'unit&#233; @function supprimer_uniter($nbr) { @if type-of($nbr) == 'nbr' and not unitless($nbr) { @return $nbr / ($nbr * 0 + 1); } @return $nbr; } @each $l in $list { /* Si on connait &#224; l'avance l'unit&#233;*/ $bp: $l / 1px; /* Si on ne connait pas &#224; l'avance l'unit&#233;*/ $bp: supprimer_uniter($l); @media screen and (min-width: #{$bp}px) { .maDiv { background-image: url('img/bg_#{$bp}.jpg'); } } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Le code g&#233;n&#233;r&#233; sera :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='css spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;@media screen and (min-width: 480px) { .maDiv { background-image: url(&#034;img/bg_480.jpg&#034;); } } @media screen and (min-width: 576px) { .maDiv { background-image: url(&#034;img/bg_576.jpg&#034;); } } @media screen and (min-width: 768px) { .maDiv { background-image: url(&#034;img/bg_768.jpg&#034;); } } @media screen and (min-width: 992px) { .maDiv { background-image: url(&#034;img/bg_992.jpg&#034;); } } @media screen and (min-width: 1200px) { .maDiv { background-image: url(&#034;img/bg_1200.jpg&#034;); } }&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		
		<enclosure url="https://tech.gamuza.fr/IMG/css/mon_site.css" length="765" type="text/css" />
		
		<enclosure url="https://tech.gamuza.fr/IMG/zip/mon_site.scss.zip" length="465" type="application/zip" />
		

	</item>
<item xml:lang="fr">
		<title>Cahier des charges : PHP - Mysql</title>
		<link>https://tech.gamuza.fr/cahier-des-charges-php-mysql.html</link>
		<guid isPermaLink="true">https://tech.gamuza.fr/cahier-des-charges-php-mysql.html</guid>
		<dc:date>2019-05-30T11:50:54Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Christophe</dc:creator>



		<description>&lt;p&gt;R&#233;aliser une liste de courses&lt;/p&gt;

-
&lt;a href="https://tech.gamuza.fr/-formations-.html" rel="directory"&gt;D&#233;veloppement web&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Objectif : R&#233;aliser une liste de courses&lt;/h2&gt;&lt;h2 class=&#034;spip&#034;&gt;Pr&#233;sentation :&lt;/h2&gt;
&lt;p&gt;Vous devez r&#233;aliser une application web &lt;strong&gt;monopage&lt;/strong&gt; permettant la cr&#233;ation et l'utilisation d'une &lt;strong&gt;liste de courses&lt;/strong&gt;. &lt;br class='manualbr' /&gt;Cette page devra avoir un header, une barrenav, un content, (aside si besoin) et un footer. Vous pouvez utiliser un framework css. Attention, cette page devra &#234;tre responsive.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Fonctionnalit&#233;s attendues :&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Etape 1 : affichage&lt;/strong&gt;&lt;br class='autobr' /&gt;
Le tableau d'affichage doit comporter :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; l'affichage de la quantit&#233; et du nom du produit&lt;/li&gt;&lt;li&gt; Un bouton pour &lt;strong&gt;cocher&lt;/strong&gt; une ligne (fait)&lt;/li&gt;&lt;li&gt; Un bouton pour &lt;strong&gt;supprimer&lt;/strong&gt; une ligne&lt;/li&gt;&lt;li&gt; Afficher le nombre total de produits&lt;/li&gt;&lt;li&gt; Afficher le nombre total de produits non coch&#233;s&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 2 : insertion&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Cr&#233;er un formulaire pour &lt;strong&gt;ajouter&lt;/strong&gt; une ligne : Nom du produit et Quantit&#233;&lt;/li&gt;&lt;li&gt; V&#233;rifier que le nom du produit ait plus de 3 caract&#232;res&lt;/li&gt;&lt;li&gt; V&#233;rifier que la quantit&#233; soit un entier&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 3 : modification&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajouter deux boutons pour &lt;strong&gt;modifier&lt;/strong&gt; la quantit&#233; (bouton + / -).&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 4 : trier&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Ajouter deux boutons de tri du tableau (Attention : ces boutons doivent modifier la requ&#234;te mysql de s&#233;lection) : par Nom et par Quantit&#233;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Etape 5 : ajax&lt;/strong&gt;&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Transformer toutes les actions en bdd en &lt;strong&gt;AJAX&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bonus 1 : autocompl&#233;tion&lt;/strong&gt;&lt;br class='autobr' /&gt;
Ajouter l'autocompl&#233;tion sur le nom du produit dans le formulaire de cr&#233;ation. &lt;br class='autobr' /&gt;
Pour cela, vous devez utiliser une bdd.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus 2 : mode hors ligne&lt;/strong&gt;&lt;br class='autobr' /&gt;
Vous devez pouvoir utiliser sur votre t&#233;l&#233;phone votre liste de course &lt;strong&gt;sans connexion internet&lt;/strong&gt;. Il faut que le bouton : &lt;strong&gt;cocher&lt;/strong&gt; fonctionne (enregistre) pour pouvoir synchroniser &#224; votre retour chez vous.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus 3 : enregistrer ses listes&lt;/strong&gt;&lt;br class='autobr' /&gt;
Pouvoir enregistrer ses listes (avec un nom) et pouvoir les recharger.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus 4 : libre !! &lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>
<pre>Erreur d’exécution plugins/spipr-dist/inclure/rss-item.html</pre>



</channel>

</rss>
