Browse Source

Nouvelle configuration qui permet objet par objet de configurer quels objets enfants celui-ci seront dupliqués, lorsqu'on duplique en cascade. Pas encore utilisée pour de vrai dans le code par contre.

svn/root/tags/v2.0.8
rastapopoulos@spip.org 5 years ago
parent
commit
bdefc47a84
  1. 33
      formulaires/configurer_duplicator.php
  2. 2
      lang/duplicator_fr.php

33
formulaires/configurer_duplicator.php

@ -5,6 +5,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
include_spip('base/objets');
include_spip('base/objets_parents');
function formulaires_configurer_duplicator_saisies_dist() {
$declaration_objets = lister_tables_objets_sql();
@ -115,6 +116,32 @@ function formulaires_configurer_duplicator_saisies_dist() {
),
);
// Les enfants à dupliquer
if ($enfants_possibles = type_objet_info_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(
'nom' => "${table_objet}[personnaliser_enfants]",
'label_case' => _T('duplicator:configurer_personnaliser_enfants_label'),
'valeur_forcee' => (isset($config[$table_objet]['objets_enfants']) and $config[$table_objet]['objets_enfants']) ? 'on' : '',
),
);
$groupe_objet['saisies'][] = array(
'saisie' => 'choisir_objets',
'options' => array(
'nom' => "${table_objet}[objets_enfants]",
'exclus' => $enfants_exclus,
'label' => _T('duplicator:configurer_objets_enfants_label'),
'defaut' => isset($config[$table_objet]['objets_enfants']) ? $config[$table_objet]['objets_enfants'] : array(),
'afficher_si' => "@${table_objet}[personnaliser_enfants]@ == 'on'",
),
);
}
$saisies[] = $groupe_objet;
}
}
@ -133,6 +160,12 @@ function formulaires_configurer_duplicator_verifier_dist() {
if (!$config_objet['personnaliser_champs']) {
unset($config_objet['champs']);
}
// Si on a décoché la personnalisation des enfants, on vide la config des enfants
if (!$config_objet['personnaliser_enfants']) {
unset($config_objet['objets_enfants']);
}
// On remet dans la course
set_request($table_objet, $config_objet);
}

2
lang/duplicator_fr.php

@ -24,9 +24,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'configurer_autorisation_option_intro' => 'Autorisation par défaut',
'configurer_champs_label' => 'Champs à dupliquer',
'configurer_explication_objets_texte' => 'Même si seulement les contenus ci-dessus seront proposés dans l’interface, tous les types de contenus peuvent potentiellement être dupliqués s’ils sont enfants d’autres contenus. On permet donc de configurer en permanence l’ensemble des types de contenus, et non seulement ceux choisis pour les boutons.',
'configurer_objets_enfants_label' => 'Quels contenus enfants seront dupliqués ?',
'configurer_objets_explication' => 'Le plugin va ajouter des boutons sur la page d’admin de ces contenus pour permettre de les dupliquer et parfois de dupliquer aussi leurs enfants s’il y en a.',
'configurer_objets_label' => 'Contenus à dupliquer dans l’interface',
'configurer_personnaliser_champs_label' => 'Personnaliser les champs à dupliquer pour ces contenus',
'configurer_personnaliser_enfants_label' => 'Personnaliser les contenus enfants qui seront dupliqués (par défaut tous)',
'configurer_titre' => 'Configuration de Duplicator',
'configurer_statut_label' => 'Statut après duplication',
'configurer_statut_option_intro' => 'Garder le même',

Loading…
Cancel
Save