From eb1413c5e70c5d896c789525807c6841dd1cd73e Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Mon, 11 Apr 2011 13:28:37 +0000
Subject: [PATCH] =?UTF-8?q?Si=20pas=20de=20squelette=20d'affichage=20de=20?=
 =?UTF-8?q?contenu=20disponible,=20on=20en=20propose=20un=20par=20d=C3=A9f?=
 =?UTF-8?q?aut,=20qui=20se=20base=20sur=20l'=C3=A9numeration=20'champs=5Fc?=
 =?UTF-8?q?ontenu'=20si=20disponible=20dans=20la=20declaration=20de=20l'ob?=
 =?UTF-8?q?jet?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Un nouvel objet editorial basique ne nécessite donc plus qu'un formulaire d'édition pour avoir une interface complète fonctionnelle dans l'interface privée.

Pour un objet non editable (exemple de données importées et figées, ou mises à jour de façon automatique), il suffit de le déclarer pour le visualiser et naviguer dans la liste de ses instances en base de donnée.
---
 .gitattributes                       |  1 +
 ecrire/base/objets.php               |  3 ++-
 ecrire/public/styliser.php           |  8 ++++++++
 ecrire/public/styliser_par_z.php     |  4 ++--
 prive/echafaudage/contenu/objet.html |  2 +-
 prive/objets/contenu/objet.html      | 12 ++++++++++++
 6 files changed, 26 insertions(+), 4 deletions(-)
 create mode 100644 prive/objets/contenu/objet.html

diff --git a/.gitattributes b/.gitattributes
index 41d8e0682a..22a89a0b1c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -721,6 +721,7 @@ prive/modeles/text_html.html -text
 prive/modeles/video.html -text
 prive/objets/contenu/article.html -text
 prive/objets/contenu/auteur.html -text
+prive/objets/contenu/objet.html -text
 prive/objets/contenu/plugin_item_rss.html -text
 prive/objets/contenu/rubrique-enfants.html -text
 prive/objets/contenu/rubrique.html -text
diff --git a/ecrire/base/objets.php b/ecrire/base/objets.php
index 94d9ea5438..3316901ea1 100644
--- a/ecrire/base/objets.php
+++ b/ecrire/base/objets.php
@@ -252,8 +252,9 @@ function lister_tables_objets_sql($table_sql=null, $desc=array()){
  * info_nb_objets
  *
  * principale
+ * champs_contenu : utlise pour generer l'affichage par defaut du contenu
  * editable
- * champs_editables
+ * champs_editables : utilise pour prendre en compte le post lors de l'edition
  * 
  * titre
  * date
diff --git a/ecrire/public/styliser.php b/ecrire/public/styliser.php
index 8c86ac039d..aefde0f7c2 100644
--- a/ecrire/public/styliser.php
+++ b/ecrire/public/styliser.php
@@ -88,6 +88,14 @@ function styliser_par_objets($flux){
 			if (isset($objets[$table_sql]))
 				$flux['data'] = $echaffauder($table,$table,$table_sql,"prive/objets/liste/objets",$flux['args']['ext']);
 		}
+		if (strncmp($flux['args']['fond'],'prive/objets/contenu/',21)==0){
+			$type = substr($flux['args']['fond'],21);
+			$table = table_objet($type);
+			$table_sql = table_objet_sql($table);
+			$objets = lister_tables_objets_sql();
+			if (isset($objets[$table_sql]))
+				$flux['data'] = $echaffauder($type,$table,$table_sql,"prive/objets/contenu/objet",$flux['args']['ext']);
+		}
 	}
 	return $flux;
 }
diff --git a/ecrire/public/styliser_par_z.php b/ecrire/public/styliser_par_z.php
index bdb54c7b6e..c5e8a16d12 100644
--- a/ecrire/public/styliser_par_z.php
+++ b/ecrire/public/styliser_par_z.php
@@ -316,13 +316,13 @@ function prive_echaffauder_dist($exec,$table,$table_sql,$desc_exec,$ext){
 	elseif($type = $desc_exec AND strpos($type,"/")===false){
 		$dir = z_blocs(test_espace_prive());
 		$dir = reset($dir);
-		$scaffold = "<INCLURE{fond=prive/echafaudage/$dir/objets,objet=".$type."} />";
+		$scaffold = "<INCLURE{fond=prive/echafaudage/$dir/objets,objet=".$type.",env} />";
 	}
 	// morceau d'objet : on fournit le fond de sibstitution dans $desc_exec
 	// et objet et tire de $table
 	elseif($fond = $desc_exec){
 		$dir = md5(dirname($fond));
-		$scaffold = "<INCLURE{fond=$fond,objet=".objet_type($table)."} />";
+		$scaffold = "<INCLURE{fond=$fond,objet=".objet_type($table).",env} />";
 	}
 
 	$base_dir = sous_repertoire(_DIR_CACHE,"scaffold",false);
diff --git a/prive/echafaudage/contenu/objet.html b/prive/echafaudage/contenu/objet.html
index 452202d67e..ba2cc9a021 100644
--- a/prive/echafaudage/contenu/objet.html
+++ b/prive/echafaudage/contenu/objet.html
@@ -3,7 +3,7 @@
 
 	[(#BOITE_OUVRIR{[
 
-		[(#AUTORISER{modifier,#OBJET,#ID_OBJET})
+		[(#AUTORISER{modifier,#OBJET,#ID_OBJET}|et{#OBJET|objet_info{editable}}|oui)
 
 			[(#ID_OBJET|afficher_qui_edite{#OBJET}|non)
 				[(#ID_OBJET|generer_url_ecrire_entite_edit{#OBJET}|icone_verticale{[(#OBJET|objet_info{texte_modifier}|_T)],#OBJET,edit,right ajax preload})]
diff --git a/prive/objets/contenu/objet.html b/prive/objets/contenu/objet.html
new file mode 100644
index 0000000000..20dae990cd
--- /dev/null
+++ b/prive/objets/contenu/objet.html
@@ -0,0 +1,12 @@
+<BOUCLE_champs(DATA){source table,#ENV{objet}|objet_info{champs_contenu}}>
+#SET{value,#ENV{id}|generer_info_entite{#ENV{objet},#VALEUR}}
+<div class="champ contenu_#VALEUR[ (#GET{value}|strlen|?{'',vide})]">
+<div class='label'>[(#ENV{objet}|concat{':info_',#VALEUR}|_T)]</div>
+<div class='#VALEUR'>#GET{value}</div>
+</div>
+</BOUCLE_champs>
+[<div class="champ contenu_notes">
+<div class='label'><:info_notes:></div>
+<div dir='#LANG_DIR' class='notes'>(#NOTES)</div>
+</div>]
+</B_champs>
\ No newline at end of file
-- 
GitLab