From 58e33025ca0af3143110cf7193215e87deae2d7a Mon Sep 17 00:00:00 2001
From: "real3t@gmail.com" <>
Date: Sat, 10 Feb 2018 13:01:10 +0000
Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20importante=20du=20portai?=
 =?UTF-8?q?l=20Cognac=20:=20*=20L'usage=20des=20mots=20clefs=20EDITO=20et?=
 =?UTF-8?q?=20ZoomSur=20est=20*invers=C3=A9*=20pour=20plus=20de=20logique?=
 =?UTF-8?q?=20*=20Le=20processus=20de=20mise=20=C3=A0=20jour=20du=20plugin?=
 =?UTF-8?q?=20inverse=20automatiquement=20les=20mots=20d=C3=A9j=C3=A0=20af?=
 =?UTF-8?q?fect=C3=A9s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 base/soyezcreateurs.php                       | 89 +++++++++++++------
 .../sommaire/sommaire_modeportailcognac.html  | 24 ++---
 paquet.xml                                    |  4 +-
 soyezcreateurs_administrations.php            | 72 ++++++++++-----
 stylesportailcognac.css.html                  |  6 +-
 5 files changed, 125 insertions(+), 70 deletions(-)

diff --git a/base/soyezcreateurs.php b/base/soyezcreateurs.php
index 252d8840..f1a72cea 100644
--- a/base/soyezcreateurs.php
+++ b/base/soyezcreateurs.php
@@ -11,7 +11,7 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
 
 include_spip("inc/lang");
 include_spip('inc/meta');
