<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://moofle.net/spip.php?page=backend.xslt" ?>
<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>Gallika.net</title>
	<link>https://gallika.net/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://moofle.net/spip.php?id_rubrique=381&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>Gallika.net</title>
		<url>https://moofle.net/local/cache-vignettes/L144xH24/siteon0-22f11.png?1736364803</url>
		<link>https://gallika.net/</link>
		<height>24</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Sous SPIP, forcer le calcul d'une balise et l'afficher plus tard</title>
		<link>https://moofle.net/Sous-SPIP-forcer-le-calcul-d-une-balise-et-l-afficher-plus-tard</link>
		<guid isPermaLink="true">https://moofle.net/Sous-SPIP-forcer-le-calcul-d-une-balise-et-l-afficher-plus-tard</guid>
		<dc:date>2026-02-21T16:52:56Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Delhaye</dc:creator>


		<dc:subject>V&#233;cus professionnels</dc:subject>
		<dc:subject>Spip</dc:subject>
		<dc:subject>IA &#8212; g&#233;n&#233;ration assist&#233;e, droits ouverts</dc:subject>

		<description>&lt;p&gt;Solution propre pour &#233;viter l'affichage des notes en double.&lt;/p&gt;

-
&lt;a href="https://moofle.net/-Coulisses-des-plateformes-" rel="directory"&gt;Coulisses des plateformes&lt;/a&gt;

