From 2397cdb50aac0285b3130a1d4f4d008caa16278f Mon Sep 17 00:00:00 2001
From: nicod_ <nicod@lerebooteux.fr>
Date: Thu, 27 Apr 2023 15:49:16 +0200
Subject: [PATCH] =?UTF-8?q?Pouvoir=20retourner=20le=20chemin=20complet=20d?=
 =?UTF-8?q?u=20squelette=20trouv=C3=A9=20dans=20le=20path=20(pour=20affich?=
 =?UTF-8?q?age=20plus=20d=C3=A9taill=C3=A9=20dans=20le=20priv=C3=A9)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 blocks_fonctions.php                 | 21 +++++++++++++--------
 prive/objets/contenu/blocs_type.html |  4 ++--
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/blocks_fonctions.php b/blocks_fonctions.php
index 77b10d2..f16a036 100644
--- a/blocks_fonctions.php
+++ b/blocks_fonctions.php
@@ -183,31 +183,36 @@ function generer_TITRE_BLOC($id_bloc) {
 /**
  * Chercher le squelette correspondant à un bloc par son identifiant
  *
- * @param string $identifiant Identifiant du bloc
- * @param bool   $force_public Forcer une recherche du squelette public
+ * @param string $identifiant    Identifiant du bloc
+ * @param bool   $force_public   Forcer une recherche du squelette public
+ * @param bool   $chemin_complet Retourne le chemin complet du squelette
  * @return string Chemin du squelette trouvé
  */
-function blocks_trouver_squelette($identifiant, $force_public = false) {
+function blocks_trouver_squelette($identifiant, $force_public = false, $chemin_complet = false) {
 	static $cache;
-	$cle = $identifiant . ($force_public ? 'oui' : 'non');
+	$cle = $identifiant . ($force_public ? 'oui' : 'non') . ($chemin_complet ? 'oui' : 'non');
 	if (isset($cache[$cle])) {
 		return $cache[$cle];
 	}
 
+	$squelette = '';
 	if (
 		!$force_public
 		&& test_espace_prive()
 		&& ($f = find_in_path($identifiant . '.' . _EXTENSION_SQUELETTES, 'blocks_prive/'))
 		&& lire_fichier($f, $contenu)
 	) {
-		$squelette = 'blocks_prive/' . $identifiant;
+		$squelette = $chemin_complet ? $f : 'blocks_prive/' . $identifiant;
 	} else if (
 		($f = find_in_path($identifiant . '.' . _EXTENSION_SQUELETTES, 'blocks/'))
 		&& lire_fichier($f, $contenu)
 	) {
-		$squelette = 'blocks/' . $identifiant;
-	} else {
-		$squelette = 'blocks/dist';
+		$squelette = $chemin_complet ? $f : 'blocks/' . $identifiant;
+	} else if (
+		($f = find_in_path('dist.' . _EXTENSION_SQUELETTES, 'blocks/'))
+		&& lire_fichier($f, $contenu)
+	) {
+		$squelette = $chemin_complet ? $f : 'blocks/dist';
 	}
 	$cache[$cle] = $squelette;
 
diff --git a/prive/objets/contenu/blocs_type.html b/prive/objets/contenu/blocs_type.html
index 1dd184a..e3ea732 100644
--- a/prive/objets/contenu/blocs_type.html
+++ b/prive/objets/contenu/blocs_type.html
@@ -5,10 +5,10 @@
 	<strong class="label"><:blocs_type:champ_identifiant_label:/> : </strong>#IDENTIFIANT
 </p>
 <p>
-	<strong class="label"><:blocs_type:texte_squelette_public:/> : </strong>[(#IDENTIFIANT|blocks_trouver_squelette{1})]
+	<strong class="label"><:blocs_type:texte_squelette_public:/> : </strong>[(#IDENTIFIANT|blocks_trouver_squelette{1,1}|joli_repertoire)]
 </p>
 <p>
-	<strong class="label"><:blocs_type:texte_squelette_prive:/> : </strong>[(#IDENTIFIANT|blocks_trouver_squelette)]
+	<strong class="label"><:blocs_type:texte_squelette_prive:/> : </strong>[(#IDENTIFIANT|blocks_trouver_squelette{0,1}|joli_repertoire)]
 </p>
 #BOITE_FERMER
 
-- 
GitLab