Browse Source

Se passer du plugin declarer_parents, et utiliser l'API de SPIP 4.

master
Maïeul 1 year ago
parent
commit
8ac4a73136
  1. 6
      action/dupliquer_objet.php
  2. 7
      duplicator_autoriser.php
  3. 6
      duplicator_pipelines.php
  4. 5
      formulaires/configurer_duplicator.php
  5. 1
      paquet.xml

6
action/dupliquer_objet.php

@ -186,9 +186,9 @@ function objet_dupliquer($objet, $id_objet, $modifications=array(), $options=arr
if (
isset($options['dupliquer_enfants'])
and $options['dupliquer_enfants']
and include_spip('base/objets_parents')
and $enfants_methodes = type_objet_info_enfants($objet)
and $enfants = objet_trouver_enfants($objet, $id_objet)
and include_spip('base/objets')
and $enfants_methodes = objet_type_decrire_infos_enfants($objet)
and $enfants = objet_lister_enfants_par_type($objet, $id_objet)
// S'il n'y a pas de config d'enfants alors tous, sinon seulement les enfants autorisés
and (
!isset($options['enfants'])

7
duplicator_autoriser.php

@ -23,10 +23,11 @@ function autoriser_dupliquer_dist($faire, $quoi='', $id=0, $qui=null, $options=n
}
// Sinon on cherche une autorisation logique par défaut, de création ou de création dans un parent
else {
include_spip('base/objets_parents');
include_spip('base/objets');
// Si on trouve un parent pour ce type d'objet
if ($parent = objet_trouver_parent($quoi, $id)) {
if ($parent = objet_lister_parents($quoi, $id, true)) {//Ne prendre que le parent direct
$parent = $parent[0];
// On construit le nom de la fonction
return autoriser("creer${quoi}dans", $parent['objet'], $parent['id_objet']);
}

6
duplicator_pipelines.php

@ -21,15 +21,15 @@ function duplicator_boite_infos($flux){
include_spip('inc/filtres');
include_spip('inc/actions');
include_spip('base/objets_parents');
// Un bouton pour dupliquer le contenu
$flux["data"] .= bouton_action(
_T('duplicator:action_dupliquer_contenu'),
generer_action_auteur('dupliquer_objet', "$objet/$id_objet")
);
// Un bouton pour dupliquer aussi les enfants, seulement si on trouve des enfants possibles
if (type_objet_info_enfants($objet) and objet_trouver_enfants($objet, $id_objet)) {
if (objet_type_decrire_infos_enfants($objet) and objet_lister_enfants($objet, $id_objet)) {
$flux["data"] .= bouton_action(
_T('duplicator:action_dupliquer_contenu_enfants'),
generer_action_auteur('dupliquer_objet', "$objet/$id_objet/enfants"),

5
formulaires/configurer_duplicator.php

@ -116,10 +116,9 @@ function formulaires_configurer_duplicator_saisies_dist() {
);
// Les enfants à dupliquer
if ($enfants_possibles = type_objet_info_enfants($objet)) {
if ($enfants_possibles = objet_type_decrire_infos_enfants($objet)) {
$enfants_possibles = array_map('table_objet_sql', array_keys($enfants_possibles));
$enfants_exclus = array_diff(array_keys($declaration_objets), $enfants_possibles);
$groupe_objet['saisies'][] = array(
'saisie' => 'case',
'options' => array(
@ -161,7 +160,7 @@ function formulaires_configurer_duplicator_verifier_dist() {
}
// Si on a décoché la personnalisation des enfants, on vide la config des enfants
if (!$config_objet['personnaliser_enfants']) {
if (!isset($config_objet['personnaliser_enfants'])) {
$config_objet['enfants'] = 'tous';
} else {
// Le hidden pourri dans la saisie inc-choisir-enfants qu'il faut virer

1
paquet.xml

@ -17,7 +17,6 @@
<auteur lien="http://rastapopoulos.artizanal.info/">RastaPoppoulos</auteur>
<licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
<necessite nom="declarerparent" compatibilite="[1.3.0;]" />
<necessite nom="saisies" compatibilite="[4.0.0;]" />
<pipeline nom="duplicator" action="" />

Loading…
Cancel
Save