
8 changed files with 185 additions and 95 deletions
@ -0,0 +1,85 @@
|
||||
<?php |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) { |
||||
return; |
||||
} |
||||
|
||||
/** |
||||
* Fonction d'installation et de mise à jour du plugin Duplicator. |
||||
* |
||||
* @param string $nom_meta_base_version |
||||
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP |
||||
* @param string $version_cible |
||||
* Version du schéma de données dans ce plugin (déclaré dans paquet.xml) |
||||
* @return void |
||||
**/ |
||||
function duplicator_upgrade($nom_meta_base_version, $version_cible) { |
||||
$maj = array(); |
||||
|
||||
// Rien à faire à l'installation |
||||
$maj['create'] = array(); |
||||
|
||||
// Pour les anciens qui migrent, on déplace la config |
||||
$maj['1.0.0'] = array( |
||||
array('duplicator_maj_1_0_0'), |
||||
); |
||||
|
||||
include_spip('base/upgrade'); |
||||
maj_plugin($nom_meta_base_version, $version_cible, $maj); |
||||
} |
||||
|
||||
/** |
||||
* Fonction de désinstallation du plugin Chapitres. |
||||
* |
||||
* @param string $nom_meta_base_version |
||||
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP |
||||
* @return void |
||||
**/ |
||||
function duplicator_vider_tables($nom_meta_base_version) { |
||||
// Effacer la config |
||||
effacer_meta('duplicator'); |
||||
|
||||
effacer_meta($nom_meta_base_version); |
||||
} |
||||
|
||||
/** |
||||
* On déplace la config tant que faire se peut |
||||
*/ |
||||
function duplicator_maj_1_0_0() { |
||||
include_spip('inc/config'); |
||||
$config = lire_config('duplicator/config'); |
||||
$nouvelle_config = array(); |
||||
|
||||
// Config des objets |
||||
if (isset($config['duplic_rubrique']) and $config['duplic_rubrique'] == 'oui') { |
||||
$nouvelle_config['objets'][] = 'spip_rubriques'; |
||||
} |
||||
if (isset($config['duplic_article']) and $config['duplic_article'] == 'oui') { |
||||
$nouvelle_config['objets'][] = 'spip_articles'; |
||||
} |
||||
|
||||
// Config des champs |
||||
if (isset($config['rub_champs']) and $champs = $config['rub_champs']) { |
||||
$champs = explode(',', $champs); |
||||
$champs = array_map('trim', $champs); |
||||
$nouvelle_config['rubriques']['champs'] = $champs; |
||||
} |
||||
if (isset($config['art_champs']) and $champs = $config['art_champs']) { |
||||
$champs = explode(',', $champs); |
||||
$champs = array_map('trim', $champs); |
||||
$nouvelle_config['articles']['champs'] = $champs; |
||||
} |
||||
|
||||
// Config des autorisations : non on prend par défaut plutôt, qui n'existait pas avant, donc ça on ne le migre pas |
||||
|
||||
// Config du statut |
||||
if (isset($config['duplic_article_etat_pub']) and $config['duplic_article_etat_pub'] == 'oui') { |
||||
$nouvelle_config['articles']['statut'] = ''; |
||||
} |
||||
else { |
||||
$nouvelle_config['articles']['statut'] = 'prepa'; |
||||
} |
||||
|
||||
// Et on enregistre |
||||
ecrire_config('duplicator', $nouvelle_config); |
||||
} |
@ -1,89 +1 @@
|
||||
<div class="formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}"> |
||||
<h3 class="titrem"><:duplicator:configuration_duplicator:></h3> |
||||
[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>] |
||||
[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>] |
||||
[(#ENV{editable}) |
||||
<form method='post' action='#ENV{action}'><div> |
||||
[(#REM) declarer les hidden qui declencheront le service du formulaire |
||||
parametre : url d'action ] |
||||
#ACTION_FORMULAIRE{#ENV{action}} |
||||
|
||||
<fieldset> |
||||
<legend><:duplicator:texte_duplicator:></legend> |
||||
<ul> |
||||
<li class="editer duplic_objet[ (#ENV**{erreurs}|table_valeur{duplic_objet}|oui)erreur]"> |
||||
<label><:duplicator:choix_type:></label> |
||||
[<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{duplic_objet})</span>] |
||||
<div class="choix"> |
||||
<input type="checkbox" name="duplic_rubrique" class="checkbox" value="oui" id="duplic_rubrique"[(#ENV{duplic_rubrique,''}|=={oui}|oui)checked="checked"] /> |
||||
<label for="duplic_rubrique"><:duplicator:dupli_rub:></label> |
||||
</div> |
||||
<div class="choix"> |
||||
<input type="checkbox" name="duplic_article" class="checkbox" value="oui" id="duplic_article"[(#ENV{duplic_article,''}|=={oui}|oui)checked="checked"] /> |
||||
<label for="duplic_article"><:duplicator:dupli_art:></label> |
||||
</div> |
||||
</li> |
||||
</ul> |
||||
</fieldset> |
||||
|
||||
<fieldset> |
||||
<legend><:duplicator:choix_champs:></legend> |
||||
<ul> |
||||
<li> |
||||
<label for="art_champs"><:duplicator:label_art_champs:></label> |
||||
<p class="explication"><:duplicator:aide_choix_champs:></p> |
||||
<textarea name="art_champs" id="art_champs" cols="60" rows="2">[(#CONFIG{duplicator/config/art_champs})]</textarea> |
||||
</li> |
||||
<li> |
||||
<label for="rub_champs"><:duplicator:label_rub_champs:></label> |
||||
<p class="explication"><:duplicator:aide_choix_champs:></p> |
||||
<textarea name="rub_champs" id="rub_champs" cols="60" rows="2">[(#CONFIG{duplicator/config/rub_champs})]</textarea> |
||||
</li> |
||||
</ul> |
||||
</fieldset> |
||||
|
||||
<fieldset> |
||||
<legend><:duplicator:autorisations:></legend> |
||||
<ul> |
||||
<li> |
||||
<label for="duplic_article_autorisation"><:duplicator:autorisations_article:></label> |
||||
<div class="choix"> |
||||
<select name="duplic_article_autorisation" id="duplic_article_autorisation"> |
||||
<option value="webmestre" [(#ENV{duplic_article_autorisation,''}|=={webmestre}|oui)selected="selected"]><:duplicator:autorisations_webmestre_label:></option> |
||||
<option value="0minirezo" [(#ENV{duplic_article_autorisation,''}|=={0minirezo}|oui)selected="selected"]><:duplicator:autorisations_admin_label:></option> |
||||
<option value="1comite" [(#ENV{duplic_article_autorisation,''}|=={1comite}|oui)selected="selected"]><:duplicator:autorisations_redacteur_label:></option> |
||||
</select> |
||||
</div> |
||||
</li> |
||||
<li> |
||||
<label for="duplic_rubrique_autorisation"><:duplicator:autorisations_rubriques:></label> |
||||
<div class="choix"> |
||||
<select name="duplic_rubrique_autorisation" id="duplic_rubrique_autorisation"> |
||||
<option value="webmestre" [(#ENV{duplic_rubrique_autorisation,''}|=={webmestre}|oui)selected="selected"]><:duplicator:autorisations_webmestre_label:></option> |
||||
<option value="0minirezo" [(#ENV{duplic_rubrique_autorisation,''}|=={0minirezo}|oui)selected="selected"]><:duplicator:autorisations_admin_label:></option> |
||||
<option value="1comite" [(#ENV{duplic_rubrique_autorisation,''}|=={1comite}|oui)selected="selected"]><:duplicator:autorisations_redacteur_label:></option> |
||||
</select> |
||||
</div> |
||||
</li> |
||||
</ul> |
||||
</fieldset> |
||||
|
||||
<fieldset> |
||||
<legend><:duplicator:etat_article:></legend> |
||||
<ul> |
||||
<li> |
||||
<label><:duplicator:dupli_art_etat_pub:></label> |
||||
<div class="choix"> |
||||
<p class="explication"><:duplicator:dupli_art_etat_pub_expl:></p> |
||||
<input type="checkbox" name="duplic_article_etat_pub" class="checkbox" value="oui" id="duplic_article_etat_pub"[(#ENV{duplic_article_etat_pub,''}|=={oui}|oui)checked="checked"] /> |
||||
<label for="duplic_article_etat_pub"><:duplicator:dupli_art_etat_pub_label:></label> |
||||
</div> |
||||
</li> |
||||
</ul> |
||||
</fieldset> |
||||
|
||||
<input type="hidden" name="_meta_casier" value="duplicator/config" /> |
||||
<p class='boutons'><span class='image_loading'> </span><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p> |
||||
</div></form>] |
||||
</div> |
||||
|
||||
|
@ -0,0 +1,72 @@
|
||||
<?php |
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) { |
||||
return; |
||||
} |
||||
|
||||
include_spip('base/objets'); |
||||
|
||||
function formulaires_configurer_duplicator_saisies_dist() { |
||||
$declaration_objets = lister_tables_objets_sql(); |
||||
$config = lire_config('duplicator'); |
||||
|
||||
$saisies = array( |
||||
array( |
||||
'saisie' => 'choisir_objets', |
||||
'options' => array( |
||||
'nom' => 'objets', |
||||
'label' => _T('duplicator:configurer_objets_label'), |
||||
'defaut' => isset($config['objets']) ? $config['objets'] : array(), |
||||
), |
||||
), |
||||
); |
||||
|
||||
// Pour chaque objet déjà choisi, on ajoute des options |
||||
if (isset($config['objets'])) { |
||||
foreach ($config['objets'] as $table_objet_sql) { |
||||
// Si l'objet fait toujours parti des objets installés |
||||
if (isset($declaration_objets[$table_objet_sql]) and $declaration_objet = $declaration_objets[$table_objet_sql]) { |
||||
$table_objet = table_objet($table_objet_sql); |
||||
$objet = objet_type($table_objet); |
||||
|
||||
$groupe_objet = array( |
||||
'saisie' => 'fieldset', |
||||
'options' => array( |
||||
'nom' => "groupe_$table_objet", |
||||
'label' => _T($declaration_objet['texte_objets']), |
||||
), |
||||
'saisies' => array(), |
||||
); |
||||
|
||||
// Si l'objet a des champs |
||||
if (isset($declaration_objet['field']) and $champs = $declaration_objet['field']) { |
||||
foreach ($champs as $champ=>$sql) { |
||||
$champs[$champ] = $champ; |
||||
} |
||||
$groupe_objet['saisies'][] = array( |
||||
'saisie' => 'case', |
||||
'options' => array( |
||||
'nom' => "${table_objet}[personnaliser_champs]", |
||||
'label_case' => _T('duplicator:configurer_personnaliser_champs_label'), |
||||
'defaut' => (isset($config[$table_objet]['champs']) and $config[$table_objet]['champs']) ? 'on' : '', |
||||
), |
||||
); |
||||
$groupe_objet['saisies'][] = array( |
||||
'saisie' => 'checkbox', |
||||
'options' => array( |
||||
'nom' => "${table_objet}[champs]", |
||||
'label' => _T('duplicator:configurer_champs_label'), |
||||
'data' => $champs, |
||||
'defaut' => isset($config[$table_objet]['champs']) ? $config[$table_objet]['champs'] : array(), |
||||
'afficher_si' => "@${table_objet}[personnaliser_champs]@ == 'on'", |
||||
), |
||||
); |
||||
} |
||||
|
||||
$saisies[] = $groupe_objet; |
||||
} |
||||
} |
||||
} |
||||
|
||||
return $saisies; |
||||
} |
@ -1,6 +1,6 @@
|
||||
[(#AUTORISER{configurer,duplicator}|sinon_interdire_acces)] |
||||
|
||||
<h1 class="grostitre"><:duplicator:configuration_duplicator:></h1> |
||||
<h1 class="grostitre"><:duplicator:configurer_titre:></h1> |
||||
<div class="ajax"> |
||||
#FORMULAIRE_CONFIGURER_DUPLICATOR |
||||
</div> |
||||
|
Loading…
Reference in new issue