-define('_LOG_INSTALL', "soyezcreateurs_install");
+define('_LOG_DEBUG', "soyezcreateurs_install");
 
 //fonction qui permet de créer les métas de config du site
 function soyezcreateurs_config_site() {
@@ -82,33 +82,33 @@ function soyezcreateurs_config_site() {
 		sauvegarder_savecfg('soyezcreateurs_couleurs','Violet & vert','a:54:{s:7:"body_bk";s:7:"#9ed897";s:6:"header";s:7:"#ffffff";s:9:"header_bk";s:7:"#663b62";s:11:"datemajsite";s:7:"#ffffff";s:14:"datemajsite_bk";s:7:"#164017";s:6:"footer";s:7:"#ffffff";s:9:"footer_bk";s:7:"#663b64";s:10:"navigation";s:7:"#c982c2";s:13:"navigation_bk";s:7:"#69c975";s:8:"menuhaut";s:7:"#ffffff";s:11:"menuhaut_bk";s:7:"#70a16e";s:7:"logo_bk";s:11:"transparent";s:5:"extra";s:7:"#8a0f81";s:8:"extra_bk";s:7:"#69c975";s:6:"menu_a";s:7:"#af12a2";s:9:"menu_a_bk";s:7:"#f6daf5";s:12:"menu_a_hover";s:7:"#a4569f";s:15:"menu_a_hover_bk";s:7:"#61b757";s:13:"menu_a_active";s:7:"#cd55c7";s:16:"menu_a_active_bk";s:7:"#ffffff";s:13:"menu_a_strong";s:7:"#670165";s:16:"menu_a_strong_bk";s:7:"#ffffff";s:12:"vignettes_bk";s:7:"#663b62";s:9:"container";s:7:"#cc6cd0";s:12:"container_bk";s:7:"#c5f2d1";s:9:"titraille";s:7:"#670161";s:12:"titraille_bk";s:7:"#c08cd4";s:4:"link";s:7:"#c055cd";s:7:"visited";s:7:"#de66d4";s:5:"hover";s:7:"#a16ea0";s:6:"active";s:7:"#40163f";s:15:"fontsnavigation";s:34:"Verdana, Arial, Geneva, sans-serif";s:12:"fontscontent";s:34:"Verdana, Arial, Geneva, sans-serif";s:14:"fontsizeheader";s:3:"1.2";s:14:"fontsizefooter";s:3:"1.2";s:18:"fontsizenavigation";s:3:"1.2";s:15:"fontsizecontenu";s:3:"1.2";s:18:"fontsizeartrecents";s:1:"1";s:13:"autovignettes";s:4:"auto";s:17:"fontsizevignettes";s:2:"16";s:12:"body_degrade";N;s:14:"footer_degrade";N;s:16:"menuhaut_degrade";N;s:17:"cadreinfo_degrade";N;s:17:"citations_degrade";N;s:17:"cartouche_degrade";N;s:17:"titraille_degrade";N;s:19:"titraille_ssniveaux";s:7:"#013067";s:22:"titraille_ssniveaux_bk";s:7:"#eca6e6";s:11:"cadrestexte";s:7:"#002652";s:14:"cadrestexte_bk";s:7:"#f9e4f4";s:13:"header_lettre";s:7:"#ffffff";s:16:"header_lettre_bk";s:7:"#663b62";s:16:"titraille_lettre";s:7:"#670161";}');
 	}
 
-	spip_log("1. (soyezcreateurs_config_site) metas du plugins ecrite", _LOG_INSTALL);
+	spip_log("1. (soyezcreateurs_config_site) metas du plugins ecrite", _LOG_DEBUG);
 	return true;
 }
 
 // fonction qui permet de trouver si un groupe de mots clés existe à partir du titre
 function find_groupe($titre) {
 	$titre = sql_quote($titre);
-	spip_log("1. (find_groupe) recherche des occurences dans la table spip_groupes_mots de l'id de : $titre", _LOG_INSTALL);
+	spip_log("1. (find_groupe) recherche des occurences dans la table spip_groupes_mots de l'id de : $titre", _LOG_DEBUG);
 	$count = sql_countsel("spip_groupes_mots", "titre=$titre");
-	spip_log("2. (find_groupe) resultat de la recherche : $count occurences pour $titre", _LOG_INSTALL);
+	spip_log("2. (find_groupe) resultat de la recherche : $count occurences pour $titre", _LOG_DEBUG);
 	return $count;
 }
 
 // fonction pour trouver l'id du groupe de mots clés à partir du titre du groupe
 function id_groupe($titre) {
 	$titre = sql_quote($titre);
-	spip_log("1. (id_groupe) selection dans la table spip_groupes_mots de l'id de : $titre", _LOG_INSTALL);
+	spip_log("1. (id_groupe) selection dans la table spip_groupes_mots de l'id de : $titre", _LOG_DEBUG);
 	$result = sql_fetsel("id_groupe", "spip_groupes_mots", "titre=$titre");
 	$resultat = $result['id_groupe'];
-	spip_log("2. (id_groupe) selection = $resultat pour $titre", _LOG_INSTALL);
+	spip_log("2. (id_groupe) selection = $resultat pour $titre", _LOG_DEBUG);
 	return $resultat;
 }
 
 //fonction qui permet de créer un groupe de mots clés
 function create_groupe($groupe, $descriptif='', $texte='', $unseul='non', $obligatoire='non', $tables_liees='', $minirezo='oui', $comite='oui', $forum='non') {
 	$id_groupe = find_groupe($groupe);
-	spip_log("1. (create_groupe) pret a creer groupe : titre = $groupe. retour de find_groupe = $id_groupe", _LOG_INSTALL);
+	spip_log("1. (create_groupe) pret a creer groupe : titre = $groupe. retour de find_groupe = $id_groupe", _LOG_DEBUG);
 	if ($id_groupe == 0) {
 		$id_insert = sql_insertq(
 			"spip_groupes_mots", array(
@@ -124,11 +124,11 @@ function create_groupe($groupe, $descriptif='', $texte='', $unseul='non', $oblig
 				"forum" => $forum
 			)
 		);
-		spip_log("2. (create_groupe) retour de find_groupe : $id_groupe, donc insertion avec id = $id_insert et titre = $groupe", _LOG_INSTALL);
+		spip_log("2. (create_groupe) retour de find_groupe : $id_groupe, donc insertion avec id = $id_insert et titre = $groupe", _LOG_DEBUG);
 	}
 	else if ($id_groupe > 0) {
 		$id_insert = remplacer_groupe($groupe, $descriptif, $texte, $unseul, $obligatoire, $tables_liees, $minirezo, $comite, $forum);
-		spip_log("2. (create_groupe) retour de find_groupe : $id_groupe... passage a remplacer_groupe", _LOG_INSTALL);
+		spip_log("2. (create_groupe) retour de find_groupe : $id_groupe... passage a remplacer_groupe", _LOG_DEBUG);
 	}
 	return $id_insert;
 }
@@ -186,7 +186,7 @@ function find_mot($titre, $id_groupe) {
 
 //fonction qui permet de trouver l'id du mot clé à partir du titre et de l'id du groupe
 function id_mot($titre, $id_groupe) {
-	spip_log("1. (id_mot) debut de recherche de l'id de $titre avec $id_groupe", _LOG_INSTALL);
+	spip_log("1. (id_mot) debut de recherche de l'id de $titre avec $id_groupe", _LOG_DEBUG);
 	$titre = sql_quote($titre);
 	$result = sql_fetsel(
 		"id_mot",
@@ -194,7 +194,7 @@ function id_mot($titre, $id_groupe) {
 		"titre=$titre AND id_groupe=$id_groupe"
 	);
 	$id_mot = $result['id_mot'];
-	spip_log("2. (id_mot) retour de la fonction id_mot = $id_mot", _LOG_INSTALL);
+	spip_log("2. (id_mot) retour de la fonction id_mot = $id_mot", _LOG_DEBUG);
 	return $id_mot;
 }
 
@@ -203,7 +203,7 @@ function create_mot($groupe, $mot, $descriptif='', $texte='') {
 	$id_groupe = id_groupe($groupe);
 	$find_mot = find_mot($mot, $id_groupe);
 	if ($find_mot == 0) {
-		spip_log("1. (create_mot) debut create_mot. mot inexistant donc creation : $id_groupe - $mot", _LOG_INSTALL);
+		spip_log("1. (create_mot) debut create_mot. mot inexistant donc creation : $id_groupe - $mot", _LOG_DEBUG);
 		$id_mot = sql_insertq(
 			"spip_mots", array(
 				"id_mot" => '',
@@ -214,15 +214,15 @@ function create_mot($groupe, $mot, $descriptif='', $texte='') {
 				"type" => $groupe
 			)
 		);
-		spip_log("2. (create_mot) mot cle $mot insere sous l'id $id_mot dans la table avec groupe = $id_groupe", _LOG_INSTALL);
+		spip_log("2. (create_mot) mot cle $mot insere sous l'id $id_mot dans la table avec groupe = $id_groupe", _LOG_DEBUG);
 	}
 	else if ($find_mot > 0) {
 		$id_mot = id_mot($mot, $id_groupe);
-		spip_log("1. (create_mot) mise a jour dans la table du mot cle : $mot", _LOG_INSTALL);
+		spip_log("1. (create_mot) mise a jour dans la table du mot cle : $mot", _LOG_DEBUG);
 		remplacer_mot($id_mot, $mot, $descriptif, $texte, $id_groupe, $groupe);
 	}
 	else {
-		spip_log("insertion impossible ! debug : groupe = $groupe --- id_groupe = $id_groupe", _LOG_INSTALL);
+		spip_log("insertion impossible ! debug : groupe = $groupe --- id_groupe = $id_groupe", _LOG_DEBUG);
 	}
 	return $id_mot;
 }
@@ -259,7 +259,7 @@ function id_rubrique($titre) {
 		"titre=$titre"
 	);
 	$resultat = $result['id_rubrique'];
-	spip_log("1. (id_rubrique) recherche de l'id_rubrique de $titre = $resultat", _LOG_INSTALL);
+	spip_log("1. (id_rubrique) recherche de l'id_rubrique de $titre = $resultat", _LOG_DEBUG);
 	return $resultat;
 }
 
@@ -282,7 +282,7 @@ function rename_rubrique($titre, $nouveau_titre) {
 				"titre" => $nouveau_titre
 			), "id_rubrique=$id_rubrique"
 		);
-		spip_log("rename_rubrique) renommage de $titre en $nouveau_titre", _LOG_INSTALL);
+		spip_log("rename_rubrique) renommage de $titre en $nouveau_titre", _LOG_DEBUG);
 	}
 	return true;
 }
