Reprise complète du code :
- nettoyage et optimisation de la partie config - amélioration de la gestion de la boîte info - gestion de la confirmation par modale - suppression des vieilles fonctions (on est en SPIP3 maintenant) - correction des LANG - ajout de logs dans logs/duplicator Je sais pas pourquoi les redirect déconnent pour l'instant, après l'action, mais on verra plus tard.v1
parent
062dd28113
commit
105f3b3a6b
@ -1,19 +1,12 @@
|
||||
* text=auto !eol
|
||||
/a_faire.txt -text
|
||||
action/dupliquer.php -text
|
||||
action/duplicator.php -text
|
||||
/duplicator_options.php -text
|
||||
/duplicator_pipeline.php -text
|
||||
formulaires/configurer_duplicator.html -text
|
||||
formulaires/duplicator_article_confirm.html -text
|
||||
formulaires/duplicator_article_confirm.php -text
|
||||
formulaires/duplicator_confirm.html -text
|
||||
formulaires/duplicator_confirm.php -text
|
||||
images/apsulis.png -text
|
||||
images/duplicator.gif -text
|
||||
inclure/duplicator_article.html -text
|
||||
inclure/duplicator_rubrique.html -text
|
||||
lang/duplicator_fr.php -text
|
||||
lang/paquet-duplicator_fr.php -text
|
||||
noisettes/bouton_duplicator.html -text
|
||||
/paquet.xml -text
|
||||
prive/squelettes/contenu/configurer_duplicator.html -text
|
||||
prive/squelettes/contenu/duplicator.html -text
|
||||
prive/squelettes/contenu/duplicator_article.html -text
|
||||
theme/img/duplicator.png -text
|
||||
|
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/***************************************************************************\
|
||||
* SPIP, Systeme de publication pour l'internet *
|
||||
* *
|
||||
* Copyright (c) 2001-2012 *
|
||||
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
||||
* *
|
||||
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
||||
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
||||
\***************************************************************************/
|
||||
|
||||
if (!defined('_ECRIRE_INC_VERSION')) return;
|
||||
|
||||
include_spip('inc/charsets'); # pour le nom de fichier
|
||||
|
||||
/**
|
||||
* Dupliquer le contenu d'un objet
|
||||
*
|
||||
* @param null $id_objet
|
||||
* @return void
|
||||
*/
|
||||
function action_duplicator_dist($args=null) {
|
||||
|
||||
if (is_null($args)){
|
||||
$securiser_action = charger_fonction('securiser_action', 'inc');
|
||||
$args = $securiser_action();
|
||||
}
|
||||
list($objet,$id_objet) = explode(':',$args);
|
||||
|
||||
if ( ($objet=="rubrique") && ($id=intval($id_objet)) ){
|
||||
// On duplique la rubrique
|
||||
spip_log("Duplication de la rubrique : $id.",'duplicator');
|
||||
$nouvelle_rubrique = dupliquer_rubrique($id);
|
||||
spip_log("Nouvelle rubrique créée : id_rubrique $nouvelle_rubrique.",'duplicator');
|
||||
include_spip('inc/header');
|
||||
if ($redirect = _request('redirect'))
|
||||
redirige_par_entete(str_replace('&','&',$redirect));
|
||||
redirige_par_entete(generer_url_ecrire("rubriques","id_rubrique=".$nouvelle_rubrique, "&"));
|
||||
}
|
||||
|
||||
if ( ($objet=="article") && ($id=intval($id_objet)) ){
|
||||
// On duplique l article
|
||||
$rub = sql_getfetsel('id_rubrique', 'spip_articles', 'id_article='. $id);
|
||||
spip_log("Duplication de l'article : $id dans la rubrique $rub.",'duplicator');
|
||||
$nouvel_article = dupliquer_article(intval($id),intval($rub));
|
||||
spip_log("Nouvel article créé dans la rubrique $rub : id_article $nouvel_article.",'duplicator');
|
||||
include_spip('inc/headers');
|
||||
if ($redirect = _request('redirect'))
|
||||
redirige_par_entete(str_replace('&','&',$redirect));
|
||||
redirige_par_entete(generer_url_ecrire("articles","id_article=".$nouvel_article, "&"));
|
||||
}
|
||||
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
[<div style='color:red; text-align: center;padding:10px; border: 1px solid red; font-weight: bold'>
|
||||
<p><strong>(#ENV*{message_ok}|table_valeur{message})</strong></p>
|
||||
<p><a href="[(#URL_ECRIRE{article}|parametre_url{'id_article',[(#ENV*{message_ok}|table_valeur{cible})]})]" title="Rafraichir">[(#ENV*{message_ok}|table_valeur{type_retour})]</a></p>
|
||||
<p><small>Utilisiez-vous SPIP Sondages ? <a href="[(#URL_ECRIRE{admin_plugin})]">Pensez à le réactiver !</a></small></p>
|
||||
</div>]
|
||||
|
||||
[(#EDITABLE)
|
||||
<div style='color:red; text-align: center;padding:10px; border: 1px solid red; font-weight: bold'>
|
||||
<h2>/!\ ATTENTION /!\</h2>
|
||||
[(#PLUGIN{sondages}|oui)
|
||||
<p>Cette fonctionnalité n'est pas compatible avec le plugin SPIP Sondages !</p>
|
||||
<p><a href="[(#URL_ECRIRE{admin_plugin})]">Vous devez le désactiver</a> le temps de réaliser votre duplication.</p>
|
||||
]
|
||||
[(#PLUGIN{sondages}|non)
|
||||
<p>L'article et ses mots clefs seront dupliqués dans la même rubrique.</p>
|
||||
<p>Cette opération ne peut être annulée.</p>
|
||||
|
||||
<form action="[(#ENV{action})]" method="post" accept-charset="utf-8">
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<input type="submit" value="<:duplicator:message_annuler:>" name='annuler' /> <input type="submit" value="<:duplicator:message_confirmer:>" name='confirmer' />
|
||||
</form>
|
||||
]
|
||||
</div>
|
||||
]
|
@ -1,56 +0,0 @@
|
||||
<?php
|
||||
/***************************************************************************\
|
||||
* Plugin Duplicator pour Spip 2.0
|
||||
* Licence GPL (c) 2010 - Apsulis
|
||||
* Duplication de rubriques et d'articles
|
||||
*
|
||||
\***************************************************************************/
|
||||
|
||||
function formulaires_duplicator_article_confirm_charger_dist(){
|
||||
$valeurs = array();
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_duplicator_article_confirm_verifier_dist($article){
|
||||
$erreurs = array();
|
||||
|
||||
if (!$article)
|
||||
$erreurs['message_erreur'] = 'Une erreur est survenue.';
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_duplicator_article_confirm_traiter_dist($article){
|
||||
|
||||
if(_request('confirmer')){
|
||||
include_spip('action/dupliquer');
|
||||
|
||||
// On duplique l article
|
||||
$champs = array('id_rubrique');
|
||||
$where = array(
|
||||
'id_article='.$article
|
||||
);
|
||||
$res = sql_select($champs, "spip_articles", $where);
|
||||
$r = sql_fetch($res);
|
||||
$rubrique = $r['id_rubrique'];
|
||||
spip_log("ID RUBRIQUE : $rubrique");
|
||||
spip_log("ID ARTICLE : $article");
|
||||
$nouvel_article = dupliquer_article(intval($article),intval($rubrique));
|
||||
|
||||
$message = array('message_ok'=>array(
|
||||
'message'=>_T('duplicator:operation_executee'),
|
||||
'cible'=>$nouvel_article,
|
||||
'type_retour'=>_T('duplicator:operation_retour_ok_article')
|
||||
));
|
||||
}
|
||||
if(_request('annuler')){
|
||||
$message = array('message_ok'=>array(
|
||||
'message'=>_T('duplicator:operation_annulee'),
|
||||
'cible'=>$article,
|
||||
'type_retour'=>_T('duplicator:operation_retour_ko_article')
|
||||
));
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
[<div style='color:red; text-align: center;padding:10px; border: 1px solid red; font-weight: bold'>
|
||||
<p><strong>(#ENV*{message_ok}|table_valeur{message})</strong></p>
|
||||
<p><a href="[(#URL_ECRIRE{rubrique}|parametre_url{'id_rubrique',[(#ENV*{message_ok}|table_valeur{cible})]})]" title="Rafraichir">[(#ENV*{message_ok}|table_valeur{type_retour})]</a></p>
|
||||
<p><small>Utilisiez-vous SPIP Sondages ? <a href="[(#URL_ECRIRE{admin_plugin})]">Pensez à le réactiver !</a></small></p>
|
||||
</div>]
|
||||
|
||||
[(#EDITABLE)
|
||||
<div style='color:red; text-align: center;padding:10px; border: 1px solid red; font-weight: bold'>
|
||||
<h2>/!\ ATTENTION /!\</h2>
|
||||
[(#PLUGIN{sondages}|oui)
|
||||
<p>Cette fonctionnalité n'est pas compatible avec le plugin SPIP Sondages !</p>
|
||||
<p><a href="[(#URL_ECRIRE{admin_plugin})]">Vous devez le désactiver</a> le temps de réaliser votre duplication.</p>
|
||||
]
|
||||
[(#PLUGIN{sondages}|non)
|
||||
<p>Ses sous-rubriques, articles et mots clefs seront également dupliqués.</p>
|
||||
<p>Cette opération ne peut être annulée.</p>
|
||||
|
||||
<form action="[(#ENV{action})]" method="post" accept-charset="utf-8">
|
||||
#ACTION_FORMULAIRE{#ENV{action}}
|
||||
<input type="submit" value="<:duplicator:message_annuler:>" name='annuler' /> <input type="submit" value="<:duplicator:message_confirmer:>" name='confirmer' />
|
||||
</form>
|
||||
]
|
||||
</div>
|
||||
]
|
@ -1,47 +0,0 @@
|
||||
<?php
|
||||
/***************************************************************************\
|
||||
* Plugin Duplicator pour Spip 2.0
|
||||
* Licence GPL (c) 2010 - Apsulis
|
||||
* Duplication de rubriques et d'articles
|
||||
*
|
||||
\***************************************************************************/
|
||||
|
||||
function formulaires_duplicator_confirm_charger_dist(){
|
||||
$valeurs = array();
|
||||
|
||||
return $valeurs;
|
||||
}
|
||||
|
||||
function formulaires_duplicator_confirm_verifier_dist($rubrique){
|
||||
$erreurs = array();
|
||||
|
||||
if (!$rubrique)
|
||||
$erreurs['message_erreur'] = 'Une erreur est survenue.';
|
||||
|
||||
return $erreurs;
|
||||
}
|
||||
|
||||
function formulaires_duplicator_confirm_traiter_dist($rubrique){
|
||||
|
||||
if(_request('confirmer')){
|
||||
include_spip('action/dupliquer');
|
||||
|
||||
// On duplique la rubrique
|
||||
$nouvelle_rubrique = dupliquer_rubrique($rubrique);
|
||||
|
||||
$message = array('message_ok'=>array(
|
||||
'message'=>_T('duplicator:operation_executee'),
|
||||
'cible'=>$nouvelle_rubrique,
|
||||
'type_retour'=>_T('duplicator:operation_retour_ok')
|
||||
));
|
||||
}
|
||||
if(_request('annuler')){
|
||||
$message = array('message_ok'=>array(
|
||||
'message'=>_T('duplicator:operation_annulee'),
|
||||
'cible'=>$rubrique,
|
||||
'type_retour'=>_T('duplicator:operation_retour_ko')
|
||||
));
|
||||
}
|
||||
|
||||
return $message;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 1.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.3 KiB |
@ -1,2 +0,0 @@
|
||||
[(#URL_ECRIRE{duplicator_article,id_objet=#ENV{id_article}}|parametre_url{type,article}|icone_horizontale{<:duplicator:icone_dupliquer_article:>,duplicator.gif})]
|
||||
|
@ -1,2 +0,0 @@
|
||||
[(#URL_ECRIRE{duplicator,id_objet=#ENV{id_rubrique}}|parametre_url{type,rubrique}|icone_horizontale{<:duplicator:icone_dupliquer:>,duplicator.gif})]
|
||||
|
@ -0,0 +1,34 @@
|
||||
#SET{message,"Êtes-vous sûr de vouloir dupliquer tout le contenu de cette rubrique ?"}
|
||||
[(#OBJET|=={article}|oui)
|
||||
#SET{message,"Êtes-vous sûr de vouloir dupliquer cet article ?"}
|
||||
]
|
||||
<script>
|
||||
jQuery(function() {
|
||||
jQuery(document).on('click','.dupliquer a', function(e) {
|
||||
lien = jQuery(this).attr('href');
|
||||
jQuery('<div></div>')
|
||||
.html('<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>#GET{message}</p>')
|
||||
.dialog({
|
||||
resizable: false,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"Confirmer": function() {
|
||||
window.location.href = lien;
|
||||
jQuery(this).dialog( "close" );
|
||||
},
|
||||
"Annuler": function() {
|
||||
jQuery(this).dialog( "close" );
|
||||
}
|
||||
}
|
||||
});
|
||||
e.preventDefault();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<span class="icone s24 horizontale dupliquer">
|
||||
[(#OBJET|=={rubrique}|oui)
|
||||
<a href="[(#URL_ACTION_AUTEUR{duplicator,#OBJET:#ID_OBJET,#URL_ECRIRE{rubrique,id_rubrique=#ID_OBJET}})]"><img src="#CHEMIN{theme/img/duplicator.png}" width='24' height='24' /><b><:duplicator:action_dupliquer_rubrique:></b></a>
|
||||
][(#OBJET|=={article}|oui)
|
||||
<a href="[(#URL_ACTION_AUTEUR{duplicator,#OBJET:#ID_OBJET,#URL_ECRIRE{article,id_article=#ID_OBJET}})]"><img src="#CHEMIN{theme/img/duplicator.png}" width='24' height='24' /><b><:duplicator:action_dupliquer_article:></b></a>
|
||||
]
|
||||
</span>
|
@ -1,9 +0,0 @@
|
||||
#SET{tri,#ENV{tri}|sinon{nom}}
|
||||
#SET{ordre,#ENV{ordre}|sinon{''}}
|
||||
|
||||
<h1 class="grostitre">Dupliquer une rubrique</h1>
|
||||
|
||||
|
||||
<h2>Duplication de la rubrique [(#ENV{id_objet})] (<BOUCLE_NomRub(RUBRIQUES){id_rubrique=#ENV{id_objet}}>#TITRE</BOUCLE_NomRub>)</h2>
|
||||
|
||||
<div class="ajax">#FORMULAIRE_DUPLICATOR_CONFIRM{#ENV{id_objet}}</div>
|
@ -1,9 +0,0 @@
|
||||
#SET{tri,#ENV{tri}|sinon{nom}}
|
||||
#SET{ordre,#ENV{ordre}|sinon{''}}
|
||||
|
||||
<h1 class="grostitre">Dupliquer un article</h1>
|
||||
|
||||
|
||||
<h2>Duplication de l'article [(#ENV{id_objet})] (<BOUCLE_NomArt(ARTICLES){id_article=#ENV{id_objet}}{statut IN prop,prepa,publie,refuse,poubelle}>#TITRE</BOUCLE_NomArt>)</h2>
|
||||
|
||||
<div class="ajax">#FORMULAIRE_DUPLICATOR_ARTICLE_CONFIRM{#ENV{id_objet}}</div>
|
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
Loading…
Reference in New Issue