From 9cf774b9eb06f5dd0c52deaa18c04101aa98598c Mon Sep 17 00:00:00 2001
From: "cedric@yterium.com" <>
Date: Mon, 29 Jul 2019 13:10:07 +0000
Subject: [PATCH] Disparition de la notion de portfolio et de toute reference
 au mode image/document des images + les raccourcis proposes sur les boites
 documents sont toujours <docXX>

Il est possible de reactiver l'ancienne interface via
define('_LEGACY_MODE_IMAGE_DOCUMENT', true);
---
 .gitattributes                                |  1 +
 modeles/document_case.html                    |  2 +-
 modeles/document_case_fonctions.php           | 59 +++++++++++++------
 modeles/document_desc.html                    |  2 +-
 .../inclure/portfolio-documents.html          | 29 ++-------
 .../inclure/portfolio-images-legacy.html      | 41 +++++++++++++
 6 files changed, 90 insertions(+), 44 deletions(-)
 create mode 100644 prive/squelettes/inclure/portfolio-images-legacy.html

diff --git a/.gitattributes b/.gitattributes
index 9edc820f..34a6b981 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -310,6 +310,7 @@ prive/squelettes/inclure/mediatheque-galerie.html -text
 prive/squelettes/inclure/mediatheque-navigation.html -text
 prive/squelettes/inclure/mediatheque-navigation_fonctions.php -text
 prive/squelettes/inclure/portfolio-documents.html -text
+prive/squelettes/inclure/portfolio-images-legacy.html -text
 prive/squelettes/navigation/document_edit.html -text
 prive/squelettes/top/documents.html -text
 prive/style_prive_plugin_medias.html -text
