Changeset 39453 in spip-zone


Ignore:
Timestamp:
Jul 22, 2010, 1:28:16 PM (9 years ago)
Author:
erational@…
Message:

nouvelle option parametrable via CFG

  • export des mots-clés des articles (complet ou limité à certains groupes)
Location:
_plugins_/spip2spip
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip2spip/backend-spip2spip.html

    r39444 r39453  
    66  Vous pouvez modifier ce fichier selon vos besoins (exclure des rubriques, ...)
    77
    8 ]<!-- backend utilisant SPIP2SPIP --><spip2spip version="1.8">
     8]#SET{which_groupe,#CONFIG{spip2spip/export_mot_groupe,#ARRAY{0,-1}}}
     9<!-- backend utilisant SPIP2SPIP --><spip2spip version="1.8">
    910        <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    1011        <link>#URL_SITE_SPIP/</link>   
     
    3738                 [<logo>(#URL_SITE_SPIP/#LOGO_ARTICLE|fichier)</logo>]
    3839     <BOUCLE_list_mot(MOTS){id_article}{type=- spip2spip -}{0,1}>[<keyword>(#TITRE|supprimer_numero|texte_backend)</keyword>]</BOUCLE_list_mot>
     40     [(#CONFIG{spip2spip/export_mot_article}|oui)
     41        [(#GET{which_groupe}|find{-1}|oui)<INCLURE{fond=inclure/spip2spip_mot_article}{id_article} />]
     42        [(#GET{which_groupe}|find{-1}|non)<INCLURE{fond=inclure/spip2spip_mot_article_restreint}{id_article} />]
     43     ]
    3944     <B_licence><licence><BOUCLE_licence(MOTS){id_article}{type=licence}{0,1}>[(#TITRE|supprimer_numero|texte_backend)]</BOUCLE_licence></licence></B_licence>         
    4045                </item>
  • _plugins_/spip2spip/fonds/cfg_spip2spip.html

    r26100 r39453  
    1414
    1515 <fieldset><legend>Suivi de la syndication</legend>
    16   <p>
    17        
     16  <p>       
    1817    <label><input type="checkbox" name="email_alerte"[ checked="(#ENV{email_alerte}|!={''}|?{'checked'})"] class="fondl" />
    1918          Pr&eacute;venir par email à chaque nouvelle syndication ?</label>   
    20     <br /> <br />    
     19    <br />    
    2120    <label>Si oui, sur quel email ? <input type="text" name="email_suivi" value="[(#ENV{email_suivi})]" size="20" class="fondl" />
    22     </label>
    23        
     21    </label>       
    2422  </p>
    2523  </fieldset>
     
    2725
    2826 
    29  <fieldset><legend>Citer la source</legend>
     27  <fieldset><legend>Citer la source</legend>
    3028  <p>
    3129  <label><input type="checkbox" name="citer_source"[ checked="(#ENV{citer_source}|!={''}|?{'checked'})"] class="fondl" />
     
    3331  </p>
    3432  </fieldset>
    35  
     33 
     34  <fieldset><legend>Mots-clés: Export</legend>
     35  <p><label><input type="checkbox" name="export_mot_article"[ checked="(#ENV{export_mot_article}|!={''}|?{'checked'})"] class="fondl" />Exporter les mots-clés des articles</label></p>
     36  <p>Choisissez les groupes dont vous voulez exporter les mots-clés
     37    #SET{which_groupe,#CONFIG{spip2spip/export_mot_groupe,#ARRAY{0,-1}}}[(#REM) inspi:plugin GIS]   
     38    <select name="export_mot_groupe[]" multiple="multiple" size="5">
     39      <option value="-1"[ (#EVAL{-1}|in_array{#GET{which_groupe}}|?{' selected="selected"'})]>Tous</option>
     40    <BOUCLE_groupes0(GROUPES_MOTS){par titre}{titre !=- spip2spip - }>
     41      <option value="#ID_GROUPE"[ (#ID_GROUPE|in_array{#GET{which_groupe}}|?{' selected="selected"'})]>&rarr; #TITRE</option>   
     42    </BOUCLE_groupes0>
     43    </select>
     44  </p>
     45  </fieldset>
     46 
     47 
     48 
     49 
     50  <fieldset><legend>Mots-clés: Import (non fonctionnel pour l'instant...)</legend>
     51  <p>
     52    <label><input type="checkbox" name="import_mot_article"[ checked="(#ENV{import_mot_article}|!={''}|?{'checked'})"] class="fondl" />Importer les mots-clés des articles</label><br />
     53  </p>   
     54  <p>
     55    Si oui, où placer les mots-clés importés ?<br />
     56    <label><input type="radio" name="import_mot_groupe_creer"  value="oui" [(#ENV{import_mot_groupe_creer}|=={oui}?{checked='checked',''})] />Récréer les groupes des mots-clés d'origine</label><br />
     57    <label><input type="radio" name="import_mot_groupe_creer"  value="non" [(#ENV{import_mot_groupe_creer}|=={non}?{checked='checked',''})] />Placer les mots-clés dans le groupe</label>
     58   
     59    <select name="import_mot_groupe">
     60    <BOUCLE_groupes(GROUPES_MOTS){par titre}{titre !=- spip2spip - }>
     61      <option value="#TITRE"[ selected="(#ENV{import_mot_groupe}|=={#TITRE}|oui)selected"]>#TITRE</option>   
     62    </BOUCLE_groupes>
     63    </select>
     64  </p>
     65  </fieldset>
     66
    3667 
    3768  <input type="submit" name="_cfg_ok" value="<:OK:>" />
  • _plugins_/spip2spip/spiptospip_fonctions.php

    r39444 r39453  
    3636        include_spip("inc_filtres.php"); # pour filtrer_entites()
    3737               
    38         $xml_tags = array('surtitre','titre','soustitre','descriptif','chapo','texte','ps','auteur','link','evenements', 'lang','logo','keyword','licence','documents');
     38        $xml_tags = array('surtitre','titre','soustitre','descriptif','chapo','texte','ps','auteur','link','evenements', 'lang','logo','keyword','mots','licence','documents');
    3939       
    4040        $syndic_regexp = array(
     
    5555        'logo'           => ',<logo[^>]*>(.*?)</logo[^>]*>,ims',
    5656        'keyword'        => ',<keyword[^>]*>(.*?)</keyword[^>]*>,ims',
     57        'mots'           => ',<mots[^>]*>(.*?)</mots[^>]*>,ims',
    5758        'licence'        => ',<licence[^>]*>(.*?)</licence[^>]*>,ims',
    5859        'documents'      => ',<documents[^>]*>(.*?)</documents[^>]*>,ims',
     
    6061        );
    6162       
    62         $xml_doc_tags = array('id','url','titre','desc');
    63        
     63        // documents
     64        $xml_doc_tags = array('id','url','titre','desc');       
    6465        $document_regexp = array(               
    6566                        'document'       => ',<document[>[:space:]],i',
     
    7273        );
    7374       
     75        // mots
     76        $xml_mot_tags = array('groupe','titre');       
     77        $mot_regexp = array(           
     78                        'mot'       => ',<mot[>[:space:]],i',
     79                                'motfin'    => '</mot>',
     80               
     81                                'groupe'    => ',<groupe[^>]*>(.*?)</groupe[^>]*>,ims',
     82                                'titre'     => ',<titre[^>]*>(.*?)</titre[^>]*>,ims',
     83        );
     84       
     85        // evenements
    7486        $xml_event_tags = array('idevent','datedeb','datefin','titre','desc','lieu','adresse','horaire','idsource');
    75 
    7687        $evenement_regexp = array(             
    7788                        'evenement'        => ',<evenement[>[:space:]],i',
     
    177188                                                                 
    178189
    179         // On parse le noeud evenement
    180     if ($data['evenements'] != "") {         
    181          
     190          // On parse le noeud evenement
     191    if ($data['evenements'] != "") {
    182192          $evenements = array();
    183193          if (preg_match_all($evenement_regexp['evenement'],$data['evenements'],$r3, PREG_SET_ORDER))
     
    205215              $data['evenements'] =  serialize($agenda);
    206216          }       
     217    }
     218   
     219    // On parse le noeud mots
     220    if ($data['mots'] != "") {       
     221          $mots = array();
     222          spip_log(".......debug: on trouve des mots");
     223          if (preg_match_all($mot_regexp['mot'],$data['mots'],$r2, PREG_SET_ORDER))
     224                foreach ($r2 as $regs) {
     225                        $debut_item = strpos($data['mots'],$regs[0]);
     226                        $fin_item = strpos($data['mots'],
     227                        $mot_regexp['motfin'])+strlen($mot_regexp['motfin']);
     228                        $mots[] = substr($data['mots'],$debut_item,$fin_item-$debut_item);
     229                        $debut_texte = substr($data['mots'], "0", $debut_item);
     230                        $fin_texte = substr($data['mots'], $fin_item, strlen($data['mots']));
     231                        $data['mots'] = $debut_texte.$fin_texte;
     232          }
     233         
     234          $motcle = array();
     235          if (count($mots)) {         
     236              foreach ($mots as $mot) {                 
     237                 $data_node = array();
     238                 foreach ($xml_mot_tags as $xml_mot_tag) {
     239                    if (preg_match($mot_regexp[$xml_mot_tag],$mot,$match)) $data_node[$xml_mot_tag] = $match[1];
     240                                                                                            else $data_node[$xml_mot_tag] = "";
     241                                       }
     242                $motcle[] = $data_node;                                                     
     243              }             
     244              $data['mots'] =  serialize($motcle);
     245          }       
    207246    }   
    208        
     247         
     248         
    209249                // Nettoyer les donnees et remettre les CDATA en place
    210250                foreach ($data as $var => $val) {
     
    317357}
    318358
    319 //
    320 // function principale: spip2spip_syndique
     359//---------------------------------------
     360// fonction principale: spip2spip_syndique
    321361//
    322362// effectue la syndication d'un site donnee
     
    324364// - mode: cron (silencieux avec spip_log)
    325365//         html (log bavard)
     366//---------------------------------------
    326367function spip2spip_syndiquer($id_site, $mode='cron') {
    327368    include_spip("inc/distant");
     
    509550                      }
    510551                     
    511                       // etape 3 - traitement des evenements (a finir de porter) FIXME
     552                      // etape 3 - traitement des mots de l'article
     553                      $_mots = $article['mots'];
     554                      if ($_mots!="") {
     555                        $_mots = unserialize($_mots);                 
     556                        foreach($_mots as $_mot) {                   
     557                            $groupe = $_mot['groupe'];                           
     558                            $titre  = $_mot['titre'];
     559                            spip_log(">...mot: $titre (groupe: $groupe)");                   
     560                        }
     561                      }
     562                           
     563                     
     564                      // etape 4 - traitement des evenements (a finir de porter) FIXME
    512565                      $_evenements = $article['evenements'];
    513566                                          $_evenements = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $_evenements );
Note: See TracChangeset for help on using the changeset viewer.