/ 
&lt;a href="https://moofle.net/+-Vecus-professionnels-+" rel="tag"&gt;V&#233;cus professionnels&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Spip-354-+" rel="tag"&gt;Spip&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-IA-generation-assistee-droits-ouverts-+" rel="tag"&gt;IA &#8212; g&#233;n&#233;ration assist&#233;e, droits ouverts&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://moofle.net/local/cache-vignettes/L150xH142/figurine-spip-tire-la-langue-4-5d2d5.webp?1771695944' class='spip_logo spip_logo_right' width='150' height='142' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;D&#233;couvrez comment j'ai r&#233;solu un probl&#232;me d'affichage en double des notes dans SPIP, tout en gardant un ordre logique dans mon squelette. Une astuce simple qui change tout&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;R&#233;cemment, j'ai rencontr&#233; un petit casse-t&#234;te dans &lt;a href=&#034;https://spip.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SPIP&lt;/a&gt; en ajoutant un champ personnalis&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ABSTRACT&lt;/code&gt; &#224; l'objet &#233;ditorial &lt;i&gt;article&lt;/i&gt;. Tout fonctionnait &#224; merveille, sauf lorsque ce champ comportait un appel de note. &#192; ma grande surprise, la note apparaissait deux fois en bas de la page dans mon squelette &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;article.html&lt;/code&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;! &#128562;&lt;/p&gt;
&lt;p&gt;Apr&#232;s quelques recherches, j'ai compris que cette anomalie ne venait pas d'un double appel &#224; #NOTES, mais du m&#233;canisme interne de collecte des notes dans SPIP.&lt;/p&gt;
&lt;p&gt;Dans SPIP, la collecte des notes est cumulative pour toute la page en cours de calcul. Chaque fois qu'un champ est trait&#233; typographiquement (passage par le filtre interne &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;propre&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;), les notes qu'il contient sont ajout&#233;es &#224; une pile globale. Cette pile n'est pas r&#233;initialis&#233;e entre les champs.&lt;/p&gt;
&lt;p&gt;Si un m&#234;me contenu est trait&#233; deux fois au cours du calcul de la page, ses notes peuvent donc &#234;tre collect&#233;es deux fois.&lt;/p&gt;
&lt;p&gt;Dans mon cas, l'ordre des balises &#233;tait&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;#TEXTE&lt;br class='autobr' /&gt;
#ABSTRACT&lt;br class='autobr' /&gt;
#NOTES&lt;/p&gt;
&lt;/blockquote&gt;&lt;h2 class=&#034;spip&#034; id='Premiere-parade-ancienne-configuration'&gt;Premi&#232;re parade (ancienne configuration)&lt;/h2&gt;
&lt;p&gt;Il y a deux ans, dans une configuration plus simple de mon squelette, j'avais r&#233;solu le probl&#232;me en for&#231;ant un premier calcul silencieux des notes gr&#226;ce au filtre&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;[(#NOTES|couper&lt;i&gt;0&lt;/i&gt;)]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ce filtre d&#233;clenche le calcul des notes sans les afficher. Le squelette devenait&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;#TEXTE&lt;br class='autobr' /&gt;
[(#NOTES|couper&lt;i&gt;0&lt;/i&gt;)]&lt;br class='autobr' /&gt;
#ABSTRACT&lt;br class='autobr' /&gt;
#NOTES&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Et cela suffisait.&lt;/p&gt;
&lt;p&gt;Mais dans ma configuration actuelle de &lt;i&gt;article.html&lt;/i&gt;, cette parade ne fonctionnait plus correctement. Le probl&#232;me ne venait plus seulement de l'ordre des balises.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Seconde-parade-configuration-actuelle'&gt;Seconde parade (configuration actuelle)&lt;/h2&gt;
&lt;p&gt;En analysant plus finement le squelette, j'ai constat&#233; qu'un autre champ, affich&#233; en amont, pouvait lui aussi d&#233;clencher un traitement typographique. M&#234;me vide, #DESCRIPTIF &#233;tait susceptible d'&#234;tre trait&#233; et donc de participer &#224; la m&#233;canique de collecte.&lt;/p&gt;
&lt;p&gt;Or dans SPIP, ce n'est pas #NOTES qui analyse le texte&#160;: il affiche simplement ce qui a &#233;t&#233; collect&#233; (et cumul&#233;) lors des traitements pr&#233;c&#233;dents.&lt;/p&gt;
&lt;p&gt;La solution structurelle a donc consist&#233; &#224; emp&#234;cher #DESCRIPTIF de passer par le traitement typographique automatique&#160;:&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;
&lt;p&gt;(#DESCRIPTIF*|textebrut)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;L'&#233;toile emp&#234;che le traitement standard, et |textebrut affiche le contenu sans typographie. Ainsi, aucun recensement parasite des notes ne peut se produire &#224; ce stade.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Resultat'&gt;R&#233;sultat&lt;/h2&gt;
&lt;p&gt;Les notes ne sont plus collect&#233;es deux fois. L'ordre logique des balises est respect&#233;. Et le squelette reste propre.&lt;/p&gt;
&lt;p&gt;Deux configurations diff&#233;rentes, deux parades &#8230; et une meilleure compr&#233;hension des entrailles de SPIP au passage&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;&#192; preuve le fait que ces notes ne sont plus affich&#233;es en double&#160;!&#034; id=&#034;nh1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh1&#034; class=&#034;spip_note&#034; title=&#034;Notes 1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;&#192; preuve le fait que ces notes ne sont plus affich&#233;es en double&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Inventorier toutes les images d'un Moodle 5</title>
		<link>https://moofle.net/Inventorier-toutes-les-images-d-un-Moodle-5</link>
		<guid isPermaLink="true">https://moofle.net/Inventorier-toutes-les-images-d-un-Moodle-5</guid>
		<dc:date>2025-08-28T21:12:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Delhaye</dc:creator>


		<dc:subject>V&#233;cus professionnels</dc:subject>
		<dc:subject>Moodle</dc:subject>
		<dc:subject>Pexels.com &#8212; CC0</dc:subject>
		<dc:subject>Expertise</dc:subject>

		<description>&lt;p&gt;Un seul fichier PHP. Z&#233;ro plugin. L'inventaire complet des images de ton Moodle.&lt;/p&gt;

-
&lt;a href="https://moofle.net/-Coulisses-des-plateformes-" rel="directory"&gt;Coulisses des plateformes&lt;/a&gt;

/ 
&lt;a href="https://moofle.net/+-Vecus-professionnels-+" rel="tag"&gt;V&#233;cus professionnels&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Moodle-353-+" rel="tag"&gt;Moodle&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Pexels-com-Licence-CC0-+" rel="tag"&gt;Pexels.com &#8212; CC0&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Expertise-356-+" rel="tag"&gt;Expertise&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://moofle.net/local/cache-vignettes/L150xH100/pexels-hiteshchoudhary-879109-f4c00.webp?1756446468' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Il y a des journ&#233;es o&#249; l'on veut juste faire le m&#233;nage. Ranger ses images, traquer les doublons, retrouver ce qui s'est gliss&#233; dans les &#233;diteurs au fil des semestres. Et puis &#8211; tu connais la suite &#8211; on se dit&#160;: &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Allons, faisons un plugin propre, officiel, durable&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;.&lt;br class='autobr' /&gt;
R&#233;sultat&#160;: page d'upgrade en continu, erreur 500, site bloqu&#233;. Un ChatGPT qui patine, une apr&#232;s-midi qui file... Je l'ai v&#233;cue r&#233;cemment.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;C'est ce jour-l&#224; que j'ai d&#233;cid&#233; de changer de cap&#160;: pas de plugin, pas d'installation. Un seul fichier PHP autonome, pos&#233; &#224; c&#244;t&#233; de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.php&lt;/code&gt;. On ouvre la page, on voit toutes ses images, on exporte, on trie. Le soulagement tient parfois &#224; une id&#233;e simple.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Le-virage-du-plugin-au-script-autonome'&gt;Le virage&#160;: du plugin au script autonome&lt;/h2&gt;
&lt;p&gt;Au d&#233;part, l'intention &#233;tait belle. Mais en pratique&#160;:&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; L'upgrade des plugins passe par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/admin/index.php&lt;/code&gt;. Au moindre p&#233;pin (&lt;i&gt;capabilities, navigation, version, typo fran&#231;aise&#8230;&lt;/i&gt;), tout Moodle s'arr&#234;te. Je m'y suis heurt&#233;, frontalement.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; D&#233;bloquer en urgence (&lt;i&gt;purges, FTP, DB&lt;/i&gt;) n'est ni agr&#233;able ni proportionn&#233; quand on veut juste inventorier des images.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Maintenir un plugin au rythme des versions (ici, &lt;i&gt;Moodle 5&lt;/i&gt;) impose une discipline qui n'apporte rien d'essentiel &#224; un outil ponctuel d'admin.&lt;/p&gt;
&lt;p&gt;Bref, pour de l'audit/nettoyage, le plugin serait un paquebot. J'avais juste besoin d'un &lt;i&gt;stand up paddle&lt;/i&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='L-idee-en-30-secondes'&gt;L'id&#233;e en 30 secondes&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; D&#233;poser un script &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;inventaire-images.php&lt;/code&gt; &#224; c&#244;t&#233; de &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.php&lt;/code&gt; (dans le dossier du code Moodle).&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Ouvrir&#160;: &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;https://ton-moodle/inventaire-images.php&lt;/code&gt; (compte admin).&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Trois onglets clairs&#160;:&lt;/p&gt;
&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Images stock&#233;es&lt;br class='autobr' /&gt;
Toutes les images de &lt;i&gt;files&lt;/i&gt;, vignettes cliquables, filtres (&lt;i&gt;Composant, Zone, Nom/Source&lt;/i&gt;), ID de cours, CM ID (lien direct vers l'activit&#233;), module et instance.&lt;/li&gt;&lt;li&gt; Images int&#233;gr&#233;es &amp; externes&lt;br class='autobr' /&gt;
Ce qui a &#233;t&#233; coll&#233; dans l'&#233;diteur (&lt;i&gt;Data URI&lt;/i&gt;) et les URL externes. Vignettes pour voir, liens pour v&#233;rifier.&lt;/li&gt;&lt;li&gt; Doublons&lt;br class='autobr' /&gt;
Groupes d'images identiques (&lt;i&gt;contenthash&lt;/i&gt;), vignettes, exemples cliquables avec cours, activit&#233;, etc.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &#192; chaque onglet&#160;: Export CSV.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Un &lt;i&gt;pager &lt;/i&gt; compact en haut &#8211; Pr&#233;c&#233;dent | Page X/Y | Suivant &#8211; pour naviguer plus rapidement.&lt;/p&gt;
&lt;p&gt;Tout ce que j'aurais aim&#233; cr&#233;er avant de perdre 4 heures.&lt;/p&gt;
&lt;div class=&#034;rounded shadow-lg my-8 py-4&#034;&gt;&lt;div class='spip_document_3152 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;23&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://moofle.net/IMG/jpg/capture_d_ecran.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://moofle.net/local/cache-vignettes/L500xH707/capture_d_ecran-c937f.jpg?1756415855' width='500' height='707' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-3152 '&gt;&lt;strong&gt;Extrait du script PHP
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034; id='Pas-a-pas-vraiment-simple'&gt;Pas &#224; pas (vraiment simple)&lt;/h2&gt;&lt;ol class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; D&#233;pose le fichier dans le dossier Moodle (l&#224; o&#249; se trouve &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;config.php&lt;/code&gt;).&lt;/li&gt;&lt;li&gt; Ouvre l'URL (compte admin). Ajoute &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;?debug=1&lt;/code&gt; si tu veux les messages PHP.&lt;/li&gt;&lt;li&gt; Filtre, consulte, exporte.&lt;/li&gt;&lt;li&gt; D&#233;cide du nettoyage (le script n'efface rien tout seul).&lt;/li&gt;&lt;li&gt; Supprime le fichier quand tu as termin&#233;.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;En cinq gestes, tu as l'inventaire qui te manquait.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Ce-que-l-outil-montre-et-pourquoi-c-est-utile'&gt;Ce que l'outil montre (et pourquoi c'est utile)&lt;/h2&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Toutes les images stock&#233;es (avec aper&#231;u) et leurs m&#233;tadonn&#233;es cl&#233;s&#160;: cours, activit&#233; (&lt;i&gt;CM&lt;/i&gt;), module, instance, composant/zone, tailles, dates.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Images &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;coll&#233;es&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; (&lt;i&gt;copy&amp;paste&lt;/i&gt;) dans l'&#233;diteur (&lt;i&gt;Data URI&lt;/i&gt;) et images externes (avec vignette), pour rep&#233;rer ce qui &#233;chappe au stockage Moodle.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Doublons exacts&#160;: m&#234;me binaire, multiples occurrences, l'endroit id&#233;al pour gagner de l'espace.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Exports CSV propres (par onglet), pour historiser, d&#233;l&#233;guer, traiter hors-ligne.&lt;/p&gt;
&lt;div class=&#034;rounded shadow-lg my-8 py-4&#034;&gt;&lt;div class='spip_document_3153 spip_document spip_documents spip_document_image spip_documents_center spip_document_center spip_document_avec_legende' data-legende-len=&#034;17&#034; data-legende-lenx=&#034;&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;a href='https://moofle.net/IMG/jpg/capture_d_ecran-2.jpg' class=&#034;spip_doc_lien mediabox&#034; type=&#034;image/jpeg&#034;&gt; &lt;img src='https://moofle.net/local/cache-vignettes/L500xH172/capture_d_ecran-2-1612e.jpg?1756416680' width='500' height='172' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-3153 '&gt;&lt;strong&gt;Capture d'&#233;cran
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034; id='Garde-fous-les-bons-reflexes-que-j-applique'&gt;Garde-fous (les bons r&#233;flexes que j'applique)&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Acc&#232;s &amp; permissions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; La page exige &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;require_login()&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;moodle/site:config &#8594; admins uniquement&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Le proxy d'images (vignettes/originaux) est prot&#233;g&#233; par &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sesskey&lt;/code&gt; (anti-CSRF).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Confidentialit&#233; / RGPD&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Un admin peut voir toutes les images (y compris brouillons/priv&#233;es). C'est le p&#233;rim&#232;tre normal d'un admin, mais dis-le clairement &#224; l'&#233;quipe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Images externes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les vignettes externes sont charg&#233;es depuis le site tiers (avec &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;referrerpolicy=&#034;no-referrer&#034;&lt;/code&gt;). Ton IP est tout de m&#234;me visible c&#244;t&#233; distant. Si c'est sensible, n'affiche que des liens ou utilise un r&#233;seau isol&#233;/VPN.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sur grosses instances, garde un &lt;i&gt;perpage &lt;/i&gt; raisonnable (&lt;i&gt;100&#8211;200&lt;/i&gt;) et filtre (&lt;i&gt;composant/zone/nom&lt;/i&gt;).&lt;/p&gt;
&lt;div class=&#034;rounded shadow-lg my-8 py-4&#034;&gt;&lt;div class='spip_document_3151 spip_document spip_documents spip_document_file spip_document_avec_legende' data-legende-len=&#034;46&#034; data-legende-lenx=&#034;x&#034;
&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt;
&lt;a href='https://moofle.net/IMG/zip/inventaire-images.zip' class=&#034; spip_doc_lien&#034; title='Zip - 7 kio' type=&#034;application/zip&#034;&gt;&lt;img src='https://moofle.net/local/cache-vignettes/L64xH64/zip-f045b.svg?1772830340' width='64' height='64' alt='' /&gt;&lt;/a&gt;
&lt;figcaption class='spip_doc_legende'&gt; &lt;div class='spip_doc_titre crayon document-titre-3151 '&gt;&lt;strong&gt;Inventaire-images.php (script complet zipp&#233;)
&lt;/strong&gt;&lt;/div&gt; &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;OpSec&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; D&#233;pose le fichier sur un serveur de confiance.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Supprime-le apr&#232;s usage.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; &#201;vite de diffuser l'URL, renomme le fichier si besoin.
&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; Garde tes CSV&#160;: c'est ton journal d'audit.&lt;/p&gt;
&lt;p&gt;Il m'a fallu une erreur 500 pour d&#233;cider de simplifier. Au fond, pas besoin d'un plugin pour nettoyer Moodle&#160;: un fichier PHP, un regard, une d&#233;cision. Et tout respire de nouveau.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;h2 class=&#034;spip&#034;&gt;Formations &amp; ateliers&lt;/h2&gt;
&lt;p&gt;Si ce sujet te parle, je propose des ateliers express (90 min) et des formations modulaires. On part de tes besoins, on repart avec des scripts pr&#234;ts &#224; l'emploi, une m&#233;thode et un plan d'action.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Quand Moodle refuse d'envoyer vos messages (et ne vous le dit pas)</title>
		<link>https://moofle.net/Quand-Moodle-refuse-d-envoyer-vos-messages-et-ne-vous-le-dit-pas</link>
		<guid isPermaLink="true">https://moofle.net/Quand-Moodle-refuse-d-envoyer-vos-messages-et-ne-vous-le-dit-pas</guid>
		<dc:date>2025-05-04T00:08:20Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Delhaye</dc:creator>


		<dc:subject>Pexels.com &#8212; CC0</dc:subject>
		<dc:subject>V&#233;cus professionnels</dc:subject>
		<dc:subject>Expertise</dc:subject>
		<dc:subject>Moodle</dc:subject>

		<description>&lt;p&gt;&#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;Un jour, plus aucun message ne part des forums de Moodle. Pas d'erreur, pas d'alerte. Juste un silence. Voici le diagnostic complet d'un cas r&#233;el pour comprendre, corriger et ne plus jamais subir.&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;&lt;/p&gt;

-
&lt;a href="https://moofle.net/-Coulisses-des-plateformes-" rel="directory"&gt;Coulisses des plateformes&lt;/a&gt;

/ 
&lt;a href="https://moofle.net/+-Pexels-com-Licence-CC0-+" rel="tag"&gt;Pexels.com &#8212; CC0&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Vecus-professionnels-+" rel="tag"&gt;V&#233;cus professionnels&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Expertise-356-+" rel="tag"&gt;Expertise&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Moodle-353-+" rel="tag"&gt;Moodle&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://moofle.net/local/cache-vignettes/L150xH113/pexels-energepic-com-27411-313690-bbb27.webp?1746345678' class='spip_logo spip_logo_right' width='150' height='113' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Vous &#234;tes enseignant ou administrateur d'une plateforme Moodle, et vous pensez que vos messages de forum sont re&#231;us automatiquement&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;? Ce n'est pas toujours le cas. Ce retour d'exp&#233;rience v&#233;cu vous guide pas &#224; pas pour comprendre pourquoi Moodle peut cesser d'envoyer vos messages... en silence.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034; id='t1-Le-symptome'&gt;1. Le sympt&#244;me&lt;/h2&gt;
&lt;p&gt;Tout semble normal&#160;: vous postez un message dans un forum d'annonces. Il s'affiche, mais personne ne le re&#231;oit. Pas de mail, pas d'erreur, m&#234;me le CRON&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Un CRON est un outil de planification de t&#226;ches sur les syst&#232;mes Unix/Linux (&#8230;)&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; est &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;OK&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187;. Alors pourquoi ce silence absolu&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;?&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='t2-Fausse-piste-le-CRON-et-PHP'&gt;2. Fausse piste&#160;: le CRON et PHP&lt;/h2&gt;
&lt;p&gt;Moodle 5.0&lt;sup&gt;+&lt;/sup&gt; exige PHP 8.3 ou plus. Mais certaines configurations ont encore PHP 7.4 pour les t&#226;ches en ligne de commande (CLI). Le CRON se lance, mais est ignor&#233; par Moodle.&lt;/p&gt;
&lt;p&gt;Une fois corrig&#233;, le CRON fonctionne. Mais toujours aucun message...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='t3-Les-vraies-causes-cumulatives'&gt;3. Les vraies causes (cumulatives)&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; L'&#233;tudiant n'a jamais acc&#233;d&#233; au cours&#160;: Moodle ne lui envoie rien.&lt;/li&gt;&lt;li&gt; Il est marqu&#233; comme &lt;i&gt;Pas actuel&lt;/i&gt;&#160;: son inscription est suspendue ou expir&#233;e.&lt;/li&gt;&lt;li&gt; La m&#233;thode d'inscription &#233;tait d&#233;sactiv&#233;e (ic&#244;ne &#339;il ferm&#233;).&lt;/li&gt;&lt;li&gt; Le forum n'&#233;tait pas en &lt;i&gt;abonnement impos&#233;&lt;/i&gt;.&lt;/li&gt;&lt;li&gt; Le message a &#233;t&#233; modifi&#233; avant le d&#233;lai de 1 ou 30 min&#160;: pas envoy&#233;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Un seul de ces &#233;l&#233;ments suffit &#224; bloquer l'envoi.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='t4-Comment-savoir-si-un-message-est-parti'&gt;4. Comment savoir si un message est parti&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; Le forum indique&#160;: &lt;i&gt;Ce message a &#233;t&#233; envoy&#233; &#224; tous les participants inscrits...&lt;/i&gt;&lt;/li&gt;&lt;li&gt; Dans les journaux&#160;: &lt;i&gt;Notification envoy&#233;e&lt;/i&gt; (origine&#160;: CLI) avec le nom de l'&#233;tudiant concern&#233;.&lt;/li&gt;&lt;li&gt; Dans le fichier &lt;i&gt;phpmail.log&lt;/i&gt;&#160;: trace d'envoi avec sujet.&lt;/li&gt;&lt;/ul&gt;&lt;h2 class=&#034;spip&#034; id='t5-Tester-en-toute-securite'&gt;5. Tester en toute s&#233;curit&#233;&lt;/h2&gt;
&lt;p&gt;Cr&#233;ez un cours test, un utilisateur test&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-2&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Cr&#233;er un &#233;tudiant-bidon dans chacun de ses cours est une excellente pratique.&#034; id=&#034;nh2-2&#034;&gt;2&lt;/a&gt;]&lt;/span&gt; et un forum d'annonces en abonnement impos&#233;. Postez un message, attendez le d&#233;lai d'&#233;dition, lancez le CRON. Observez les journaux.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='t6-Conclusion'&gt;6. Conclusion&lt;/h2&gt;
&lt;p&gt;Moodle est pr&#233;cis, mais parfois silencieux. Aucun message d'erreur n'avertit que vos mails ne partent plus. Ce silence peut durer des semaines si personne ne vous le signale.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Un CRON est un outil de planification de t&#226;ches sur les syst&#232;mes Unix/Linux (et parfois sur d'autres environnements). Il permet d'ex&#233;cuter automatiquement des commandes ou scripts &#224; des intervalles r&#233;guliers (par exemple toutes les minutes, tous les jours &#224; minuit, chaque lundi, etc.).&lt;/p&gt;
&lt;/div&gt;&lt;div id=&#034;nb2-2&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-2&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-2&#034; rev=&#034;appendix&#034;&gt;2&lt;/a&gt;] &lt;/span&gt;Cr&#233;er un &lt;i&gt;&#233;tudiant-bidon&lt;/i&gt; dans chacun de ses cours est une excellente pratique.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Pr&#233;senter automatiquement une r&#233;f&#233;rence au format APA7 sur SPIP </title>
		<link>https://moofle.net/Presenter-automatiquement-une-reference-au-format-APA7-sur-SPIP</link>
		<guid isPermaLink="true">https://moofle.net/Presenter-automatiquement-une-reference-au-format-APA7-sur-SPIP</guid>
		<dc:date>2024-09-28T07:06:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Delhaye</dc:creator>


		<dc:subject>Pexels.com &#8212; CC0</dc:subject>
		<dc:subject>Expertise</dc:subject>
		<dc:subject>Litt&#233;racie acad&#233;mique</dc:subject>
		<dc:subject>Spip</dc:subject>

		<description>&lt;p&gt;Pour automatiser la g&#233;n&#233;ration des r&#233;f&#233;rences bibliographiques au format APA7 dans SPIP, il est possible d'int&#233;grer une boucle sp&#233;cifique, exploitant le plugin Champs Extras.&lt;/p&gt;

-
&lt;a href="https://moofle.net/-Coulisses-des-plateformes-" rel="directory"&gt;Coulisses des plateformes&lt;/a&gt;

/ 
&lt;a href="https://moofle.net/+-Pexels-com-Licence-CC0-+" rel="tag"&gt;Pexels.com &#8212; CC0&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Expertise-356-+" rel="tag"&gt;Expertise&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Litteracie-academique-+" rel="tag"&gt;Litt&#233;racie acad&#233;mique&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Spip-354-+" rel="tag"&gt;Spip&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://moofle.net/local/cache-vignettes/L150xH100/pexels-christina-morillo-1181269-26d9b.jpg?1739302239' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;&lt;i&gt;SPIP&lt;/i&gt; offre une flexibilit&#233; extraordinaire pour la gestion des contenus, y compris l'automatisation des r&#233;f&#233;rences bibliographiques. En utilisant le plugin &lt;i&gt;Champs Extras&lt;/i&gt;, les d&#233;veloppeurs peuvent ajouter des champs personnalis&#233;s aux articles du site pour structurer des informations comme les noms, pr&#233;noms et titres des auteurs, facilitant ainsi la cr&#233;ation de r&#233;f&#233;rences bibliographiques au &lt;a href=&#034;https://apastyle.apa.org/&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;format APA7&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Lorsqu'on utilise &lt;a href=&#034;https://spip.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SPIP&lt;/a&gt; pour publier des articles, il peut &#234;tre int&#233;ressant de g&#233;n&#233;rer automatiquement des r&#233;f&#233;rences bibliographiques, notamment au format APA7. Pour cela, la m&#233;thode la plus efficace consiste &#224; tirer parti de la flexibilit&#233; de SPIP et de ses plugins. Parmi ces plugins, &lt;i&gt;Champs Extras&lt;/i&gt; est particuli&#232;rement utile pour ajouter des champs sp&#233;cifiques &#224; l'objet &#233;ditorial &lt;i&gt;Auteurs&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Le plugin &lt;a href=&#034;https://plugins.spip.net/cextras.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Champs Extras&lt;/a&gt; permet de personnaliser les champs des objets &#233;ditoriaux (articles, auteurs, etc.). Ici, nous utiliserons ce plugin pour ajouter deux champs&#160;: &lt;i&gt;Prenom_seul&lt;/i&gt; et &lt;i&gt;Nom_seul.&lt;/i&gt; Ces champs permettront de structurer les informations des auteurs dans une boucle qui g&#233;n&#233;rera automatiquement la r&#233;f&#233;rence bibliographique au format APA7.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Installation-du-plugin-Champs-Extras'&gt;Installation du plugin Champs Extras&lt;/h2&gt;
&lt;p&gt;Avant de proc&#233;der, il est n&#233;cessaire d'installer et d'activer le plugin &lt;a href=&#034;https://plugins.spip.net/cextras.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Champs Extras&lt;/a&gt;. Ce plugin est bien document&#233; et vous pouvez le trouver sur le &lt;a href=&#034;https://plugins.spip.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;d&#233;p&#244;t officiel&lt;/a&gt; de SPIP ou en suivant les instructions d&#233;taill&#233;es disponibles sur divers forums de la communaut&#233; SPIP.&lt;/p&gt;
&lt;div class='spip_document_2636 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://moofle.net/local/cache-vignettes/L500xH439/chpextra-d22a3.png?1751351065' width='500' height='439' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Une fois le plugin install&#233;, vous devrez ajouter les champs &lt;i&gt;Prenom_seul&lt;/i&gt; et &lt;i&gt;Nom_seul&lt;/i&gt; &#224; l'objet &#233;ditorial &lt;i&gt;Auteurs&lt;/i&gt;. Ces champs seront utilis&#233;s pour r&#233;cup&#233;rer les pr&#233;noms et noms des auteurs de mani&#232;re individuelle, ce qui facilitera le formatage des r&#233;f&#233;rences selon les normes APA7.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='La-boucle-SPIP-pour-generer-la-reference'&gt;La boucle SPIP pour g&#233;n&#233;rer la r&#233;f&#233;rence&lt;/h2&gt;
&lt;p&gt;La boucle suivante, &#224; ins&#233;rer dans le fichier &lt;i&gt;article.html&lt;/i&gt; de votre squelette, permet de g&#233;n&#233;rer la r&#233;f&#233;rence bibliographique APA7 en fonction des auteurs, de la date de publication et du titre de l'article&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_ref_bbl_apa7(AUTEURS){id_article}{', '}&gt; [(#NOM_SEUL)] [, (#PRENOM_SEUL|couper{1}).] ([(#DATE|annee)]).[(#TITRE)]. [Site] &lt;i&gt; Gallika.net&lt;/i&gt; &lt;br&gt; [https://gallika.net/?article(#ID_ARTICLE)] &lt;/BOUCLE_ref_bbl_apa7&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Cette boucle identifie le ou les auteurs li&#233;s &#224; l'article en cours de consultation (&lt;i&gt;id_article&lt;/i&gt;). Elle affiche les informations dans un format respectant les normes APA7&#160;: &lt;i&gt;nom, initiale du pr&#233;nom, ann&#233;e de publication, titre de l'article, nom du site&lt;/i&gt; et &lt;i&gt;URL&lt;/i&gt;. L'utilisation du filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|couper{1}&lt;/code&gt; permet de n'afficher que la premi&#232;re lettre du pr&#233;nom de l'auteur, conform&#233;ment au format APA7.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Conseils-de-mise-en-oeuvre'&gt;Conseils de mise en &#339;uvre&lt;/h2&gt;
&lt;p&gt;Il est conseill&#233; de copier-coller cette boucle sur une seule ligne afin d'&#233;viter toute anomalie typographique. Par ailleurs, il est important de bien v&#233;rifier que chaque champ est correctement rempli pour chaque auteur dans l'interface d'administration de SPIP.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034; id='Exemple-de-resultat'&gt;Exemple de r&#233;sultat&lt;/h2&gt;
&lt;p&gt;Pour le pr&#233;sent article, la r&#233;f&#233;rence bibliographique g&#233;n&#233;r&#233;e serait la suivante&#160;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Delhaye, O. (2024). Comment pr&#233;senter la r&#233;f&#233;rence bibliographique compl&#232;te, au format APA7, d'un article publi&#233; sur un site tournant sous Spip. [Site] &lt;i&gt;Gallika.net&lt;/i&gt;. &lt;a href=&#034;https://gallika.net/?articleXX&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;https://gallika.net/?articleXX&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ce format est conforme aux r&#232;gles APA7 (adapt&#233;es au fran&#231;ais) et peut &#234;tre utilis&#233; pour g&#233;n&#233;rer automatiquement la r&#233;f&#233;rences de n'importe quel article sur SPIP.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;[Septembre 2023] Hors SPIP, on oublie aujourd'hui les logiciels de mise en forme des r&#233;f&#233;rences bibliographiques (Zotero &amp; Co) puisque l'IA (ChatGPT en tout cas) fait &#231;a en moins de deux &#224; leur place et &#224; la n&#244;tre.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Prot&#233;ger SPIP des spams&#160;: une astuce compl&#233;mentaire &#224; noSpam</title>
		<link>https://moofle.net/Proteger-SPIP-des-spams-une-astuce-complementaire-a-noSpam</link>
		<guid isPermaLink="true">https://moofle.net/Proteger-SPIP-des-spams-une-astuce-complementaire-a-noSpam</guid>
		<dc:date>2024-09-23T10:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Delhaye</dc:creator>


		<dc:subject>Pexels.com &#8212; CC0</dc:subject>
		<dc:subject>V&#233;cus professionnels</dc:subject>
		<dc:subject>Expertise</dc:subject>
		<dc:subject>Spip</dc:subject>

		<description>&lt;p&gt;Marre des spams qui &#233;chappent &#224; noSpam sur SPIP&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;? D&#233;couvrez une solution provisoire pour renforcer la s&#233;curit&#233; de votre site.&lt;/p&gt;

-
&lt;a href="https://moofle.net/-Coulisses-des-plateformes-" rel="directory"&gt;Coulisses des plateformes&lt;/a&gt;

/ 
&lt;a href="https://moofle.net/+-Pexels-com-Licence-CC0-+" rel="tag"&gt;Pexels.com &#8212; CC0&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Vecus-professionnels-+" rel="tag"&gt;V&#233;cus professionnels&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Expertise-356-+" rel="tag"&gt;Expertise&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Spip-354-+" rel="tag"&gt;Spip&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://moofle.net/local/cache-vignettes/L150xH100/pexels-plato-terentev-5889170-2-b2df5.jpg?1736374632' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Bien que le plugin noSpam et le bannissement d'adresses IP soient utiles, ils ne suffisent pas toujours &#224; prot&#233;ger efficacement les sites SPIP des attaques de spam. Olivier Delhaye partage une astuce simple pour contourner ces limites et renforcer la protection de vos formulaires d'inscription.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Sur mes sites en &lt;a href=&#034;http://spip.net&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;SPIP&lt;/a&gt;, j'ai constat&#233; que malgr&#233; l'installation du plugin &lt;a href=&#034;https://contrib.spip.net/NoSPAM&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;noSpam&lt;/a&gt; et l'utilisation du bannissement d'adresses IP, certains spams parviennent encore &#224; s'infiltrer. Apr&#232;s plusieurs tentatives pour renforcer la protection, j'ai d&#233;couvert une parade provisoire efficace qui permet de bloquer les spams plus intelligents, souvent g&#233;n&#233;r&#233;s par des bots.&lt;/p&gt;
&lt;p&gt;Voici comment proc&#233;der&#160;:&lt;/p&gt;
&lt;p&gt;1. T&#233;l&#233;chargez et installez le plugin &lt;a href=&#034;https://plugins.spip.net/inscriptionmotdepasse.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Mot de passe d&#232;s l'inscription&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;2. Modifiez le fichier suivant&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;spip/plugins/auto/inscription_motdepasse[&#8230;]/inscriptionmotdepasse_pipelines.php&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Rep&#233;rez cette ligne dans le fichier&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;function inscriptionmotdepasse_formulaire_verifier($flux){ if ($flux['args']['form'] == 'inscription'){&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;3. Puis, ins&#233;rez le code suivant juste en dessous&#160;:&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;// Parade au spam plus malin encore by oli $indice1 = &#034;*****&#034;; // par exemple, num&#233;ro de t&#233;l du spammeur envoy&#233; dans le champ nom_inscription $indice2 = &#034;*****&#034;; // par exemple, premiers sinogrammes du message saisi dans le champ nom_inscription $nom_spammeur = (_request('nom_inscription')); if (strpos($nom_spammeur, $indice1) !== false) { header(&#034;Location: https://marreDuSpam.net&#034;); exit(); } if (strpos($nom_spammeur, $indice2) !== false) { header(&#034;Location: https://marreDuSpam.net&#034;); exit(); } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Dans ce code, remplacez les &#171;&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;*****&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;&#187; par des s&#233;quences sp&#233;cifiques que vous retrouvez fr&#233;quemment dans les spams envoy&#233;s &#224; travers votre formulaire d'inscription. Les bots laissent souvent des indices r&#233;currents dans leurs messages, comme des num&#233;ros de t&#233;l&#233;phone ou des sinogrammes r&#233;p&#233;titifs. En rep&#233;rant ces motifs, vous pouvez rediriger automatiquement les spammeurs vers une page de rejet.&lt;/p&gt;
&lt;p&gt;Une &lt;a href=&#034;https://contrib.spip.net/NoSPAM#S-assurer-que-l-internaute-recharge-la-page-avant-de-lancer-l-action&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;discussion plus d&#233;taill&#233;e&lt;/a&gt; sur cette solution est disponible pour ceux qui souhaitent approfondir cette approche.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Moodle&#160;: mes messages persos ont disparu&#160;!</title>
		<link>https://moofle.net/Moodle-mes-messages-persos-ont-disparu</link>
		<guid isPermaLink="true">https://moofle.net/Moodle-mes-messages-persos-ont-disparu</guid>
		<dc:date>2023-10-23T07:16:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Olivier Delhaye</dc:creator>


		<dc:subject>Expertise</dc:subject>
		<dc:subject>Moodle</dc:subject>
		<dc:subject>Pexels.com &#8212; CC0</dc:subject>
		<dc:subject>V&#233;cus professionnels</dc:subject>

		<description>&lt;p&gt;Soudainement, les messages persos contenus dans le tiroir de droite n'apparaissent plus...&lt;/p&gt;

-
&lt;a href="https://moofle.net/-Coulisses-des-plateformes-" rel="directory"&gt;Coulisses des plateformes&lt;/a&gt;

/ 
&lt;a href="https://moofle.net/+-Expertise-356-+" rel="tag"&gt;Expertise&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Moodle-353-+" rel="tag"&gt;Moodle&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Pexels-com-Licence-CC0-+" rel="tag"&gt;Pexels.com &#8212; CC0&lt;/a&gt;, 
&lt;a href="https://moofle.net/+-Vecus-professionnels-+" rel="tag"&gt;V&#233;cus professionnels&lt;/a&gt;

		</description>


 <content:encoded>&lt;img src='https://moofle.net/local/cache-vignettes/L150xH100/moodle-bibliotheque-etudiant-ordinateur-cd9ed.jpg?1736374632' class='spip_logo spip_logo_right' width='150' height='100' alt=&#034;&#034; /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;Nous sommes sur Moodle 4.3 (Build&#160;: 20231009), th&#232;me Boost, MariaDB 10.6.15, Php 8.1.24. Soudainement, les messages persos contenus dans le tiroir de droite n'apparaissent plus...&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Sans savoir si &#231;a peut avoir un rapport, apr&#232;s une panne de qqs heures chez Nuxit (performance), je rencontre le probl&#232;me suivant&#160;: quand j'ouvre le tiroir des messages &#224; droite, en cliquant sur le phylact&#232;re en tant qu'administrateur, voici ce qui sort&#160;:&lt;/p&gt;
&lt;div class='spip_document_2833 spip_document spip_documents spip_document_image spip_documents_center spip_document_center'&gt;
&lt;figure class=&#034;spip_doc_inner&#034;&gt; &lt;img src='https://moofle.net/local/cache-vignettes/L373xH456/image-3a8b0.png?1736394293' width='373' height='456' alt='' /&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;Aucun contact, aucun message n'appara&#238;t. Par contre (et heureusement&lt;small class=&#034;fine d-inline&#034;&gt;&#160;&lt;/small&gt;!), les utilisateurs continuent de voir et d'envoyer des messages sans probl&#232;me. Le plus grave est qu'apr&#232;s avoir ouvert (puis referm&#233;) ce tiroir, il ne m'est plus possible de faire quoi que ce soit sur le site. Absolument tous les liens de la page rament. Quand j'essaie de voir mes messages par d'autres itin&#233;raires, je rencontre le m&#234;me probl&#232;me et le m&#234;me blocage. En attendant de trouver comment r&#233;soudre ce probl&#232;me, je dois fermer mon navigateur (j'ai essay&#233; sur d'autres navigateurs aussi), puis le rouvrir pour retrouver des pages op&#233;rationnelles. Les &lt;a href=&#034;https://moodle.org/mod/forum/discuss.php?d=451556&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;premi&#232;res recherches&lt;/a&gt; partent dans toutes les directions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voici finalement une solution&#160;:&lt;/strong&gt; le probl&#232;me peut &#234;tre li&#233; au passage impos&#233; par &lt;i&gt;Moodle 4.3&lt;/i&gt; &#224; la version &lt;i&gt;10.6.15&lt;/i&gt; de &lt;i&gt;MariaDB&lt;/i&gt;, encore un poil bogu&#233;e. Il suffit juste, alors, de lancer la requ&#234;te &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; ANALYZE TABLE 'mdl_messages'; &lt;/code&gt; dans son gestionnaire de bases de donn&#233;es pr&#233;f&#233;r&#233; (&lt;i&gt;PhpMyAdmin&lt;/i&gt; ou &lt;i&gt;Adminer&lt;/i&gt;) pour que tout rendre dans l'ordre.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