diff --git a/modeles/document_case.html b/modeles/document_case.html
index beb90277..35e744dd 100644
--- a/modeles/document_case.html
+++ b/modeles/document_case.html
@@ -29,7 +29,7 @@
 			]
 			[(#ID_DOCUMENT|medias_raccourcis_doc{#_docslies:TITRE,#_docslies:DESCRIPTIF,#INCLUS,#LARGEUR,#HAUTEUR,#MODE,#VU,#MEDIA})]
 			</BOUCLE_type_doc>
-				[<div class="mode">(#INCLUS|=={image}|et{#CONST{_BOUTON_MODE_IMAGE}}|oui)
+				[<div class="mode">(#INCLUS|affiche_bouton_mode_image_portfolio)
 					[(#MODE|=={image}|oui)
 					[(#BOUTON_ACTION{<:medias:upload_info_mode_document:>,#URL_ACTION_AUTEUR{changer_mode_document,#ID_DOCUMENT-document,#SELF},ajax})]
 					][(#MODE|=={image}|non)
diff --git a/modeles/document_case_fonctions.php b/modeles/document_case_fonctions.php
index 1e8494af..00ec4870 100644
--- a/modeles/document_case_fonctions.php
+++ b/modeles/document_case_fonctions.php
@@ -16,6 +16,16 @@ if (!defined('_BOUTON_MODE_IMAGE')) {
 	define('_BOUTON_MODE_IMAGE', true);
 }
 
+function affiche_bouton_mode_image_portfolio($inclus) {
+	if (!defined('_LEGACY_MODE_IMAGE_DOCUMENT') or _LEGACY_MODE_IMAGE_DOCUMENT === false) {
+		return '';
+	}
+	if ($inclus === 'image' and _BOUTON_MODE_IMAGE) {
+		return ' ';
+	}
+	return '';
+}
+
 include_spip('inc/documents'); // pour la fonction affiche_raccourci_doc
 function medias_raccourcis_doc(
 	$id_document,
@@ -31,28 +41,41 @@ function medias_raccourcis_doc(
 	$raccourci = '';
 	$doc = 'doc';
 
-	if ($mode == 'image' and (strlen($descriptif . $titre) == 0)) {
-		$doc = 'img';
+	if (!defined('_LEGACY_MODE_IMAGE_DOCUMENT') or _LEGACY_MODE_IMAGE_DOCUMENT === false){
+		// Affichage du raccourci <doc...> correspondant
+		$raccourci =
+			affiche_raccourci_doc($doc, $id_document, 'left')
+			. affiche_raccourci_doc($doc, $id_document, 'center')
+			. affiche_raccourci_doc($doc, $id_document, 'right');
 	}
+	else {
+		// DEPRECATED
+		// on le garde juste pour la version SPIP 3.3, activable par la constante _LEGACY_MODE_IMAGE_DOCUMENT
+		if ($mode == 'image' and (strlen($descriptif . $titre) == 0)) {
+			$doc = 'img';
+		}
 
-	// Affichage du raccourci <doc...> correspondant
-	$raccourci =
-		affiche_raccourci_doc($doc, $id_document, 'left')
-		. affiche_raccourci_doc($doc, $id_document, 'center')
-		. affiche_raccourci_doc($doc, $id_document, 'right');
-	if ($mode == 'document'
-		and ($inclus == 'embed' or $inclus == 'image')
-		and (($largeur > 0 and $hauteur > 0)
-			or in_array($media, array('video', 'audio')))
-	) {
+		// Affichage du raccourci <doc...> correspondant
 		$raccourci =
-			'<span>' . _T('medias:info_inclusion_vignette') . '</span>'
-			. $raccourci
-			. '<span>' . _T('medias:info_inclusion_directe') . '</span>'
-			. affiche_raccourci_doc('emb', $id_document, 'left')
-			. affiche_raccourci_doc('emb', $id_document, 'center')
-			. affiche_raccourci_doc('emb', $id_document, 'right');
+			affiche_raccourci_doc($doc, $id_document, 'left')
+			. affiche_raccourci_doc($doc, $id_document, 'center')
+			. affiche_raccourci_doc($doc, $id_document, 'right');
+
+		if ($mode == 'document'
+			and ($inclus == 'embed' or $inclus == 'image')
+			and (($largeur > 0 and $hauteur > 0)
+				or in_array($media, array('video', 'audio')))
+		) {
+			$raccourci =
+				'<span>' . _T('medias:info_inclusion_vignette') . '</span>'
+				. $raccourci
+				. '<span>' . _T('medias:info_inclusion_directe') . '</span>'
+				. affiche_raccourci_doc('emb', $id_document, 'left')
+				. affiche_raccourci_doc('emb', $id_document, 'center')
+				. affiche_raccourci_doc('emb', $id_document, 'right');
+		}
 	}
 
+
 	return "<div class='raccourcis'>" . $raccourci . '</div>';
 }
diff --git a/modeles/document_desc.html b/modeles/document_desc.html
index d7be1469..1b884cff 100644
--- a/modeles/document_desc.html
+++ b/modeles/document_desc.html
@@ -78,7 +78,7 @@ Distribue sous licence GPL
 			</div>
 
 			<div class="actions">
-				[(#INCLUS|=={image}|et{#CONST{_BOUTON_MODE_IMAGE}}|oui)
+				[(#INCLUS|affiche_bouton_mode_image_portfolio)
 				<div class="mode">
 					[(#MODE|=={image}|oui)[(#BOUTON_ACTION{<:medias:upload_info_mode_document:>,#URL_ACTION_AUTEUR{changer_mode_document,#ID_DOCUMENT-document,#SELF},ajax})]
 					][(#MODE|=={image}|non)[(#BOUTON_ACTION{<:medias:upload_info_mode_image:>,#URL_ACTION_AUTEUR{changer_mode_document,#ID_DOCUMENT-image,#SELF},ajax})]]
diff --git a/prive/squelettes/inclure/portfolio-documents.html b/prive/squelettes/inclure/portfolio-documents.html
index 41b28957..b20c96bc 100644
--- a/prive/squelettes/inclure/portfolio-documents.html
+++ b/prive/squelettes/inclure/portfolio-documents.html
@@ -9,13 +9,13 @@
 
 #SET{nbdocs,0}
 <div id="portfolios#ENV{id_unique}" class="portfolios">
-[(#REM) D'abord les images illustration]
+[(#REM) Toutes les images]
 <B_illustrations>
 <h3><span class="image_loading"></span><:medias:info_illustrations:></h3>
 <div class="liste_items documents ordonner_rang_lien" id="illustrations#ENV{id_unique}"  data-cookie-affichage="illustrations" data-lien="[(#OBJET|concat{'/',#ID_OBJET}|attribut_html)]">
 [<p class="pagination">(#PAGINATION{prive})</p>]
 <div class="sortable">
-<BOUCLE_illustrations(DOCUMENTS documents_liens types_documents){inclus=image}{mode=image}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}>
+<BOUCLE_illustrations(DOCUMENTS documents_liens types_documents){media=image}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}{si #CONST{_LEGACY_MODE_IMAGE_DOCUMENT}|non}>
 	#MODELE{document_desc,id_document,id_objet,objet}
 </BOUCLE_illustrations>
 </div>
@@ -29,27 +29,8 @@
 </div>
 #SET{nbdocs,#GET{nbdocs}|plus{#GRAND_TOTAL}}
 </B_illustrations>
-
-[(#REM) puis les images du portfolio]
-<B_portfolio>
-<h3><:medias:info_portfolio:></h3>
-<div class="liste_items documents ordonner_rang_lien" id="portfolio#ENV{id_unique}" data-cookie-affichage="portfolio" data-lien="[(#OBJET|concat{'/',#ID_OBJET}|attribut_html)]">
-[<p class="pagination">(#PAGINATION{prive})</p>]
-<div class="sortable">
-<BOUCLE_portfolio(DOCUMENTS documents_liens types_documents){inclus=image}{mode=document}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}>
-	#MODELE{document_desc,id_document,id_objet,objet}
-</BOUCLE_portfolio>
-</div>
-[<p class="pagination">(#PAGINATION{prive})</p>]
-[(#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET})
-	<div class="actions-liste">
-		[(#BOUTON_ACTION{<:medias:lien_tout_enlever:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-I/document,#SELF|ancre_url{portfolio}},'ajax noscroll tout_supprimer',<:ecrire:lien_tout_supprimer:> ?})]
-		[(#BOUTON_ACTION{<:medias:lien_tout_desordonner:>,#URL_ACTION_AUTEUR{desordonner_liens_documents,#ID_OBJET-#OBJET-I/document,#SELF|ancre_url{illustrations}},'ajax tout_desordonner',<:medias:lien_tout_desordonner_verif:>})]
-	</div>
-]
-</div>
-#SET{nbdocs,#GET{nbdocs}|plus{#GRAND_TOTAL}}
-</B_portfolio>
+	<INCLURE{fond=prive/squelettes/inclure/portfolio-images-legacy,env} />
+<//B_illustrations>
 
 [(#REM) puis les documents]
 <B_documents>
@@ -57,7 +38,7 @@
 <div class="liste_items documents ordonner_rang_lien" id="documents#ENV{id_unique}" data-cookie-affichage="documents" data-lien="[(#OBJET|concat{'/',#ID_OBJET}|attribut_html)]">
 [<p class="pagination">(#PAGINATION{prive})</p>]
 <div class="sortable">
-<BOUCLE_documents(DOCUMENTS documents_liens types_documents){inclus!=image}{mode!=vignette}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}>
+<BOUCLE_documents(DOCUMENTS documents_liens types_documents){media!=image}{mode!=vignette}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}>
 	#MODELE{document_desc,id_document,id_objet,objet}
 </BOUCLE_documents>
 </div>
diff --git a/prive/squelettes/inclure/portfolio-images-legacy.html b/prive/squelettes/inclure/portfolio-images-legacy.html
new file mode 100644
index 00000000..8166b5d0
--- /dev/null
+++ b/prive/squelettes/inclure/portfolio-images-legacy.html
@@ -0,0 +1,41 @@
+[(#REM) D'abord les images illustration]
+<B_illustrations>
+<h3><span class="image_loading"></span><:medias:info_illustrations:></h3>
+<div class="liste_items documents ordonner_rang_lien" id="illustrations#ENV{id_unique}"  data-cookie-affichage="illustrations" data-lien="[(#OBJET|concat{'/',#ID_OBJET}|attribut_html)]">
+[<p class="pagination">(#PAGINATION{prive})</p>]
+<div class="sortable">
+<BOUCLE_illustrations(DOCUMENTS documents_liens types_documents){media=image}{mode=image}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}>
+	#MODELE{document_desc,id_document,id_objet,objet}
+</BOUCLE_illustrations>
+</div>
+[<p class="pagination">(#PAGINATION{prive})</p>]
+[(#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET})
+	<div class="actions-liste">
+	[(#BOUTON_ACTION{<:medias:lien_tout_enlever:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-I/image,#SELF|ancre_url{illustrations}},'ajax noscroll tout_supprimer',<:ecrire:lien_tout_supprimer:> ?})]
+	[(#BOUTON_ACTION{<:medias:lien_tout_desordonner:>,#URL_ACTION_AUTEUR{desordonner_liens_documents,#ID_OBJET-#OBJET-I/image,#SELF|ancre_url{illustrations}},'ajax tout_desordonner',<:medias:lien_tout_desordonner_verif:>})]
+	</div>
+]
+</div>
+#SET{nbdocs,#GET{nbdocs}|plus{#GRAND_TOTAL}}
+</B_illustrations>
+
+[(#REM) puis les images du portfolio]
+<B_portfolio>
+<h3><:medias:info_portfolio:></h3>
+<div class="liste_items documents ordonner_rang_lien" id="portfolio#ENV{id_unique}" data-cookie-affichage="portfolio" data-lien="[(#OBJET|concat{'/',#ID_OBJET}|attribut_html)]">
+[<p class="pagination">(#PAGINATION{prive})</p>]
+<div class="sortable">
+<BOUCLE_portfolio(DOCUMENTS documents_liens types_documents){media=image}{mode=document}{id_objet}{objet}{par rang_lien, num titre, date,id_document}{pagination 50}{statut?}>
+	#MODELE{document_desc,id_document,id_objet,objet}
+</BOUCLE_portfolio>
+</div>
+[<p class="pagination">(#PAGINATION{prive})</p>]
+[(#AUTORISER{dissocierdocuments,#OBJET,#ID_OBJET})
+	<div class="actions-liste">
+		[(#BOUTON_ACTION{<:medias:lien_tout_enlever:>,#URL_ACTION_AUTEUR{dissocier_document,#ID_OBJET-#OBJET-I/document,#SELF|ancre_url{portfolio}},'ajax noscroll tout_supprimer',<:ecrire:lien_tout_supprimer:> ?})]
+		[(#BOUTON_ACTION{<:medias:lien_tout_desordonner:>,#URL_ACTION_AUTEUR{desordonner_liens_documents,#ID_OBJET-#OBJET-I/document,#SELF|ancre_url{illustrations}},'ajax tout_desordonner',<:medias:lien_tout_desordonner_verif:>})]
+	</div>
+]
+</div>
+#SET{nbdocs,#GET{nbdocs}|plus{#GRAND_TOTAL}}
+</B_portfolio>
\ No newline at end of file
-- 
GitLab