Changeset 118254 in spip-zone
- Timestamp:
- Oct 22, 2019, 7:30:04 AM (7 weeks ago)
- Location:
- _plugins_/lim/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/lim/trunk/lim_pipelines.php
r113796 r118254 44 44 45 45 /** 46 * Gestion des contenus par rubrique : si pour un objet A la conf dans LIM ne laisse qu'un seule rubrique dans laquelle cet objet peut être éditer, rediriger l'enregistrement vers cette rubrique en renvoyant l'id_parent 47 * ce traitement est rendu nécessaire par 48 * -> l'action de la fonction inc/lim_api.php -> inc_chercher_rubrique qui supprime l'affichage du sélecteur de rubrique si une seule rubrique 49 * -> le cas 2 (voir ci-dessous) 46 * Gestion des contenus par rubrique 47 * Lors de la création d'un objet éditorial, être sûr de renvoyer la bonne valeur de "id_parent". 50 48 * 51 * cas 1 : le rédacteur créer une nouvelle instance de l'objet depuis la bonne rubrique : on a l'id_parent depuis le flux 52 * cas 2 : le rédacteur créer une instance depuis la barre d'outils rapides, ou via la page exec=objets. On n'a pas l'id_parent. 53 * Il faut le calculer pour enregistrer l'instance dans une rubrique gérée par LIM 54 * a/ via LIM l'objet ne peut être associé qu'à une seule rubrique. On renvoi l'id de cette rubrique 55 * b/ via LIM l'objet peut être associé à plusieurs rubriques : pas de traitement. Le sélecteur de rubrique est affiché. 49 * Cas #1 : objet géré par la restriction par rubrique de LIM 50 * -> #1.1 Si une seule rubrique définie : on récupère la valeur de l'id_rubrique dans la conf. 51 * -> #1.2 Sinon forcer la valeur vide pour 'id_parent'. Dans ce cas, le premier choix du selecteur de rubrique est vide, et si l'utilisateur ne choisit pas de rubrique il aura un retour en erreur sur un champ obligatoire (sauf dans le cas d'une rubrique qui se retrouvera à la racine). 52 * 53 * Cas #2 : objet non géré par la restriction par rubrique de LIM. 54 * -> même traitement que pour le cas #1.2 56 55 * 57 56 * @param array $flux 58 57 * @return array $flux 59 * le flux data complété par un input hidden 'id_parent' avec la bonne valeur58 * le flux data complété par une valeur de id_parent 60 59 **/ 61 60 function lim_formulaire_charger($flux) { 62 // si ce n'est pas un formulaire d'édition d'un objet ou si la restriction par rubrique n'a pas été activée, on sort. 63 if (strncmp($flux['args']['form'], 'editer_', 7) !== 0 OR is_null(lire_config('lim_objets'))) { 64 return $flux; 61 if ( 62 strncmp($flux['args']['form'], 'editer_', 7) == 0 // c'est bien un formulaire d'edition d'objet 63 and !is_numeric($flux['args']['args']['0']) // c'est bien une création d'objet (pas une modif ou autre) 64 ) { 65 $objet = substr($flux['args']['form'], 7); // 'editer_article' -> 'article' 66 $nom_table = table_objet_sql($objet); // article -> spip_articles 67 68 $tableau_conf_lim_objet = lire_config("lim_rubriques/$objet"); 69 $nbre_rubriques = sql_countsel('spip_rubriques'); 70 $nbre_rubriques_autorisees = $nbre_rubriques - count($tableau_conf_lim_objet); 71 72 if (isset($tableau_conf_lim_objet)) { 73 74 // Cas #0 : voir TODO's 75 // if ($nbre_rubriques_autorisees == 0) { 76 // debug('Cas #0'); 77 // $id_parent = '0'; 78 // } 79 80 if ($nbre_rubriques_autorisees == 1) { // Cas #1.1 81 $tab_rubrique_choisie = lim_publierdansrubriques($objet); 82 $id_parent = implode($tab_rubrique_choisie); 83 } 84 85 if ($nbre_rubriques_autorisees >= 2) { // Cas #1.2 86 $id_parent = ''; 87 } 88 } else { // Cas #2 89 $id_parent = ''; 90 } 91 92 $flux['data']['id_parent'] = $id_parent; 65 93 } 66 94 67 $objet = substr($flux['args']['form'], 7); // 'editer_objet' devient 'objet'68 $nom_table = table_objet_sql($objet);69 $tableau_tables_lim = explode(',', lire_config('lim_objets'));70 71 if (in_array($nom_table, $tableau_tables_lim)) {72 $tab_rubriques_choisies = lim_publierdansrubriques($objet);73 if (count($tab_rubriques_choisies) == 1) {74 $id_parent = $flux['data']['id_parent'];75 if (empty($id_parent)) {76 $id_parent = implode($tab_rubriques_choisies);77 }78 $flux['data']['_hidden'] = "<input type='hidden' name='id_parent' value='$id_parent'>";79 }80 }81 95 return $flux; 82 96 } -
_plugins_/lim/trunk/paquet.xml
r117696 r118254 2 2 prefix="lim" 3 3 categorie="maintenance" 4 version="2.1. 1"4 version="2.1.2" 5 5 etat="stable" 6 6 compatibilite="[3.2.0;3.3.*]" -
_plugins_/lim/trunk/todo.md
r113671 r118254 3 3 **1 - En priorité** 4 4 Pouvoir figer les choix dans la gestion des restrictions par rubriques 5 6 **2- Gestion des contenus par rubrique** 7 Pouvoir gérer le cas où un rédacteur décoche toutes les cases : du coup on ne retrouve l'objet éditorial que via le menu Édition -> Objets 5 8 6 9 **2- Utiliser le plugin Declarer Parent**
Note: See TracChangeset
for help on using the changeset viewer.