Changeset 29818 in spip-zone for _plugins_/marque-pages


Ignore:
Timestamp:
Jul 11, 2009, 8:42:03 AM (11 years ago)
Author:
vincent@…
Message:

Et hop, le plugin Marque-pages sait importer le XML d'export de Delicious ! (et donc de Scuttle aussi)

Ça marche, mais évidemment ça peut être trèèèès long suivant l'export. 170 = 2min, calculez si vous en avez plus de 10000...
Ceci dit, on ne fait cette opération qu'une seule fois normalement. Mais c'est sûr que si ça peut être optimisé, c'est mieux.

Location:
_plugins_/marque-pages
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/marque-pages/fonds/contenu/marquepages_auteur.html

    r29777 r29818  
    11
    22<BOUCLE_auteur(AUTEURS){login}>
    3 <h2>[(#SESSION{id_auteur}|=={#ID_AUTEUR}|?{<:marquepages:mes_marquepages:>,<:marquepages:titre_marquepages_de{auteur=#NOM}:>})]</h2>
     3<h2>[(#SESSION{id_auteur}|=={#ID_AUTEUR}|?{<:marquepages:mes_marquepages:>,<:marquepages:titre_marquepages_de{auteur=#NOM}:>})][ (#ENV{recherche}|oui)(<:marquepages:contenant{recherche=#ENV{recherche}}:>)]</h2>
    44
    55<ul class="etiquettes">
  • _plugins_/marque-pages/fonds/contenu/marquepages_tout.html

    r29075 r29818  
    11
    2 <h2><:marquepages:tous_les_marquepages:></h2>
     2<h2><:marquepages:tous_les_marquepages:>[ (#ENV{recherche}|oui)(<:marquepages:contenant{recherche=#ENV{recherche}}:>)]</h2>
    33
    44<ul class="etiquettes">
  • _plugins_/marque-pages/fonds/navigation/marquepages_auteur.html

    r29777 r29818  
    3939
    4040<B_popu>
    41 <div class="pliable[(#ENV{mots}|oui) plier]">
     41<div class="pliable">
    4242        <h2><:etiquettes:etiquettes_populaires:></h2>
    4343        <ul>
  • _plugins_/marque-pages/formulaires/importer_marquepages.php

    r29076 r29818  
    5757        $retours = $importer($fichier_ok['chemin'], $id_rubrique);
    5858       
    59         if ($redirect = _request('redirect')){
     59        if (!$retours['message_erreur'] and $redirect = _request('redirect')){
    6060                $retours['redirect'] = str_replace('&amp;', '&', $redirect);
    6161        }
  • _plugins_/marque-pages/inc/marquepages_api.php

    r29075 r29818  
    250250// Importer des marque-pages depuis un fichier d'export de delicious
    251251function marquepages_importer_delicious($chemin, $id_rubrique){
     252        global $mp_xml_profondeur, $mp_id_rubrique;
     253        $mp_xml_profondeur = array();
     254        $mp_id_rubrique = $id_rubrique;
    252255        $retours = array();
    253         $retours['message_ok'] = 'Importation delicious';
     256       
     257        $xml_parser = xml_parser_create();
     258        xml_set_element_handler($xml_parser, "marquepages_importer_delicious_debut", "marquepages_importer_delicious_fin");
     259       
     260        if (!($flux_xml = fopen($chemin, "r")))
     261                $retours['message_erreur'] = _T('marquepages:erreur_importation');
     262       
     263        while ($data = fread($flux_xml, 4096)) {
     264                if (!xml_parse($xml_parser, $data, feof($flux_xml))) {
     265                        $retours['message_erreur'] =
     266                                'Erreur XML :'
     267                                . xml_error_string(xml_get_error_code($xml_parser))
     268                                . 'à la ligne '
     269                                . xml_get_current_line_number($xml_parser);
     270                }
     271        }
     272    xml_parser_free($xml_parser);
     273   
     274    if (!$retours['message_erreur'])
     275                $retours['message_ok'] = _T('marquepages:erreur_importation_ok');
     276       
    254277        return $retours;
    255278}
    256279
     280function marquepages_importer_delicious_debut($parser, $nom, $attributs){
     281        global $mp_xml_profondeur, $mp_id_rubrique;
     282        $nom = strtolower($nom);
     283       
     284        if ($nom == 'post') {
     285                while (list($titreAttr, $valeurAttr) = each($attributs)) {
     286                        $titreAttr = strtolower($titreAttr);
     287                        switch ($titreAttr) {
     288                                case 'href':
     289                                        $url = $valeurAttr;
     290                                        break;
     291                                case 'description':
     292                                        $titre = $valeurAttr;
     293                                        break;
     294                                case 'extended':
     295                                        $description = $valeurAttr;
     296                                        break;
     297                                case 'time':
     298                                        $date = $valeurAttr;
     299                                        break;
     300                                case 'tag':
     301                                        $tags = strtolower($valeurAttr);
     302                                        break;
     303                        }
     304                }
     305               
     306                // Strangely, PHP can't work out full ISO 8601 dates, so we have to chop off the Z.
     307                $date = substr($date, 0, -1);
     308                // If bookmark claims to be from the future, set it to be now instead
     309                if (strtotime($date) > time()) {
     310                        $date = gmdate('Y-m-d H:i:s');
     311                }
     312               
     313                marquepages_ajouter($mp_id_rubrique, $url, $titre, $description, 'mppublic', $tags);
     314    }
     315    $mp_xml_profondeur[$parser]++;
     316}
     317
     318function marquepages_importer_delicious_fin($parser, $nom){
     319        global $mp_xml_profondeur;
     320    $mp_xml_profondeur[$parser]--;
     321}
     322
    257323?>
  • _plugins_/marque-pages/lang/marquepages_en.php

    r29684 r29818  
    1212'nombre_marquepages' => '@nombre@ bookmarks',
    1313'avec_etiquettes' => 'with tags',
     14'contenant' => 'containing @recherche@',
    1415'poste_le' => 'post on',
    1516'et' => 'and',
     
    2526'bookmarklet_explication' => 'Move this bookmarklet in your browser\'s bookmarks and click on it every time you want to add a bookmark on @site@.',
    2627'importer' => 'Import',
    27 'importer_explication' => 'Export your bookmarks from where they are saved now (Firefox, IE, etc), then upload the file here.',
     28'importer_explication' => 'Export your bookmarks from where they are saved now (Firefox, delicious, scuttle, etc), then upload the file here.',
    2829
    2930// Pour la configuration
  • _plugins_/marque-pages/lang/marquepages_fr.php

    r29684 r29818  
    1212'nombre_marquepages' => '@nombre@ marque-pages',
    1313'avec_etiquettes' => 'avec les &eacute;tiquettes',
     14'contenant' => 'contenant @recherche@',
    1415'poste_le' => 'post&eacute; le',
    1516'et' => 'et',
     
    2526'bookmarklet_explication' => 'D&eacute;placez ce bookmarklet dans les marques-pages de votre navigateur et cliquez dessus chaque fois que vous souhaitez ajouter un signet pour la page courante dans @site@.',
    2627'importer' => 'Importer',
    27 'importer_explication' => 'Exportez vos marque-pages d\'où ils sont stock&eacute;s actuellement (Firefox, IE, etc), puis t&eacute;l&eacute;chargez le fichier ici.',
     28'importer_explication' => 'Exportez vos marque-pages d\'où ils sont stock&eacute;s actuellement (Firefox, delicious, scuttle, etc), puis t&eacute;l&eacute;chargez le fichier ici.',
    2829
    2930// Pour la configuration
  • _plugins_/marque-pages/marquepages_fonctions.php

    r29777 r29818  
    4444}
    4545function filtre_url_mp_supprimer_tag_dist($url, $tag){
    46         $url = html_entity_decode($url);
    47         $tag = preg_quote(rawurlencode($tag));
     46        $url = html_entity_decode(rawurldecode($url));
     47        $tag = preg_quote($tag);
    4848        $url = preg_replace("/&?mots\[\]=$tag/", '', $url);
    4949        return $url;
Note: See TracChangeset for help on using the changeset viewer.