@@ -305,7 +305,7 @@ function create_rubrique($titre, $id_parent='0', $descriptif='') {
 				"id_secteur" => $id_rubrique
 			), "id_rubrique=$id_rubrique"
 		);
-		spip_log("1. (create_rubrique) rubrique cree : id = $id_rubrique, titre = $titre", _LOG_INSTALL);
+		spip_log("1. (create_rubrique) rubrique cree : id = $id_rubrique, titre = $titre", _LOG_DEBUG);
 	}
 	else if ($id_rubrique > 0) {
 		$id_rubrique = id_rubrique($titre);
@@ -344,7 +344,7 @@ function id_article($titre, $id_rubrique) {
 		"titre=$titre AND id_rubrique=$id_rubrique"
 	);
 	$resultat = $result['id_article'];
-	spip_log("1. (id_article) recherche de l'id_article de '$titre' = $resultat", _LOG_INSTALL);
+	spip_log("1. (id_article) recherche de l'id_article de '$titre' = $resultat", _LOG_DEBUG);
 	return $resultat;
 }
 
@@ -353,7 +353,7 @@ function create_article($texte, $rubrique, $lang='fr') {
 	$id_rubrique = id_rubrique($rubrique);
 	$count_articles = find_article($texte['titre'], $id_rubrique);
 	if ($count_articles == 0) {
-		spip_log("1. (create_article) insertion d'un article : ".$texte['titre'], _LOG_INSTALL);
+		spip_log("1. (create_article) insertion d'un article : ".$texte['titre'], _LOG_DEBUG);
 		$statut = 'publie';
 		$date = date("Y-m-d H:i:s");
 		$id_article = sql_insertq(
@@ -397,11 +397,11 @@ function create_article($texte, $rubrique, $lang='fr') {
 		calculer_rubriques();
 		propager_les_secteurs();
 		effacer_meta("date_calcul_rubriques");
-		spip_log("2. (create_article) article insere : $id_article", _LOG_INSTALL);
+		spip_log("2. (create_article) article insere : $id_article", _LOG_DEBUG);
 	}
 	else if ($count_articles > 0) {
 		$id_article = id_article($texte['titre'], $id_rubrique);
-		spip_log("2. (create_article) maj de l'article : ".$texte['titre'], _LOG_INSTALL);
+		spip_log("2. (create_article) maj de l'article : ".$texte['titre'], _LOG_DEBUG);
 		remplacer_article($id_article, $id_rubrique, $texte);
 	}
 	return $id_article;
@@ -453,7 +453,7 @@ function find_article_mot($id_mot, $id_article) {
 
 //fonction qui permet de créer une relation entre un article et un mot clé
 function create_article_mot($article, $rubrique, $mot, $groupe) {
-	spip_log("1. (create_article_mot) demande de creation de liaison : $article avec $mot", _LOG_INSTALL);
+	spip_log("1. (create_article_mot) demande de creation de liaison : $article avec $mot", _LOG_DEBUG);
 	$id_rubrique = id_rubrique($rubrique);
 	$id_groupe = id_groupe($groupe);
 	$id_mot = id_mot($mot, $id_groupe);
@@ -468,13 +468,44 @@ function create_article_mot($article, $rubrique, $mot, $groupe) {
 				"objet" => 'article'
 			)
 		);
-		spip_log("2. (create_article_mot) liaison mise en place (article = $id_article - mot = $id_mot)", _LOG_INSTALL);
+		spip_log("2. (create_article_mot) liaison mise en place (article = $id_article - mot = $id_mot)", _LOG_DEBUG);
 	}
 	else {
-		spip_log("2. (create_article_mot) liaison deja existante ! (article = $id_article - mot = $id_mot)", _LOG_INSTALL);
+		spip_log("2. (create_article_mot) liaison deja existante ! (article = $id_article - mot = $id_mot)", _LOG_DEBUG);
 	}
 }
 
+function find_lien_mot($id_mot, $id_objet, $type='article') {
+	$count = sql_countsel(
+		"spip_mots_liens",
+		"id_mot=$id_mot AND id_objet=$id_objet AND objet='$type'"
+	);
+	return $count;
+}
+
+function create_lien_mot($id_mot, $id_objet, $type='article') {
+	$count = find_lien_mot($id_mot, $id_objet, $type);
+	if ($count == 0) {
+		sql_insertq(
+			"spip_mots_liens",
+			array(
+				"id_mot"=> $id_mot,
+				"id_objet" => $id_objet,
+				"objet" => $type
+			)
+		);
+		spip_log("2. (create_lien_mot) liaison mise en place (article = $id_objet - mot = $id_mot - $type)", _LOG_DEBUG);
+	}
+	else {
+		spip_log("2. (create_lien_mot) liaison deja existante ! (article = $id_objet - mot = $id_mot - $type)", _LOG_DEBUG);
+	}	
+}
+
+function delete_lien_mot($id_mot, $id_objet, $type='article') {
+	sql_delete("spip_mots_liens", "id_mot=$id_mot AND id_objet=$id_objet AND objet = '$type'");
+	spip_log("2. (delete_lien_mot) liaison supprimée (article = $id_objet - mot = $id_mot - $type)", _LOG_DEBUG);
+}
+
 //fonction qui permet de trouver des liaisons entre rubrique et mot clé
 function find_rubrique_mot($id_mot, $id_rubrique) {
 	$count = sql_countsel(
@@ -489,7 +520,7 @@ function create_rubrique_mot($rubrique, $mot, $groupe) {
 	$id_rubrique = id_rubrique($rubrique);
 	$id_groupe = id_groupe($groupe);
 	$id_mot = id_mot($mot, $id_groupe);
-	spip_log("1. (create_rubrique_mot) creation : rubrique = $id_rubrique ($rubrique) - mot = $id_mot ($mot) - groupe = $id_groupe ($groupe)", _LOG_INSTALL);
+	spip_log("1. (create_rubrique_mot) creation : rubrique = $id_rubrique ($rubrique) - mot = $id_mot ($mot) - groupe = $id_groupe ($groupe)", _LOG_DEBUG);
 	$count = find_rubrique_mot($id_mot, $id_rubrique);
 	if ($count == 0) {
 		sql_insertq(
@@ -560,7 +591,7 @@ function find_auteur($nom) {
 		"nom='$nom'"
 	);
 	$resultat = $result['id_auteur'];
-	spip_log("1. (id_auteur) recherche de l'id_auteur de $nom = $resultat", _LOG_INSTALL);
+	spip_log("1. (id_auteur) recherche de l'id_auteur de $nom = $resultat", _LOG_DEBUG);
 	return $resultat;
 }
 
@@ -572,7 +603,7 @@ function find_auteur_email($id_auteur) {
 		"id_auteur=$id_auteur"
 	);
 	$resultat = $result['email'];
-	spip_log("1. (email) recherche de l'email de $id_auteur = $resultat", _LOG_INSTALL);
+	spip_log("1. (email) recherche de l'email de $id_auteur = $resultat", _LOG_DEBUG);
 	return $resultat;
 }
 
@@ -596,7 +627,7 @@ function create_auteur($nom, $email='', $bio='') {
 			)
 		);
 	}
-	spip_log("1. (create_auteur) auteur cree : id = $id_auteur, nom = $nom", _LOG_INSTALL);
+	spip_log("1. (create_auteur) auteur cree : id = $id_auteur, nom = $nom", _LOG_DEBUG);
 	return $id_auteur;
 }
 
diff --git a/noisettes/sommaire/sommaire_modeportailcognac.html b/noisettes/sommaire/sommaire_modeportailcognac.html
index d5495a04..974661c3 100644
--- a/noisettes/sommaire/sommaire_modeportailcognac.html
+++ b/noisettes/sommaire/sommaire_modeportailcognac.html
@@ -9,7 +9,7 @@
 <main id="main" role="main"><div id="cognac_content">
 <a id="letexte"></a>
 
-<BOUCLE_Edito(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{doublons}>
+<BOUCLE_ZoomSur(ARTICLES) {titre_mot=ZoomSur}{!par date}{0,1}{lang}{doublons}>
 #SET{article_url,#ARTICLE_URL}
 <!-- SLIDER -->
 <div id="diaporama" class="zone-slider">
@@ -21,11 +21,11 @@
 		<div class="slider show-for-medium" role="region" aria-label="Diaporama d'accueil">
 			<div class="slider-diapo-imgfull">
 				[(#MEDIA|=={image}|oui)
-				<a href="#GET{article_url}"[ title="(#_EDITO:DESCRIPTIF|attribut_html)"]>
+				<a href="#GET{article_url}"[ title="(#_ZoomSur:DESCRIPTIF|attribut_html)"]>
 					<img src="[(#FICHIER|copie_locale|image_focus{1920,#CONFIG{soyezcreateurs/hauteur_slider,580}}|extraire_attribut{src})]" alt="" />
 				</a>]
 				[(#MEDIA|=={video}|oui)
-				<a href="#GET{article_url}"[ title="(#_EDITO:DESCRIPTIF|attribut_html)"]>
+				<a href="#GET{article_url}"[ title="(#_ZoomSur:DESCRIPTIF|attribut_html)"]>
 					[(#MIME_TYPE|=={text/oembed}|non)
 					<div style="width: 1920px; height: #CONFIG{soyezcreateurs/hauteur_slider,580}px;">
 						<video autoplay loop muted preload="true" class="autoplay" style="min-width: 100%; height: auto; top: -50%; position: absolute;">
@@ -44,7 +44,7 @@
 		</BOUCLE_Slider>
 		<div class="slider show-for-medium" role="region" aria-label="Diaporama d'accueil">
 			<div class="slider-diapo-imgfull">
-				<a href="#GET{article_url}"[ title="(#_EDITO:DESCRIPTIF|attribut_html)"]>
+				<a href="#GET{article_url}"[ title="(#_ZoomSur:DESCRIPTIF|attribut_html)"]>
 					<img src="[(#CHEMIN{images/placeholder.jpg}|image_focus{1920,#CONFIG{soyezcreateurs/hauteur_slider,580}}|extraire_attribut{src})]" alt="" />
 				</a>
 			</div>
@@ -63,17 +63,17 @@
 	</div>
 </div>
 <!-- fin SLIDER -->
-</BOUCLE_Edito>
+</BOUCLE_ZoomSur>
 
-<BOUCLE_ZoomSur(ARTICLES) {titre_mot=ZoomSur}{!par date}{0,(#CONFIG{soyezcreateurs/nombres_zoomsur,1})}{lang}{doublons}>
+<BOUCLE_EDITO(ARTICLES) {titre_mot=EDITO}{!par date}{0,1}{lang}{doublons}>
 
-<!-- ZoomSur -->
-<div id="zoomsur" class="zone-zoomsur">
+<!-- EDITO -->
+<div id="edito" class="zone-edito">
 	<header class="titre-sommaire">
 		<h1 class="#EDIT{titre}">[(#TITRE)]</h1>
 	</header>
-	[<img class="zoomsurlogo" src="(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|extraire_attribut{src}|embarque_fichier)" width="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|largeur)]" height="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|hauteur)]" alt="" />]
-	<div id="zoomsurtexte">
+	[<img class="editologo" src="(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|extraire_attribut{src}|embarque_fichier)" width="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|largeur)]" height="[(#LOGO_ARTICLE|image_focus{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},200}|hauteur)]" alt="" />]
+	<div id="editotexte">
 		<div class="infos">[(#INCLURE{fond=noisettes/liste_auteurs,id_article,virgule=1,nodiv=1})][(#INCLURE{fond=noisettes/aff_datepublication,id_article,lang})]</div>
 		<div>
 			[<div class="[(#CHAPO*|?{#EDIT{chapo},#EDIT{descriptif}}) ]chapo">(#CHAPO|image_reduire{#CONFIG{soyezcreateurs_layout/largeurconteneur,960},0}|sinon{#DESCRIPTIF})</div>]
@@ -85,8 +85,8 @@
 		</div>
 	</div>
 </div>
-<!-- fin ZoomSur -->
-</BOUCLE_ZoomSur>
+<!-- fin EDITO -->
+</BOUCLE_EDITO>
 
 [<!-- ACTUS -->
 <div id="actualites" class="zone-actus">
diff --git a/paquet.xml b/paquet.xml
index 83c26387..d661d661 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,11 +1,11 @@
 <paquet
 	prefix="soyezcreateurs"
 	categorie="squelette"
-	version="4.2.22"
+	version="4.2.23"
 	etat="stable"
 	compatibilite="[3.0.25;3.2.*]"
 	logo="img_pack/soyezcreateurs_48.png"
-	schema="3.1.49"
+	schema="3.1.50"
 	documentation="https://contrib.spip.net/SoyezCreateurs-1237?tri_articles=titre"
 >
 
diff --git a/soyezcreateurs_administrations.php b/soyezcreateurs_administrations.php
index bf3b0b63..905178e9 100644
--- a/soyezcreateurs_administrations.php
+++ b/soyezcreateurs_administrations.php
@@ -21,7 +21,7 @@ function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
 	$current_version = 0.0;
 	if ((!isset($GLOBALS['meta'][$nom_meta_base_version])) || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
 		if (version_compare($current_version,'3.0.20','<')) {
-			spip_log("SoyezCreateurs maj 3.0.20 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.20 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			soyezcreateurs_config_site();
 			soyezcreateurs_config_motsclefs();
 			// Installation des index FullText si le plugin est présent
@@ -47,12 +47,12 @@ function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
 					create_evenement("900. Agenda", "Démonstration Agenda", "Démonstration Agenda", '2017-12-13', '2017-12-13', "", '', 'non');
 				}
 			}
-			spip_log("SoyezCreateurs maj 3.0.20 Faite", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.20 Faite", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.20','non');
 		}
 
 		if (version_compare($current_version,'3.0.24','<')) {
-			spip_log("SoyezCreateurs maj 3.0.24 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.24 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			// Initialisation Sigles du dictionnaire
 			if (defined('_DIR_PLUGIN_DICTIONNAIRES')) {
 				include_spip('action/editer_dictionnaire');
@@ -112,40 +112,40 @@ function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
 				dictionnaires_lister_definitions(true);
 				
 			}
-			spip_log("SoyezCreateurs maj 3.0.24 Faite", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.24 Faite", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.24','non');
 		}
 		if (version_compare($current_version,'3.0.28','<')) {
-			spip_log("SoyezCreateurs maj 3.0.28 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.28 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			// Au cas où : remttre au carré les id_secteur des articles et rubriques.
 			include_spip('inc/rubriques');
 			calculer_rubriques();
 			propager_les_secteurs();
 			effacer_meta("date_calcul_rubriques");
 			
-			spip_log("SoyezCreateurs maj 3.0.28 Faite", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.28 Faite", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.28','non');
 		}
 		
 		if (version_compare($current_version,'3.0.30','<')) {
-			spip_log("SoyezCreateurs maj 3.0.30 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.30 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$id_mot = create_mot("_ModePortail", "ZoomSur2_Variante1", "Affecter ce mot clef à l’objet que vous voulez placer dans le cadre « Zoom sur secondaire » (facultatif).\n\nLe site prendra le dernier article ayant ce mot clef.", "Variante sur 2 colonnes : \n-* Titre de la rubrique contenant l’article\n-* 1re colonne :\n-** Document joint (de type autre média, PowerPoint par exemple) affiché avec son logo\n-** Chapo de l'article en dessous (permet de faire un lien)\n-* 2e colonne :\n-** Logo de l’article\n-** faisant un lien vers l’article (et si c’est une redirection, ça peut conduire à une autre page");
-			spip_log("SoyezCreateurs maj 3.0.30 Faite", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.30 Faite", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.30','non');
 		}
 		if (version_compare($current_version,'3.0.31','<')) {
-			spip_log("SoyezCreateurs maj 3.0.31 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.31 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$id_mot = create_mot("_ModePortail", "ZoomSur2_Variante2", "Affecter ce mot clef à l’objet que vous voulez placer dans le cadre « Zoom sur secondaire » (facultatif).\n\nLe site prendra le dernier article ayant ce mot clef.", "Variante sur 2 colonnes : \n-* Titre de la rubrique contenant l’article\n-* 1re colonne :\n-** Fonctionne comme le Cycloshow avec les articles de la sous rubriques de la rubrique de l'article\n-* 2e colonne :\n-** Logo de l’article\n-** faisant un lien vers l’article (et si c’est une redirection, ça peut conduire à une autre page");
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.31','non');
 		}
 		if (version_compare($current_version,'3.0.33','<')) {
-			spip_log("SoyezCreateurs maj 3.0.33 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.33 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$id_mot = create_mot("_Specialisation_Rubrique", "ClassementAlpha", "Mettre ce mot clef à la rubrique pour classer son contenu alphabétiquement.", "");
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.33','non');
 		}
 		
 		if (version_compare($current_version,'3.0.34','<')) {
-			spip_log("SoyezCreateurs maj 3.0.34 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.0.34 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$sites['nom_site'] = "90. Flux RSS du site";
 			$sites['url_site'] = "?page=backend";
 			$sites['descriptif'] = "public:syndiquer_site";
@@ -159,17 +159,17 @@ function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
 			ecrire_meta($nom_meta_base_version,$current_version='3.0.34','non');
 		}
 		if (version_compare($current_version,'3.1.35','<')) {
-			spip_log("SoyezCreateurs maj 3.1.35 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.35 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			supprimer_mot_groupe("_Specialisation_Rubrique", "GisSecteur");
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.35','non');
 		}
 		if (version_compare($current_version,'3.1.36','<')) {
-			spip_log("SoyezCreateurs maj 3.1.36 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.36 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_config('boutonstexte/skin','soyezcreateurs');
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.36','non');
 		}
 		if (version_compare($current_version,'3.1.39','<')) {
-			spip_log("SoyezCreateurs maj 3.1.39 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.39 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta('orthotypo',"a:7:{s:10:\"guillemets\";s:1:\"1\";s:9:\"exposants\";s:1:\"1\";s:4:\"mois\";s:1:\"1\";s:4:\"caps\";s:1:\"1\";s:5:\"fines\";s:1:\"1\";s:11:\"corrections\";s:1:\"1\";s:18:\"corrections_regles\";s:319:\"oeuf = Å“uf\ncceuil = ccueil\n(a priori) = {a priori}\n(([hH])uits) = $1uit\n/([cC]h?)oeur/ = $1Å“ur\n/oeuvre/ = Å“uvre\n(O[Ee]uvre([rs]?)) = Å’uvre$1\n/\b([cC]|[mM].c|[rR]ec)on+ais+a((?:n(?:ce|te?)|ble)s?)\b/ = $1onnaissa$2\nCO2 = <abbr title=\"CO2, Dioxyde de carbone, O=C=O\">CO<sub>2</sub></abbr>\noeil = Å“il\n(O[Ee]il) = Å’il\";}", 'non');
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.39','non');
 		}
@@ -196,40 +196,64 @@ function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.42','non');
 		}
 		if (version_compare($current_version,'3.1.43','<')) {
-			spip_log("SoyezCreateurs maj 3.1.43 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.43 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			create_groupe("_FondPage", "Images en fond de page :\n-* Créer autant de mots clefs que de fonds de page désirés\n-* Mettre un logo à ces mots clefs\n-* Possibilité de fixer un fond de page pour :\n-** Une rubrique (et la branche en dessous)\n-** Un type de page particulier (Sommaire, Plan)\n\nSe reporter à la documentation sur [Personnalisation graphique du squelette SoyezCreateurs->https://contrib.spip.net/Personnalisation-graphique-du-squelette-SoyezCreateurs].\n\nPour mettre une trame de fond, utiliser le logo de survol.\n\nUn site pour [créer des trames de fond->http://www.patternify.com/].", "", 'oui', 'non', 'rubriques', 'oui', 'non', 'non');
-			spip_log("SoyezCreateurs maj 3.1.43 Faite", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.43 Faite", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.43','non');
 		}
 		if (version_compare($current_version,'3.1.44','<')) {
-			spip_log("SoyezCreateurs maj 3.1.44 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.44 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$id_mot = create_mot("_ModePortail", "Goodies2", "Affecter ce mot clef aux objets SPIP devant apparaitre dans la zone des Goodies (en mode international, sous la Une).", "");
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.44','non');
 		}
 		if (version_compare($current_version,'3.1.45','<')) {
-			spip_log("SoyezCreateurs maj 3.1.45 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.45 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			create_groupe("_HeaderBanner", "Pour définir plusieurs bannières pour le site.", "Il faut créer un mot clef par bannière (le titre n'a pas d'importance).\n\nC'est le logo du mot clef qui est utilisé comme bannière du site.\n\n{{Attention}} : si vous avez déjà défini une bannière avec le logo de survol du site, alors, cette dernière n'est plus utilisée ; seuls les logos des mots clefs de ce groupe seront pris en compte.\n\nLes mots clefs affectés à une rubrique restreignent le choix des bannières pour la branche entière à celles affectées à la rubrique. Le fonctionnement pour le reste du site est inchangé ({{toutes}} les bannières sont disponibles pour le reste du site).\n\nSe reporter à la documentation sur [Personnalisation graphique du squelette SoyezCreateurs->https://contrib.spip.net/Personnalisation-graphique-du-squelette-SoyezCreateurs].\n\nPour mettre une trame de fond, utiliser le logo de survol.\n\nUn site pour [créer des trames de fond->http://www.patternify.com/].", 'non', 'non', 'rubriques', 'oui', 'non', 'non');			
 			create_groupe("_FooterBanner", "Pour définir plusieurs fonds de pied de page pour le site.", "Il faut créer un mot clef par fond (le titre n'a pas d'importance).\n\nC'est le logo du mot clef qui est utilisé comme fond de pied du site.\n\nLes mots clefs affectés à une rubrique restreignent le choix des fonds pour la branche entière à celles affectées à la rubrique. Le fonctionnement pour le reste du site est inchangé ({{tous}} les fonds sont disponibles pour le reste du site).\n\nSe reporter à la documentation sur [Personnalisation graphique du squelette SoyezCreateurs->https://contrib.spip.net/Personnalisation-graphique-du-squelette-SoyezCreateurs].\n\nPour mettre une trame de fond, utiliser le logo de survol.\n\nUn site pour [créer des trames de fond->http://www.patternify.com/].", 'non', 'non', 'rubriques', 'oui', 'non', 'non');			
-			spip_log("SoyezCreateurs maj 3.1.45 Faite", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.45 Faite", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.45','non');
 		}
 		if (version_compare($current_version,'3.1.46','<')) {
-			spip_log("SoyezCreateurs maj 3.1.46 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.46 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_meta('version_html_max', 'html4', 'non');
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.46','non');
 		}
 		if (version_compare($current_version,'3.1.47','<')) {
-			spip_log("SoyezCreateurs maj 3.1.47 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.47 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$id_mot = create_mot("_Specialisation_Rubrique", "PasDansMenuHaut", "Pour interdire que la rubrique (et ses sous-rubriques) soi(en)t dans le menu du haut", "");
 			ecrire_meta($nom_meta_base_version,$current_version='3.1.47','non');
 		}
 		if (version_compare($current_version,'3.1.49','<')) {
-			spip_log("SoyezCreateurs maj 3.1.49 Début", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 3.1.49 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			ecrire_config('boutonstexte/selector','#contenu');
+			ecrire_meta($nom_meta_base_version,$current_version='3.1.49','non');
+		}
+		if (version_compare($current_version,'3.1.50','<')) {
+			spip_log("SoyezCreateurs maj 3.1.50 Début", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
+			if (lire_config('soyezcreateurs/mode_affichage') == 'portailcognac') {
+				spip_log("SoyezCreateurs maj 3.1.50 Portailcognac", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
+				$id_zoomsur = id_mot('ZoomSur',id_groupe('_ModePortail'));
+				$id_edito = id_mot('EDITO',id_groupe('_Specialisation'));
+				// Trouver les articles attachés à EDITO et ZoomSur
+				$Articles_ZoomSur = sql_allfetsel('id_objet', "spip_mots_liens", "id_mot=$id_zoomsur AND objet='article'");
+				$Articles_EDITO = sql_allfetsel('id_objet', "spip_mots_liens", "id_mot=$id_edito AND objet='article'");
+				if ($Articles_ZoomSur) {
+					foreach ($Articles_ZoomSur as $Article_ZoomSur) {
+						create_lien_mot($id_edito, $Article_ZoomSur['id_objet'], 'article');
+						delete_lien_mot($id_zoomsur, $Article_ZoomSur['id_objet'], 'article');
+					}
+				}
+				if ($Articles_EDITO) {
+					foreach ($Articles_EDITO as $Article_EDITO) {
+						create_lien_mot($id_zoomsur, $Article_EDITO['id_objet'], 'article');
+						delete_lien_mot($id_edito, $Article_EDITO['id_objet'], 'article');
+					}
+				}
+			}
 			// On invalide les caches
 			include_spip('inc/invalideur');
 			suivre_invalideur("soyezcreateurs");
-			ecrire_meta($nom_meta_base_version,$current_version='3.1.49','non');
+			ecrire_meta($nom_meta_base_version,$current_version='3.1.50','non');
 		}
 		
 		
@@ -242,7 +266,7 @@ function soyezcreateurs_upgrade($nom_meta_base_version,$version_cible){
 		// en l'occurrence, remplacer dans le squelette {titre_mot=Agenda} par {agenda=1}
 		if (version_compare($current_version,'2.1.14','<')) {
 			include_spip('base/soyezcreateurs');
-			spip_log("SoyezCreateurs maj 2.1.14", "soyezcreateurs_install");
+			spip_log("SoyezCreateurs maj 2.1.14", 'soyezcreateurs_install'._LOG_INFO_IMPORTANTE);
 			$id_groupe = id_groupe("_Specialisation_Rubrique");
 			$id_mot = id_mot("Agenda", $id_groupe);
 			if ($id_mot>0) {
diff --git a/stylesportailcognac.css.html b/stylesportailcognac.css.html
index 10825af5..5de81fc0 100644
--- a/stylesportailcognac.css.html
+++ b/stylesportailcognac.css.html
@@ -665,7 +665,7 @@ max-width: [(#GET{LargeurContaineur}|moins{44})]px;
 #diaporama {
 	margin-bottom: 9em;
 }
-#zoomsurtexte {
+#editotexte {
   max-width: [(#GET{LargeurContaineur}|moins{44})]px;
   margin: 0 auto;
   padding: 1em 2em;
@@ -673,10 +673,10 @@ max-width: [(#GET{LargeurContaineur}|moins{44})]px;
   background-color: #GET{c_container_bk};
   [(#CONFIG{soyezcreateurs_couleurs/transparencecontent,1}|!={1}|oui)background-color: rgba([(#GET{c_container_bk}|sc_rgb)], #CONFIG{soyezcreateurs_couleurs/transparencecontent,1});]
 }
-#content #zoomsur .titre-sommaire h1 {
+#content #edito .titre-sommaire h1 {
 	margin-bottom: 0;
 }
-img.zoomsurlogo {
+img.editologo {
   max-width: [(#GET{LargeurContaineur})]px;
   margin: 0 auto;
   display: block;
-- 
GitLab