Browse Source

Si pas de squelette d'affichage de contenu disponible, on en propose un par défaut, qui se base sur l'énumeration 'champs_contenu' si disponible dans la declaration de l'objet

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.
3.0
Cerdic 12 years ago
parent
commit
eb1413c5e7
  1. 1
      .gitattributes
  2. 3
      ecrire/base/objets.php
  3. 8
      ecrire/public/styliser.php
  4. 4
      ecrire/public/styliser_par_z.php
  5. 2
      prive/echafaudage/contenu/objet.html
  6. 12
      prive/objets/contenu/objet.html

1
.gitattributes vendored

@ -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

3
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

8
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;
}

4
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);

2
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})]

12
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>
Loading…
Cancel
Save