Changeset 84549 in spip-zone


Ignore:
Timestamp:
Sep 10, 2014, 10:07:59 AM (6 years ago)
Author:
ben.spip@…
Message:

diverses améliorations du plugin

Location:
_plugins_/wp_import/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/wp_import/trunk/formulaires/import_wordpress.php

    r84491 r84549  
    55{
    66
    7     $valeurs['mes_saisies'] = mes_saisies_import_wordpress();
     7    $valeurs['mes_saisies'] =
     8        array(
     9            array(
     10                'saisie' => 'input',
     11                'options' => array(
     12                    'nom' => 'id_parent',
     13                    'label' => _T('wp_import:id_parent_label'),
     14                    'explication' => _T('wp_import:id_parent_explication'),
     15                    'obligatoire' => 'oui',
     16                    'defaut' => 0
     17                )),
     18
     19            array(
     20                'saisie' => 'input',
     21                'options' => array(
     22                    'nom' => 'document_xml',
     23                    'label' => _T('wp_import:document_xml_label'),
     24                    'explication' => _T('wp_import:document_xml_explication')
     25                )),
     26            array(
     27                'saisie' => 'case',
     28                'options' => array(
     29                    'nom' => 'menage',
     30                    'label' => _T('wp_import:menage_label'),
     31                    'explication' => _T('wp_import:menage_explication')
     32                )),
     33            array(
     34                'saisie' => 'case',
     35                'options' => array(
     36                    'nom' => 'auteurs',
     37                    'label' => _T('wp_import:auteurs_label'),
     38                    'explication' => _T('wp_import:auteurs_explication')
     39                )),
     40            array(
     41                'saisie' => 'case',
     42                'options' => array(
     43                    'nom' => 'rubriques',
     44                    'label' => _T('wp_import:rubriques_label'),
     45                    'explication' => _T('wp_import:rubriques_explication')
     46                )),
     47            array(
     48                'saisie' => 'case',
     49                'options' => array(
     50                    'nom' => 'documents',
     51                    'label' => _T('wp_import:documents_label'),
     52                    'explication' => _T('wp_import:documents_explication')
     53                )),
     54            array(
     55                'saisie' => 'case',
     56                'options' => array(
     57                    'nom' => 'articles',
     58                    'label' => _T('wp_import:articles_label'),
     59                    'explication' => _T('wp_import:articles_explication')
     60                ))
     61
     62        );
     63
    864
    965    return $valeurs;
     
    1571
    1672    $erreurs = array();
     73    $fichier = _DIR_TMP . _request('document_xml');
     74    if (_request('document_xml')) {
     75        if (!file_exists($fichier)) {
     76            $erreurs['document_xml'] = _T('wp_import:erreur_fichier', array('fichier' => "$fichier"));
     77            $erreurs['message_erreur'] = _T('wp_import:erreur_generale');
     78        }
     79    } else {
     80        $erreurs['document_xml'] = _T('wp_import:erreur_fichier_vide');
     81    }
     82
    1783    return $erreurs;
    1884}
     
    47113
    48114    $chemin_temp = sous_repertoire(_DIR_TMP, 'wordpress');
    49     $doc = & $_FILES['document_xml'];
    50     $annee = _request('id_rubrique');
    51     $nom_fichier = $doc['name'];
    52     $chemin_fichier = $chemin_temp . $nom_fichier;
     115    $chemin_fichier = _DIR_TMP . _request('document_xml');
    53116    include_spip('inc/getdocument');
    54117
    55     if (!deplacer_fichier_upload($doc['tmp_name'], $chemin_fichier))
    56         $erreurs['document_csv'] = _T('copie_document_impossible');
    57     else {
    58 
    59     }
    60118
    61119    if (file_exists($chemin_fichier)) {
     
    67125        $arbre = array_shift($arbre);
    68126        $arbre = $arbre[0]['channel'][0];
    69 
    70127        //var_dump(array_keys($arbre));
    71         sql_query('TRUNCATE TABLE spip_documents ');
    72         sql_query('TRUNCATE TABLE spip_documents_liens');
    73         sql_query('TRUNCATE TABLE spip_articles');
    74         sql_query('TRUNCATE TABLE spip_rubriques');
    75         sql_query('TRUNCATE TABLE spip_rubriques_liens');
    76         sql_query('DELETE FROM spip_auteurs where id_auteur>1 ');
    77         sql_query('TRUNCATE TABLE spip_auteurs_liens ');
    78         sql_query('ALTER TABLE `spip_auteurs` AUTO_INCREMENT =1');
     128
     129        $menage = _request('menage');
     130        if ($menage) {
     131            spip_log("Vidage des tables ", "wp_import" . _LOG_INFO_IMPORTANTE);
     132            spip_query("DELETE FROM   'spip_documents' ");
     133            spip_query("DELETE FROM  'spip_documents_liens' ");
     134            spip_query("DELETE FROM  'spip_articles' ");
     135            spip_query("DELETE FROM  'spip_rubriques' ");
     136            spip_query("DELETE FROM  'spip_rubriques_liens'");
     137            spip_query('DELETE FROM spip_auteurs where id_auteur>1 ');
     138            spip_query("DELETE FROM  'spip_auteurs_liens' ");
     139            spip_query('ALTER TABLE `spip_auteurs` AUTO_INCREMENT =1');
     140        } else {
     141            spip_log("Pas de ménage", "wp_import" . _LOG_INFO_IMPORTANTE);
     142        }
     143
    79144        $tab_document = array();
    80145        include_spip("action/ajouter_documents");
     146        $cpt_auteurs=0;
     147        $cpt_rubriques=0;
     148        $cpt_articles=0;
    81149
    82150        foreach ($arbre as $type => $a) {
    83151
    84152            switch ($type) {
    85 
    86153                // Importation des auteurs
    87 
    88154                case "wp:author":
     155                    //sortir de suite si l'on n'a pas coché l'importation des auteurs
     156                    if (! _request("auteurs"))
     157                        break;
    89158                    include_spip('action/editer_auteur');
    90159                    foreach ($a as $auteur) {
     
    99168                        auteur_modifier($id_auteur, $data_auteur);
    100169                        $tab_auteur[$auteur['wp:author_login'][0]] = $id_auteur;
     170                        spip_log("Auteur $id_auteur créé ( ". $auteur['wp:author_login'][0] ." ) ", "wp_import" . _LOG_INFO_IMPORTANTE);
     171                        $cpt_auteurs++;
     172
    101173                    }
    102174                    break;
     
    108180
    109181                case "wp:category":
     182                    //sortir de suite si l'on n'a pas coché l'importation des rubriques
     183                    if (! _request("rubriques"))
     184                        break;
    110185                    include_spip('action/editer_rubrique');
     186                    $id_parent_rubrique=_request("id_parent");
    111187
    112188                    foreach ($a as &$cat) {
    113                         $data_rub = array('titre' => twp($cat['wp:cat_name'][0]));
    114                         $id_rub = rubrique_inserer(0);
     189                        $data_rub = array(
     190                            'titre' => twp($cat['wp:cat_name'][0]),
     191                            'id_parent' => "$id_parent_rubrique" ) ;
     192                        $id_rub = rubrique_inserer($id_parent_rubrique);
     193                        spip_log("Création rubrique $id_rub (id_parent : $id_parent_rubrique) ", "wp_import" . _LOG_INFO_IMPORTANTE);
    115194                        $cat["id"] = $id_rub;
    116195                        $tab_cat[$cat['wp:category_nicename'][0]] = $id_rub;
    117196                        rubrique_modifier($id_rub, $data_rub);
    118 
     197                       // var_dump ($tab_cat) ;
     198                         // die ('plouf') ;
    119199                    }
    120200                    foreach ($a as $cat) {
    121                         $id_parent = $tab_cat[twp($cat['wp:category_parent'][0])] + 0;
     201                        $id_parent = $tab_cat[twp($cat['wp:category_nicename'][0])] + 0;
     202                        spip_log("Modif rubrique parent $id_parent ) ", "wp_import" . _LOG_INFO_IMPORTANTE);
     203
    122204                        $data_rub = array('id_parent' => $id_parent);
    123205                        rubrique_modifier($cat["id"], $data_rub);
     
    128210
    129211                case "item":
     212                    //sortir de suite si l'on n'a pas coché l'importation des articles
     213                    if (! _request("documents"))
     214                        break;
    130215                    include_spip('action/editer_article');
    131216                    foreach ($a as $item) {
    132217                        switch ($item['wp:post_type'][0]) {
    133218                            case 'attachment':
    134 
    135 
    136219                                $data_document = array(
    137220                                    'titre' => $item['title'][0],
     
    160243
    161244                                $ajouter_un_document = charger_fonction('ajouter_un_document', 'action');
    162                                 $id_document = $ajouter_un_document(0, $file, '', 0, 'document');
    163                                 document_modifier($id_document, $data_document);
     245                                //$id_document = $ajouter_un_document(0, $file, '', 0, 'document');
     246                                //document_modifier($id_document, $data_document);
    164247
    165248                                $tab_document[basename($item['wp:attachment_url'][0])] = $id_document;
     
    179262
    180263                case "item":
     264                    //sortir de suite si l'on n'a pas coché l'importation des articles
     265                    if (! _request("articles"))
     266                        break;
    181267                    include_spip('action/editer_article');
    182268                    foreach ($a as $item) {
     
    185271                            case 'post':
    186272                                $statut = 'publie';
    187                                 if ($item['wp:status'][0] == 'publish') $statut = 'publie';
     273                            if ($item['wp:status'][0] == 'publish') $statut = 'publie';
     274                            if ($item['wp:post_id'][0] != 2882)
     275                                break;
    188276
    189277                                $data_article = array(
     
    193281                                    'texte' => html_to_spip(twp($item['content:encoded'][0]), $tab_document),
    194282                                    'date_modif' => $item['post_date'][0]);
     283
    195284                                $categorys = "";
    196285                                $categorys = preg_array_key_exists('/^category/', $item);
     
    205294                                    $data_article['page'] = $item['wp:post_name'][0];
    206295                                }
     296
    207297                                $id_article = article_inserer(array_shift($tab_id_rub));
    208298                                article_modifier($id_article, $data_article);
     
    213303                                $data_article = array(
    214304                                    'statut' => 'publie',
    215                                     'date' => $item['post_date'][0]);
     305                                    'date' => $item['wp:post_date'][0]  );
     306
    216307                                sql_updateq('spip_articles', $data_article, $id_article);
    217308
    218                                 //lier l'article à un auteur
     309                                //Supprimer l'auteur (SPIP) qui a créé l'article
     310                                sql_delete('spip_auteurs_liens', 'id_objet='.$id_article.' AND objet="article"');
     311
     312                                //puis lier l'article SPIP à l'auteur WORDPRESS
    219313                                auteur_associer($tab_auteur[$item['dc:creator'][0] . ''], array("article" => $id_article));
    220314                                break;
     
    312406
    313407
    314 function mes_saisies_import_wordpress()
    315 {
    316 
    317     $options_fichier = array(
    318         'nom' => 'document_xml',
    319         'label' => 'Fichier',
    320         'explication' => 'Fichier xml exporté depuis Wordpress',
    321     );
    322 
    323 
    324     $mes_saisies = array(
    325         //Champ titre
    326         array(
    327             'saisie' => 'input',
    328             'options' => array(
    329                 'nom' => 'id_rubrique',
    330                 'label' => 'Rubrique',
    331                 'obligatoire' => 'oui',
    332                 'defaut' => 0
    333             )),
    334 
    335         //Champ document
    336         array(
    337             'saisie' => 'fichier_wp',
    338             'options' => $options_fichier
    339         ),
    340 
    341 
    342     );
    343 
    344     return $mes_saisies;
    345 }
    346 
    347408?>
  • _plugins_/wp_import/trunk/lang/wp_import_fr.php

    r82942 r84549  
    1212        'etape3_titre' => "Lancer l'importation",
    1313        'etape3_texte' => " ",
    14        
    15         'migration' => "Migration depuis Wordpress",
     14
     15    "document_xml_explication" => "Nom du fichier xml exporté depuis Wordpress à placer dans le repertoire tmp de votre site SPIP" ,
     16    "document_xml_label" => "fichier xml" ,
     17
     18    "id_rubrique_label" => "N° rubrique",
     19    "id_rubrique_explication" => "Le Numéro de la rubrique qui recevra les articles créés ",
     20
     21    "auteurs_label" => "Auteurs ? ",
     22    "auteurs_explication" => "Importer les auteurs ",
     23
     24    "rubriques_label" => "Rubriques ?",
     25    "rubriques_explication" => "Importer les rubriques ",
     26
     27    "articles_label" => "Articles ? ",
     28    "articles_explication" => "Importer les articles",
     29
     30    "_label" => "",
     31    "_explication" => "",
     32
     33
     34    "menage_label" => "Ménage",
     35    "menage_explication" => "Avant d'importer faire un ménage par le vide : (supprimer les rubriques, documents, articles et auteurs)",
     36
     37
     38    'migration' => "Migration depuis Wordpress",
    1639        'migration2' => "Migration de Wordpress vers SPIP",
    1740        'mode_d_emploi' => "Mode d'emploi",
  • _plugins_/wp_import/trunk/paquet.xml

    r83060 r84549  
    22        prefix="wp_import"
    33        categorie="divers"
    4         version="1.0.0"
     4        version="1.0.1"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.*]"
     
    1515        <menu nom="wp_import" titre="wp_import:migration" parent="menu_administration" icone="images/wp_import-16.png" />
    1616
    17         <utilise nom="pages" compatibilite="[1.0.0;1.*.*]" />
    18         <utilise nom="polyhier" compatibilite="[2.0.1;2.*.*]" />
     17        <necessite nom="pages" compatibilite="[1.0.0;1.*.*]" />
     18        <necessite nom="polyhier" compatibilite="[2.0.1;2.*.*]" />
     19    <necessite nom="saisies" compatibilite="[1.19.0;]" />
    1920
    2021</paquet>
Note: See TracChangeset for help on using the changeset viewer.