Changeset 85985 in spip-zone


Ignore:
Timestamp:
Nov 11, 2014, 10:45:12 PM (5 years ago)
Author:
frederic.bouteille.mae@…
Message:

Version_2, mise à jour en 2.1 avec changement de préfixe, de certains libellés et archivage des articles si plugin ciarchive installé

Location:
_plugins_/nouvelle_version/branches/version_2
Files:
13 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/nouvelle_version/branches/version_2/action/dupliquer.php

    r56079 r85985  
    22/***************************************************************************\
    33 * Plugin Nouvelle Version pour Spip 2.0
    4  * Licence GPL (c) 2011
     4 * Licence GPL (c) 2011-2014
    55 * Modération de la nouvelle version d'un article
    66 *
     
    1313 * - Conserve le statut de publication de l'article source
    1414 */
    15 function dupliquer_article($article,$rubrique){
    16         include_spip('action/editer_article');
    17         include_spip('inc/modifier_article');
    18         include_spip('inc/modifier');
     15function dupliquer_article($article, $rubrique)
     16{
     17    include_spip('action/editer_article');
     18    include_spip('inc/modifier_article');
     19    include_spip('inc/modifier');
    1920
    20         // On lit l'article qui va etre dupliqué
    21         $champs = array('*');
    22         $from = 'spip_articles';
    23         $where = array(
    24                 "id_article=".$article
    25         );
    26         $infos = sql_allfetsel($champs, $from, $where);
    27         // On choisi les champs que l'on veut conserver
    28         // TODO éventuellement passer cette variable en CFG pour choisir depuis SPIP les champs à conserver ?
    29         $champs_dupliques = array(
    30                 'surtitre','titre','soustitre','descriptif','chapo','texte','ps','accepter_forum','lang','langue_choisie','nom_site','url_site'
    31         );
    32         foreach ($champs_dupliques as $key => $value) {
    33                 $infos_de_l_article[$value] = $infos[0][$value];
    34         }
    35        
    36         // On cherche ses mots clefs
    37         $mots_clefs_de_l_article = lire_les_mots_clefs($article,'article');
     21    // On lit l'article qui va etre dupliqué
     22    $champs = array('*');
     23    $from = 'spip_articles';
     24    $where = array(
     25        "id_article=" . $article
     26    );
     27    $infos = sql_allfetsel($champs, $from, $where);
     28    // On choisi les champs que l'on veut conserver
     29    // TODO éventuellement passer cette variable en CFG pour choisir depuis SPIP les champs à conserver ?
     30    $champs_dupliques = array(
     31        'surtitre',
     32        'titre',
     33        'soustitre',
     34        'descriptif',
     35        'chapo',
     36        'texte',
     37        'ps',
     38        'accepter_forum',
     39        'lang',
     40        'langue_choisie',
     41        'nom_site',
     42        'url_site'
     43    );
     44    foreach ($champs_dupliques as $key => $value) {
     45        $infos_de_l_article[$value] = $infos[0][$value];
     46    }
    3847
    39         //////////////
    40         // ON DUPLIQUE
    41         //////////////
    42         // On le clone avec les champs choisis ci-dessus, il sera NON publié par défaut
    43         $id_article = insert_article($rubrique);
    44         revision_article($id_article, $infos_de_l_article);
    45        
    46         // On lui rend son statut
    47         //$maj_statut_article = sql_updateq("spip_articles", array('statut' => $infos[0]['statut']), "id_article=".$id_article);
    48        
    49         // On lui rend met version_of à 1
    50         $maj_statut_article = sql_updateq("spip_articles", array('version_of' => $article), "id_article=".$id_article);
     48    // On cherche ses mots clefs
     49    $mots_clefs_de_l_article = lire_les_mots_clefs($article, 'article');
    5150
    52         // On lui remet ses mots clefs
    53         remettre_les_mots_clefs($mots_clefs_de_l_article,$id_article,'article');
    54        
    55         // On lui copie ses logos
    56         dupliquer_logo($article,$id_article,'article',false);
    57         dupliquer_logo($article,$id_article,'article',true);
    58        
    59         return $id_article;
     51    //////////////
     52    // ON DUPLIQUE
     53    //////////////
     54    // On le clone avec les champs choisis ci-dessus, il sera NON publié par défaut
     55    $id_article = insert_article($rubrique);
     56    revision_article($id_article, $infos_de_l_article);
     57
     58    // On lui rend son statut
     59    // $maj_statut_article = sql_updateq("spip_articles", array('statut' => $infos[0]['statut']),
     60    // "id_article=" . $id_article);
     61
     62    // On lui rend met version_of à 1
     63    $maj_statut_article = sql_updateq("spip_articles", array('version_of' => $article), "id_article=" . $id_article);
     64
     65    // On lui remet ses mots clefs
     66    remettre_les_mots_clefs($mots_clefs_de_l_article, $id_article, 'article');
     67
     68    // On lui copie ses logos
     69    dupliquer_logo($article, $id_article, 'article', false);
     70    dupliquer_logo($article, $id_article, 'article', true);
     71
     72    return $id_article;
    6073}
    6174
    6275
    63 function lire_les_mots_clefs($id,$type){
    64         $champs = array('id_mot');
    65         $from = 'spip_mots_'.$type.'s';
    66         $where = array(
    67                 "id_$type=".$id
    68         );
    69         $mots_clefs = sql_allfetsel($champs, $from, $where);
    70        
    71         return $mots_clefs;
     76function lire_les_mots_clefs($id, $type)
     77{
     78    $champs = array('id_mot');
     79    $from = 'spip_mots_' . $type . 's';
     80    $where = array(
     81        "id_$type=" . $id
     82    );
     83    $mots_clefs = sql_allfetsel($champs, $from, $where);
     84
     85    return $mots_clefs;
    7286}
    73 function remettre_les_mots_clefs($mots,$id,$type){
    74         foreach($mots as $champ => $valeur){
    75                 $n = sql_insertq(
    76                         'spip_mots_'.$type.'s',
    77                         array(
    78                                 'id_mot' => $valeur['id_mot'],
    79                                 'id_'.$type => $id
    80                         )
    81                 );
    82         }
    83        
    84         return true;
     87function remettre_les_mots_clefs($mots, $id, $type)
     88{
     89    foreach ($mots as $champ => $valeur) {
     90        $n = sql_insertq(
     91            'spip_mots_' . $type . 's',
     92            array(
     93                'id_mot' => $valeur['id_mot'],
     94                'id_' . $type => $id
     95            )
     96        );
     97    }
     98
     99    return true;
    85100}
    86101
    87 /* FONCTION HONTEUSEMENT ADAPTEE DE DOCUCOPIEUR ==> http://www.spip-contrib.net/DocuCopieur */
     102/* FONCTION HONTEUSEMENT ADAPTEE DE DOCUCOPIEUR ==> http://www . spip-contrib . net/DocuCopieur */
    88103/* cette fonction realise la copie d'un logo d'article et de son logo de survol */
    89 /* vers le nouvel article. */
    90 function dupliquer_logo($id_source, $id_destination, $type='article', $bsurvol = false ){
    91         include_spip('action/iconifier');
    92         global $formats_logos;
     104/* vers le nouvel article .  */
     105function dupliquer_logo($id_source, $id_destination, $type = 'article', $bsurvol = false)
     106{
     107    include_spip('action/iconifier');
     108    global $formats_logos;
    93109
    94         if ( $bsurvol == true )
    95         {
    96                 $logo_type = 'off';     // logo survol
    97         } else  $logo_type = 'on';      // logo
     110    if ($bsurvol == true) {
     111        $logo_type = 'off'; // logo survol
     112    } else {
     113        $logo_type = 'on';  // logo
     114    }
    98115
    99         $chercher_logo = charger_fonction('chercher_logo', 'inc');
     116    $chercher_logo = charger_fonction('chercher_logo', 'inc');
    100117
    101         $logo_source = $chercher_logo($id_source, 'id_'.$type, $logo_type );
    102         $logo_source = $logo_source[0];
    103         if ( !file_exists($logo_source) ) return false;
     118    $logo_source = $chercher_logo($id_source, 'id_' . $type, $logo_type );
     119    $logo_source = $logo_source[0];
     120    if (!file_exists($logo_source)) {
     121        return false;
     122    }
    104123
    105         $size = @getimagesize($logo_source);
    106         $mime = !$size ? '': $size['mime'];
    107         $source['name'] = basename($logo_source);
    108         $source['type'] = $mime;
    109         $source['tmp_name'] = $logo_source;
    110         $source['error'] = 0;
    111         $source['size'] = @filesize($logo_source);
     124    $size = @getimagesize($logo_source);
     125    $mime = !$size ? '': $size['mime'];
     126    $source['name'] = basename($logo_source);
     127    $source['type'] = $mime;
     128    $source['tmp_name'] = $logo_source;
     129    $source['error'] = 0;
     130    $source['size'] = @filesize($logo_source);
    112131
    113         action_spip_image_ajouter_dist(substr($type,0,3). $logo_type .$id_destination, 'local', $source );
    114         return true;
     132    action_spip_image_ajouter_dist(substr($type, 0, 3) .  $logo_type  . $id_destination, 'local', $source);
     133
     134    return true;
    115135}
  • _plugins_/nouvelle_version/branches/version_2/action/remplacer.php

    r56079 r85985  
    11<?php
    22/***************************************************************************\
    3  * Plugin Nouvelle Version pour Spip 2.0
    4  * Licence GPL (c) 2011
     3 * Plugin Nouvelle Version pour Spip 2 . 0
     4 * Licence GPL (c) 2011-2014
    55 * Modération de la nouvelle version d'un article
    66 *
     
    1313 * - Libère les 2 article de l'édition de l'auteur courant
    1414 */
    15 function remplacer_article($article,$article_orig,$newstatut='poubelle'){
     15function remplacer_article($article, $article_orig, $newstatut = 'poubelle')
     16{
    1617
    17         include_spip('action/editer_article');
    18         include_spip('inc/modifier_article');
    19         include_spip('inc/modifier');
     18    include_spip('action/editer_article');
     19    include_spip('inc/modifier_article');
     20    include_spip('inc/modifier');
    2021
    21         //// indispensable include pour liberer les fichiers
    22         include_spip('inc/drapeau_edition');
    23        
    24         //// SQL pour récuperer les contenus des articles
    25         $champs = array('*');
    26         $from = 'spip_articles';
    27         $where = array( "id_article=".$article);
    28         $whereOrig = array( "id_article=".$article_orig);
    29        
    30         /// On execute le SQL articles
    31         $infosArticle = sql_allfetsel($champs, $from, $where);
    32         $infosArticleOrig = sql_allfetsel($champs, $from, $whereOrig);
    33        
    34         /// SQL pour récuperer les auteurs des articles
    35         $champs_auteur = array('id_auteur');
    36         $from_auteur = 'spip_auteurs_articles';
    37        
    38         /// On execute le SQL auteurs
    39         $infosAuteurArticle = sql_allfetsel($champs_auteur, $from_auteur, $where);
    40         $infosAuteurArticleOrig = sql_allfetsel($champs_auteur, $from_auteur, $whereOrig);
    41        
    42        
    43         // On choisi les champs que l'on veut conserver
    44         // Et on garde les valeurs dans deux tableaux distincts pour l'article et l'article d'origine
    45         // NB: On recupère aussi les statuts
    46         $champs_dupliques = array('surtitre','titre','soustitre','id_rubrique','descriptif','chapo','texte','ps','date','id_secteur','maj','export','statut','date_redac','accepter_forum','date_modif','lang','langue_choisie','id_trad','extra','nom_site','url_site');
    47         foreach ($champs_dupliques as $key => $value) {
    48                 $infos_de_l_article[$value] = $infosArticle[0][$value];
    49                 $infos_de_l_article_orig[$value] = $infosArticleOrig[0][$value];
    50         }
     22    //// indispensable include pour liberer les fichiers
     23    include_spip('inc/drapeau_edition');
    5124
    52         // On les update les deux avec les infos de l'autre via la fontion articles_set de spip
    53                 articles_set($article_orig,$infos_de_l_article);
    54                 articles_set($article,$infos_de_l_article_orig);
     25    //// SQL pour récuperer les contenus des articles
     26    $champs = array('*');
     27    $from = 'spip_articles';
     28    $where = array( "id_article=" . $article);
     29    $whereOrig = array( "id_article=" . $article_orig);
    5530
    56         /// On update la rubrique parente sur ses champs maj et date en repassant article_orig à publie
    57                 instituer_article($article_orig, array('statut'=>'publie','id_parent'=>$infos_de_l_article['id_rubrique']) );
    58        
    59         /// On passe article à archi si le statut existe
    60                 instituer_article($article, array('statut'=>$newstatut,'id_parent'=>$infos_de_l_article_orig['id_rubrique']) );
    61                        
    62         /// On update les deux articles avec les bons auteurs
    63                 $maj_auteur_article_orig = sql_updateq("spip_auteurs_articles", $infosAuteurArticle[0], "id_article=".$article_orig);
    64                 $maj_auteur_article = sql_updateq("spip_auteurs_articles", $infosAuteurArticleOrig[0], "id_article=".$article);
    65        
    66         //DEBLOQUAGE DES 2 ARTICLES pour l'auteur courant
    67                 debloquer_edition($GLOBALS['visiteur_session']['id_auteur'], $article, 'article');
    68                 debloquer_edition($GLOBALS['visiteur_session']['id_auteur'], $article_orig, 'article');
    69        
    70         return $id_article;
     31    /// On execute le SQL articles
     32    $infosArticle = sql_allfetsel($champs, $from, $where);
     33    $infosArticleOrig = sql_allfetsel($champs, $from, $whereOrig);
     34
     35    /// SQL pour récuperer les auteurs des articles
     36    $champs_auteur = array('id_auteur');
     37    $from_auteur = 'spip_auteurs_articles';
     38
     39    /// On execute le SQL auteurs
     40    $infosAuteurArticle = sql_allfetsel($champs_auteur, $from_auteur, $where);
     41    $infosAuteurArticleOrig = sql_allfetsel($champs_auteur, $from_auteur, $whereOrig);
     42
     43
     44    // On choisi les champs que l'on veut conserver
     45    // Et on garde les valeurs dans deux tableaux distincts pour l'article et l'article d'origine
     46    // NB: On recupère aussi les statuts
     47    $champs_dupliques = array(
     48        'surtitre',
     49        'titre',
     50        'soustitre',
     51        'id_rubrique',
     52        'descriptif',
     53        'chapo',
     54        'texte',
     55        'ps',
     56        'date',
     57        'id_secteur',
     58        'maj',
     59        'export',
     60        'statut',
     61        'date_redac',
     62        'accepter_forum',
     63        'date_modif',
     64        'lang',
     65        'langue_choisie',
     66        'id_trad',
     67        'extra',
     68        'nom_site',
     69        'url_site'
     70    );
     71    foreach ($champs_dupliques as $key => $value) {
     72        $infos_de_l_article[$value] = $infosArticle[0][$value];
     73        $infos_de_l_article_orig[$value] = $infosArticleOrig[0][$value];
     74    }
     75
     76    // On les update les deux avec les infos de l'autre via la fontion articles_set de spip
     77        articles_set($article_orig, $infos_de_l_article);
     78        articles_set($article, $infos_de_l_article_orig);
     79
     80    /// On update la rubrique parente sur ses champs maj et date en repassant article_orig à publie
     81        instituer_article($article_orig, array('statut'=>'publie', 'id_parent'=>$infos_de_l_article['id_rubrique']));
     82
     83    /// On passe article à archi si le statut existe
     84        instituer_article($article, array('statut'=>$newstatut, 'id_parent'=>$infos_de_l_article_orig['id_rubrique']));
     85
     86    /// On update les deux articles avec les bons auteurs
     87        $maj_auteur_article_orig = sql_updateq(
     88            "spip_auteurs_articles",
     89            $infosAuteurArticle[0],
     90            "id_article=" . $article_orig
     91        );
     92        $maj_auteur_article = sql_updateq(
     93            "spip_auteurs_articles",
     94            $infosAuteurArticleOrig[0],
     95            "id_article=" . $article
     96        );
     97
     98    //DEBLOQUAGE DES 2 ARTICLES pour l'auteur courant
     99    debloquer_edition($GLOBALS['visiteur_session']['id_auteur'], $article, 'article');
     100    debloquer_edition($GLOBALS['visiteur_session']['id_auteur'], $article_orig, 'article');
     101
     102    return $id_article;
    71103}
  • _plugins_/nouvelle_version/branches/version_2/base/versioning.php

    r85983 r85985  
    11<?php
    2     if (!defined("_ECRIRE_INC_VERSION")) return;
    3     function duplicator_declarer_tables_principales($tables_principales){
    4             // Extension de la table articles
    5             $tables_principales['spip_articles']['field']['version_of'] = "int(11) NOT NULL";     
    6             return $tables_principales;
    7     }
    8     ?>
     2/***************************************************************************\
     3 * Plugin Nouvelle Version pour Spip 2.0
     4 * Licence GPL (c) 2011-2014
     5 * Modération de la nouvelle version d'un article
     6 *
     7\***************************************************************************/
     8
     9if (!defined("_ECRIRE_INC_VERSION")) {
     10    return;
     11}
     12function versioning_declarer_tables_principales($tables_principales)
     13{
     14    // Extension de la table articles
     15    $tables_principales['spip_articles']['field']['version_of'] = "int(11) NOT NULL";
     16    return $tables_principales;
     17}
     18
     19?>
  • _plugins_/nouvelle_version/branches/version_2/base/versioning_install.php

    r85983 r85985  
    1     <?php
    2     if (!defined("_ECRIRE_INC_VERSION")) return;
    3     function duplicator_upgrade($nom_meta_base_version,$version_cible){
    4             $current_version = 0.0;
    5             if ((!isset($GLOBALS['meta'][$nom_meta_base_version]))
    6             || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    7                     include_spip('base/duplicator');
    8                     // cas d'une installation
    9                     if ($current_version==0.0){
    10                             include_spip('base/create');
    11                             maj_tables('spip_articles');
    12                             ecrire_meta($nom_meta_base_version, $current_version=$version_cible, 'non');
    13                     }
    14             }
     1<?php
     2/***************************************************************************\
     3 * Plugin Nouvelle Version pour Spip 2 . 0
     4 * Licence GPL (c) 2011-2014
     5 * Modération de la nouvelle version d'un article
     6 *
     7\***************************************************************************/
     8
     9if (!defined("_ECRIRE_INC_VERSION")) {
     10    return;
     11}
     12
     13function versioning_upgrade($nom_meta_base_version, $version_cible)
     14{
     15    $current_version = 0.0;
     16    if ((!isset($GLOBALS['meta'][$nom_meta_base_version]))
     17        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!= $version_cible)) {
     18        include_spip('base/versioning');
     19            // cas d'une installation
     20        if ($current_version == 0.0) {
     21            include_spip('base/create');
     22            maj_tables('spip_articles');
     23            ecrire_meta($nom_meta_base_version, $current_version = $version_cible, 'non');
     24        }
    1525    }
    16     function duplicator_vider_tables($nom_meta_base_version) {
    17             sql_alter("TABLE spip_articles DROP version_of");
    18             effacer_meta($nom_meta_base_version);
    19     }
    20     ?>
     26}
     27function versioning_vider_tables($nom_meta_base_version)
     28{
     29    sql_alter("TABLE spip_articles DROP version_of");
     30    effacer_meta($nom_meta_base_version);
     31}
     32
     33?>
  • _plugins_/nouvelle_version/branches/version_2/formulaires/publiversion_article_confirm.html

    r85983 r85985  
    77<div style='color:red; text-align: center;padding:10px; border: 1px solid red; font-weight: bold'>
    88        <h2>/!\ ATTENTION /!\</h2>
    9        
    10        
     9
     10
    1111        <p>La version sera publiée et l'article en ligne actuellement sera archivé</p>
    1212
    1313        <form action="[(#ENV{action})]" method="post" accept-charset="utf-8">
    1414                #ACTION_FORMULAIRE{#ENV{action}}
    15                 <input type="submit" value="<:duplicator:message_annuler:>" name='annuler' /> <input type="submit" value="<:duplicator:message_confirmer:>" name='confirmer' />
     15                <input type="submit" value="<:versioning:message_annuler:>" name='annuler' /> <input type="submit" value="<:versioning:message_confirmer:>" name='confirmer' />
    1616        </form>
    1717
  • _plugins_/nouvelle_version/branches/version_2/formulaires/publiversion_article_confirm.php

    r85983 r85985  
    22/***************************************************************************\
    33 * Plugin Nouvelle Version pour Spip 2.0
    4  * Licence GPL (c) 2011
     4 * Licence GPL (c) 2011-2014
    55 * Modération de la nouvelle version d'un article
    66 *
    77\***************************************************************************/
    88
    9 function formulaires_publicator_article_confirm_charger_dist(){
    10         $valeurs = array();
    11        
    12         return $valeurs;
     9function formulaires_publiversion_article_confirm_charger_dist()
     10{
     11    $valeurs = array();
     12
     13    return $valeurs;
    1314}
    1415
    15 function formulaires_publicator_article_confirm_verifier_dist($article,$article_orig){
    16         $erreurs = array();
     16function formulaires_publiversion_article_confirm_verifier_dist($article, $article_orig)
     17{
     18    $erreurs = array();
    1719
    18         if (!$article || !$article_orig)
    19                 $erreurs['message_erreur'] = 'Une erreur est survenue.';
    20                
    21         return $erreurs;
     20    if (!$article || !$article_orig) {
     21        $erreurs['message_erreur'] = 'Une erreur est survenue.';
     22    }
     23
     24    return $erreurs;
    2225}
    2326
    24 function formulaires_publicator_article_confirm_traiter_dist($article,$article_orig,$newstatut='poubelle'){
    25        
    26         if(_request('confirmer')){
    27                 include_spip('action/remplacer');
     27function formulaires_publiversion_article_confirm_traiter_dist($article, $article_orig, $newstatut = 'poubelle')
     28{
    2829
    29 spip_log("ID ARTICLE CIBLE : $article");
    30 spip_log("ID ARTICLE VERSION : $article_orig");
     30    if (_request('confirmer')) {
     31        include_spip('action/remplacer');
    3132
    32                 $remplacer_article = remplacer_article(intval($article),intval($article_orig),$newstatut);
     33        spip_log("ID ARTICLE CIBLE : $article");
     34        spip_log("ID ARTICLE VERSION : $article_orig");
    3335
    34                 $message = array('message_ok'=>array(
    35                 'message'=>_T('duplicator:operation_executee'),
    36                 'cible'=>$article_orig,
    37                 'type_retour'=>_T('duplicator:operation_retour_ok_article_publi')
    38                 ));                     
    39         }
    40         if(_request('annuler')){
    41                 $message = array('message_ok'=>array(
    42                 'message'=>_T('duplicator:operation_annulee'),
    43                 'cible'=>$article,
    44                 'type_retour'=>_T('duplicator:operation_retour_ko_article')
    45                 ));                     
    46         }
     36        $remplacer_article = remplacer_article(intval($article), intval($article_orig), $newstatut);
    4737
    48         return $message;
     38        $message = array('message_ok'=>array(
     39        'message'=>_T('versioning:operation_executee'),
     40        'cible'=>$article_orig,
     41        'type_retour'=>_T('versioning:operation_retour_ok_article_publi')
     42        ));
     43    }
     44    if (_request('annuler')) {
     45        $message = array('message_ok'=>array(
     46        'message'=>_T('versioning:operation_annulee'),
     47        'cible'=>$article,
     48        'type_retour'=>_T('versioning:operation_retour_ko_article')
     49        ));
     50    }
     51
     52    return $message;
    4953}
  • _plugins_/nouvelle_version/branches/version_2/formulaires/versioning_article_confirm.html

    r85983 r85985  
    1212        <form action="[(#ENV{action})]" method="post" accept-charset="utf-8">
    1313                #ACTION_FORMULAIRE{#ENV{action}}
    14                 <input type="submit" value="<:duplicator:message_annuler:>" name='annuler' /> <input type="submit" value="<:duplicator:message_confirmer:>" name='confirmer' />
     14                <input type="submit" value="<:versioning:message_annuler:>" name='annuler' /> <input type="submit" value="<:versioning:message_confirmer:>" name='confirmer' />
    1515        </form>
    1616</div>
  • _plugins_/nouvelle_version/branches/version_2/formulaires/versioning_article_confirm.php

    r85983 r85985  
    22/***************************************************************************\
    33 * Plugin Nouvelle Version pour Spip 2.0
    4  * Licence GPL (c) 2011
     4 * Licence GPL (c) 2011-2014
    55 * Modération de la nouvelle version d'un article
    66 *
    77\***************************************************************************/
    88
    9 function formulaires_duplicator_article_confirm_charger_dist(){
    10         $valeurs = array();
    11        
    12         return $valeurs;
     9function formulaires_versioning_article_confirm_charger_dist()
     10{
     11    $valeurs = array();
     12
     13    return $valeurs;
    1314}
    1415
    15 function formulaires_duplicator_article_confirm_verifier_dist($article){
    16         $erreurs = array();
     16function formulaires_versioning_article_confirm_verifier_dist($article)
     17{
     18    $erreurs = array();
    1719
    18         if (!$article)
    19                 $erreurs['message_erreur'] = 'Une erreur est survenue.';
    20                
    21         return $erreurs;
     20    if (!$article) {
     21        $erreurs['message_erreur'] = 'Une erreur est survenue.';
     22    }
     23
     24    return $erreurs;
    2225}
    2326
    24 function formulaires_duplicator_article_confirm_traiter_dist($article){
    25        
    26         if(_request('confirmer')){
    27                 include_spip('action/dupliquer');
     27function formulaires_versioning_article_confirm_traiter_dist($article)
     28{
    2829
    29                 // On duplique l article
    30                 $champs = array('id_rubrique');
    31                 $where = array(
    32                 'id_article='.$article
    33                 );
    34                 $res = sql_select($champs, "spip_articles", $where);
    35                 $r = sql_fetch($res);
    36                 $rubrique = $r['id_rubrique'];
    37 spip_log("ID RUBRIQUE : $rubrique");
    38 spip_log("ID ARTICLE : $article");
    39                 $nouvel_article = dupliquer_article(intval($article),intval($rubrique));
     30    if (_request('confirmer')) {
     31        include_spip('action/dupliquer');
    4032
    41                 $message = array('message_ok'=>array(
    42                 'message'=>_T('duplicator:operation_executee'),
    43                 'cible'=>$nouvel_article,
    44                 'type_retour'=>_T('duplicator:operation_retour_ok_article')
    45                 ));                     
    46         }
    47         if(_request('annuler')){
    48                 $message = array('message_ok'=>array(
    49                 'message'=>_T('duplicator:operation_annulee'),
    50                 'cible'=>$article,
    51                 'type_retour'=>_T('duplicator:operation_retour_ko_article')
    52                 ));                     
    53         }
     33        // On duplique l article
     34        $champs = array('id_rubrique');
     35        $where = array(
     36        'id_article='.$article
     37        );
     38        $res = sql_select($champs, "spip_articles", $where);
     39        $r = sql_fetch($res);
     40        $rubrique = $r['id_rubrique'];
     41        spip_log("ID RUBRIQUE : $rubrique");
     42        spip_log("ID ARTICLE : $article");
     43        $nouvel_article = dupliquer_article(intval($article), intval($rubrique));
    5444
    55         return $message;
     45        $message = array('message_ok'=>array(
     46        'message'=>_T('versioning:operation_executee'),
     47        'cible'=>$nouvel_article,
     48        'type_retour'=>_T('versioning:operation_retour_ok_article')
     49        ));
     50    }
     51    if (_request('annuler')) {
     52        $message = array('message_ok'=>array(
     53        'message'=>_T('versioning:operation_annulee'),
     54        'cible'=>$article,
     55        'type_retour'=>_T('versioning:operation_retour_ko_article')
     56        ));
     57    }
     58
     59    return $message;
    5660}
  • _plugins_/nouvelle_version/branches/version_2/lang/versioning_fr.php

    r85983 r85985  
    22/***************************************************************************\
    33 * Plugin Nouvelle Version pour Spip 2.0
    4  * Licence GPL (c) 2011
     4 * Licence GPL (c) 2011-2014
    55 * Modération de la nouvelle version d'un article
    66 *
     
    1010
    1111$GLOBALS[$GLOBALS['idx_lang']] = array(
    12         'icone_dupliquer' => 'Dupliquer la rubrique',
    13         'se_rendre_sur_la_version' => "Voir la nouvelle version en cours d'édition",
    14         'se_rendre_sur_l_original' => "Voir la version publiée",
    15         'message_annuler' => 'Annuler',
    16         'message_confirmer' => 'Confirmer',     
    17        
    18         'operation_executee' => "L'op&eacute;ration a bien &eacute;t&eacute; ex&eacute;cut&eacute;e.",
    19         'operation_annulee' => "L'op&eacute;ration a &eacute;t&eacute; annul&eacute;e.",
    20         'operation_retour_ok' => "Se rendre dans la rubrique copi&eacute;e.",
    21         'operation_retour_ko' => "Retour aux rubriques.",
    2212
    23         'icone_dupliquer_article' => "Nouvelle version de l'article",
    24         'icone_remplacer_article' => "Publier cette version",
     13    // I
     14    'icone_dupliquer' => 'Dupliquer la rubrique',
     15    'icone_dupliquer_article' => "Proposer une modification",
     16    'icone_remplacer_article' => "Publier cette version",
    2517
     18    // M
     19    'message_annuler' => 'Annuler',
     20    'message_confirmer' => 'Confirmer',
    2621
    27         'operation_retour_ok_article' => "Se rendre dans l'article dupliqu&eacute;.",
    28         'operation_retour_ok_article_publi' => "Se rendre dans l'article publi&eacute;.",
     22    // O
     23    'operation_annulee' => "L'op&eacute;ration a &eacute;t&eacute; annul&eacute;e.",
     24    'operation_executee' => "L'op&eacute;ration a bien &eacute;t&eacute; ex&eacute;cut&eacute;e.",
     25    'operation_retour_ko' => "Retour aux rubriques.",
     26    'operation_retour_ko_article' => "Retour aux articles.",
     27    'operation_retour_ok' => "Se rendre dans la rubrique copi&eacute;e.",
     28    'operation_retour_ok_article' => "Se rendre dans l'article dupliqu&eacute; pour modification.",
     29    'operation_retour_ok_article_publi' => "Se rendre sur l'article publi&eacute;.",
    2930
    30         'operation_retour_ko_article' => "Retour aux articles."
     31    // S
     32    'se_rendre_sur_l_original' => "Voir la version publiée",
     33    'se_rendre_sur_la_version' => "Voir la version proposée en cours d'édition",
     34
     35    // T
     36    'titre_duplication_article' => 'Duplication de l\'article @id_objet@',
     37    'titre_versioning_article' => 'Modification modérée d\'un article publié',
    3138);
  • _plugins_/nouvelle_version/branches/version_2/plugin.xml

    r85983 r85985  
    11<plugin>
    2         <nom>Dupliquer & Publier</nom>
    3         <slogan>Nouvelle version - Agora spirit</slogan>
    4         <icon>images/article_new_version-24.png</icon>
    5         <auteur>[FwedBoot->mailto:fwedboot@gmail.com]</auteur>
    6         <licence>GPL &#169; 2010</licence>
    7         <version>0.2.0</version>
     2    <nom>Nouvelle Bersion</nom>
     3    <slogan>Dupliquer & Publier - Agora spirit</slogan>
     4    <icon>images/article_new_version-24.png</icon>
     5    <auteur>[FwedBoot->mailto:fwedboot@gmail.com]</auteur>
     6    <licence>GPL &#169; 2014</licence>
     7    <version>2.1.0</version>
    88
    9         <etat>test</etat>
    10         <description>Ce plugin permet de dupliquer un article et son contenu depuis l'espace privé en ajoutant un bouton dans la navigation de gauche dans l'espace privé, puis de le publier en lieu et place de l'article original.
    11         l'article original est alors archivé
     9    <etat>test</etat>
     10    <description>Ce plugin permet de dupliquer un article et son contenu depuis l'espace privé en ajoutant un bouton dans la navigation de gauche dans l'espace privé, puis de le publier en lieu et place de l'article original. l'article original est alors archivé
    1211
    13         Cela permet en somme une modération des modifications sur un article publié (comme le permettait la fonctionnalité 'nouvelle version' d'Agora-SPIP)
    14         </description>
    15         <lien></lien>
    16         <prefix>duplicator</prefix>
    17        
    18         <pipeline>
    19                 <nom>boite_infos</nom>
    20                 <inclure>duplicator_pipeline.php</inclure>
    21         </pipeline>
    22        
    23    <categorie>edition</categorie>
    24         <necessite id="SPIP" version='[2.0.0;2.1.99]' />
    25        
     12    Cela permet en somme une modération des modifications sur un article publié (comme le permettait la fonctionnalité 'nouvelle version' d'Agora-SPIP)
     13    </description>
     14    <lien></lien>
     15    <prefix>versioning</prefix>
     16
    2617    <pipeline>
    27             <nom>declarer_tables_principales</nom>
    28             <inclure>base/duplicator.php</inclure>
     18        <nom>boite_infos</nom>
     19        <inclure>versioning_pipeline.php</inclure>
    2920    </pipeline>
    30    
     21
     22    <categorie>edition</categorie>
     23    <necessite id="SPIP" version='[2.0.0;2.1.99]' />
     24
     25    <pipeline>
     26        <nom>declarer_tables_principales</nom>
     27        <inclure>base/versioning.php</inclure>
     28    </pipeline>
     29
    3130    <version_base>0.1</version_base>
    32     <install>base/duplicator_install.php</install>
     31    <install>base/versioning_install.php</install>
    3332    <lien>http://contrib.spip.net/Nouvelle-version-Moderation-de-modifications</lien>
    3433</plugin>
  • _plugins_/nouvelle_version/branches/version_2/prive/exec/remplacer_article.html

    r56079 r85985  
    99<div class="ajax">
    1010[(#PLUGIN{maparchi}|oui)
    11 #FORMULAIRE_PUBLICATOR_ARTICLE_CONFIRM{#ENV{id_objet},#ENV{id_orig},'archi'}
     11#FORMULAIRE_PUBLIVERSION_ARTICLE_CONFIRM{#ENV{id_objet},#ENV{id_orig},'archi'}
    1212]
    1313[(#PLUGIN{maparchi}|non)
    14 #FORMULAIRE_PUBLICATOR_ARTICLE_CONFIRM{#ENV{id_objet},#ENV{id_orig}}
     14#FORMULAIRE_PUBLIVERSION_ARTICLE_CONFIRM{#ENV{id_objet},#ENV{id_orig}}
    1515]
    1616</div>
  • _plugins_/nouvelle_version/branches/version_2/prive/exec/versioning_article.html

    r85983 r85985  
    22#SET{ordre,#ENV{ordre}|sinon{''}}
    33
    4 <h1 class="grostitre">Dupliquer un article</h1>
     4<h1 class="grostitre"><:versioning:titre_versioning_article:></h1>
    55
    66
    7 <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>
     7<h2><:versioning:titre_duplication_article{id_objet=#ENV{id_objet}}:> (<BOUCLE_nomart(ARTICLES){id_article=#ENV{id_objet}}{statut IN prop,prepa,publie,refuse,poubelle}>#TITRE</BOUCLE_nomart>)</h2>
    88
    9 <div class="ajax">#FORMULAIRE_DUPLICATOR_ARTICLE_CONFIRM{#ENV{id_objet}}</div>
     9<div class="ajax">#FORMULAIRE_VERSIONING_ARTICLE_CONFIRM{#ENV{id_objet}}</div>
  • _plugins_/nouvelle_version/branches/version_2/versioning_pipeline.php

    r85983 r85985  
    33/***************************************************************************\
    44 * Plugin Nouvelle Version pour Spip 2.0
    5  * Licence GPL (c) 2011
     5 * Licence GPL (c) 2011-2014
    66 * Modération de la nouvelle version d'un article
    77 *
    88\***************************************************************************/
    99
    10 function duplicator_boite_infos($flux){
    11         $type = $flux['args']['type'];
    12         $statut = $flux['args']['row']['statut'];
    13         /// Existe t il une version de l'article déjà en cours d'édition
    14         $row = sql_fetsel("id_article,statut", "spip_articles", "version_of=".$flux['args']['id']." AND statut!='archi' AND  statut!='poubelle'");
    15         /// Si oui, on ne propose pas d'en recréer une mais de se rendre sur cette version:
    16         if($idversion = intval($row['id_article']))
    17         {
    18         $flux['data'] .= icone_horizontale(_T('duplicator:se_rendre_sur_la_version'), generer_url_ecrire('articles',"id_article=$idversion"), "",_DIR_PLUGIN_DUPLICATOR."images/voir_new_version-24.png", false);
    19         }
    20         else
    21         {
    22         ///// Sinon si il n'existe pas d'autre version on propose de la créer uniquement si l'article est publié
    23         if (($id = intval($flux['args']['id'])) && ($type=='article') )
    24                 if(!($idorig = $flux['args']['row']['version_of']) && ($statut=='publie')){
    25                 $flux['data'] .= icone_horizontale(_T('duplicator:icone_dupliquer_article'), generer_url_ecrire('duplicator_article',"id_objet=$id&type=$type"), "",_DIR_PLUGIN_DUPLICATOR."images/article_new_version-24.png", false);
    26                 }
    27                 else if(($idorig = $flux['args']['row']['version_of']) && ($statut!='poubelle') && ($statut!='archi'))
    28                 {
    29                         ///// Sinon enfin, si on est sur une nouvelle version on propose de la publier
    30                         //// on verifie les autorisations de publications sur l'article d'origine
    31                         if(autoriser('modifier','article',$flux['args']['row']['version_of'])){
    32                         $flux['data'] .= icone_horizontale(_T('duplicator:icone_remplacer_article'), generer_url_ecrire('remplacer_article',"id_objet=$id&id_orig=$idorig&type=$type"), "",_DIR_PLUGIN_DUPLICATOR."images/publier_new_version-24.png", false);
    33                         $flux['data'] .= icone_horizontale(_T('duplicator:se_rendre_sur_l_original'), generer_url_ecrire('articles',"id_article=$idorig"), "",_DIR_PLUGIN_DUPLICATOR."images/voir_old_version-24.png", false);
    34                         $flux['data'] .= "<script>
    35                         $('.publie').hide();
    36                         </script>
    37                         ";
    38                         }
    39                 }
    40         }
    41         return $flux;
     10function versioning_boite_infos($flux)
     11{
     12    $type = $flux['args']['type'];
     13    $statut = $flux['args']['row']['statut'];
     14    /// Existe t il une version de l'article déjà en cours d'édition
     15    $row = sql_fetsel(
     16        "id_article,statut",
     17        "spip_articles",
     18        "version_of="
     19        . $flux['args']['id']
     20        . " AND statut!='archi' AND  statut!='poubelle'"
     21    );
     22    /// Si oui, on ne propose pas d'en recréer une mais de se rendre sur cette version:
     23    if ($idversion = intval($row['id_article'])) {
     24        $flux['data'] .= icone_horizontale(
     25            _T('versioning:se_rendre_sur_la_version'),
     26            generer_url_ecrire('articles', "id_article=$idversion"),
     27            "",
     28            _DIR_PLUGIN_VERSIONING . "images/voir_new_version-24.png",
     29            false
     30        );
     31    } else {
     32    ///// Sinon si il n'existe pas d'autre version on propose de la créer uniquement si l'article est publié
     33        if (($id = intval($flux['args']['id'])) && ($type=='article')) {
     34            if (!($idorig = $flux['args']['row']['version_of']) && ($statut=='publie')) {
     35                $flux['data'] .= icone_horizontale(
     36                    _T('versioning:icone_dupliquer_article'),
     37                    generer_url_ecrire('versioning_article', "id_objet=$id&type=$type"),
     38                    "",
     39                    _DIR_PLUGIN_VERSIONING . "images/article_new_version-24.png",
     40                    false
     41                );
     42            } elseif (($idorig = $flux['args']['row']['version_of']) && ($statut!='poubelle') && ($statut!='archi')) {
     43                ///// Sinon enfin, si on est sur une nouvelle version on propose de la publier
     44                //// on verifie les autorisations de publications sur l'article d'origine
     45                if (autoriser('modifier', 'article', $flux['args']['row']['version_of'])) {
     46                    $flux['data'] .= icone_horizontale(
     47                        _T('versioning:icone_remplacer_article'),
     48                        generer_url_ecrire('remplacer_article', "id_objet=$id&id_orig=$idorig&type=$type"),
     49                        "",
     50                        _DIR_PLUGIN_VERSIONING . "images/publier_new_version-24.png",
     51                        false
     52                    );
     53                    $flux['data'] .= icone_horizontale(
     54                        _T('versioning:se_rendre_sur_l_original'),
     55                        generer_url_ecrire('articles', "id_article=$idorig"),
     56                        "",
     57                        _DIR_PLUGIN_VERSIONING . "images/voir_old_version-24.png",
     58                        false
     59                    );
     60                    $flux['data'] .= "<script> $('.publie').hide(); </script>";
     61                }
     62            }
     63        }
     64    }
     65    return $flux;
    4266}
    4367?>
Note: See TracChangeset for help on using the changeset viewer.