Changeset 44012 in spip-zone


Ignore:
Timestamp:
Jan 30, 2011, 8:15:20 PM (9 years ago)
Author:
erational@…
Message:

clé d'authentification qui permet de limiter si necessaire le partage + qq ameliorations (options ds cfg et backend plus complet)

Location:
_plugins_/partageur
Files:
4 added
12 edited

Legend:

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

    r43910 r44012  
    99]<spip2spip version="1.8">
    1010        <title>[(#NOM_SITE_SPIP|texte_backend)]</title>
    11         <link>#URL_SITE_SPIP/</link>   
    12   <BOUCLE_synchro_article(ARTICLES){id_article}>
    13                 <item>           
    14                   [<surtitre>(#SURTITRE*|liens_absolus|supprimer_numero|partageur_respecte_img|texte_backend)</surtitre>]
    15                   <titre>[(#TITRE*|liens_absolus|supprimer_numero|partageur_respecte_img|texte_backend)]</titre>
    16                   [<soustitre>(#SOUSTITRE*|liens_absolus|supprimer_numero|partageur_respecte_img|texte_backend)</soustitre>]
    17                   [<descriptif>(#DESCRIPTIF*|liens_absolus|supprimer_numero|partageur_respecte_ln|partageur_respecte_img|texte_backend)</descriptif>]
    18                   [<chapo>(#CHAPO*|liens_absolus|supprimer_numero|partageur_respecte_ln|partageur_respecte_img|texte_backend)</chapo>]
    19                   [<texte>(#TEXTE*|liens_absolus|supprimer_numero|partageur_respecte_ln|partageur_respecte_img|texte_backend)</texte>]
    20                   [<ps>(#PS*|liens_absolus|supprimer_numero|partageur_respecte_ln|texte_backend)</ps>]
    21                   <link>#URL_SITE_SPIP/#URL_ARTICLE</link>
    22                   <BOUCLE_trad_dispo(ARTICLES){traduction}{0,1}{exclus}> </BOUCLE_trad_dispo><BOUCLE_trad(ARTICLES){traduction}{origine_traduction}><trad>#URL_SITE_SPIP/#URL_ARTICLE</trad></BOUCLE_trad></B_trad_dispo>
    23                   <date>#DATE</date>     
    24       <B_doc><documents>
    25                 <BOUCLE_doc(DOCUMENTS){id_article}>
    26                  <document>
    27                      <id>#ID_DOCUMENT</id>
    28                      <url>#URL_SITE_SPIP/#URL_DOCUMENT</url>
    29                      [<titre>(#TITRE*|supprimer_numero|texte_backend)</titre>]
    30                      [<desc>(#DESCRIPTIF*|supprimer_numero|texte_backend)</desc>]                     
    31                  </document>
    32                 </BOUCLE_doc>
    33       </documents></B_doc>           
    34      <B_auteurs><auteur><BOUCLE_auteurs(AUTEURS){id_article}{", "}>[(#NOM|texte_backend)]</BOUCLE_auteurs></auteur></B_auteurs>
    35                  <lang>#LANG</lang>
    36                  [<logo>#URL_SITE_SPIP/(#LOGO_ARTICLE|extraire_attribut{src})</logo>]
    37      [(#REM) fixme ajouter ici les mots de l'article? lesquels ?]               
    38                 </item>
    39         </BOUCLE_synchro_article>
     11        <link>#URL_SITE_SPIP/</link>
     12  [(#CONFIG{partageur/cle}|=={#ENV{cle}}|oui)<INCLURE{fond=inc/partageur_backend-partageur}{id_article} />]
     13  [(#CONFIG{partageur/cle}|=={#ENV{cle}}|non)<erreur><:partageur:cle_incorrecte:></erreur>]
    4014</spip2spip>
  • _plugins_/partageur/base/partageur.php

    r43910 r44012  
    1717                "url_site"          => "text NOT NULL",
    1818                //"url_syndic"    => "text NOT NULL",
     19                "cle"           => "text NOT NULL",
    1920                  "maj"                 => "TIMESTAMP"
    2021  );
  • _plugins_/partageur/exec/partageur_import.php

    r43910 r44012  
    1616        $id_partageur = (int)_request("id_partageur");
    1717        $id_article = (int)_request("id_article");
    18        
    19   $callback = partageur_syndiquer($id_partageur,$id_article,$id_rubrique);
     18        $cle = _request("cle");
     19       
     20  $callback = partageur_syndiquer($id_partageur,$id_article,$id_rubrique,$cle);
    2021 
    2122  if (is_int($callback)) {
     
    5253// effectue la syndicatioe  d'un article ($id_article) d'un site distant ($id_partageur) pour l'importer dans une rubrique ($id_rubrique)
    5354//---------------------------------------
    54 function partageur_syndiquer($id_partageur,$id_article,$id_rubrique=0) {
     55function partageur_syndiquer($id_partageur,$id_article,$id_rubrique=0,$cle="") {
    5556    include_spip("inc/distant");
    5657    include_spip("inc/syndic");
     
    6162    $log_html = "";
    6263    $id_nouvel_article = false;
     64    $cle = strip_tags($cle);
    6365   
    6466    //------------------------------- 
     
    8082     
    8183      $titre_site = $row_site["titre"];           
    82       $url_syndic = $row_site['url_site']."/spip.php?page=backend-partageur&id_article=$id_article";
     84      $url_syndic = $row_site['url_site']."/spip.php?page=backend-partageur&id_article=$id_article&cle=".urlencode($cle);
    8385      spip_log("partageur: ".$url_syndic);
    8486         
  • _plugins_/partageur/fonds/cfg_partageur.html

    r43910 r44012  
    55
    66<form method="post">[(#ENV{_cfg_}|form_hidden)]
     7 
     8   <fieldset><legend>Diffusion de vos articles</legend>
     9   <p>Si vous définissez une clé d'authentification, seuls les sites qui connaissent votre clé pourront importer vos articles.</p>
     10   <p>Si vous laissez cette clé vide, tous les sites pourront importer vos articles (valeur par défault)</p>
     11   <p> 
     12    <label> Clé d'authentification
     13    <input type="text" name="cle" class="fondl" size="32" value="[(#ENV{cle})]" /></label><br />
     14   
     15  </p>
     16  </fieldset>
     17 
     18   
    719 <fieldset><legend>Statut des articles import&eacute;s</legend>
    820      <select name="import_statut">
     
    1123      </select>
    1224 </fieldset>
     25 
     26  <fieldset><legend>Mots-clés: Export</legend>
     27  <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>
     28  <p><label><input type="checkbox" name="export_mot_evnt"[ checked="(#ENV{export_mot_evnt}|!={''}|?{'checked'})"] class="fondl" />Exporter les mots-clés des événements</label></p> 
     29  <p>Choisissez les groupes dont vous voulez exporter les mots-clés<br />
     30    #SET{which_groupe,#CONFIG{partageur/export_mot_groupe,#ARRAY{0,-1}}}[(#REM) inspi:plugin GIS]   
     31    <select name="export_mot_groupe[]" multiple="multiple" size="5">
     32      <option value="-1"[ (#EVAL{-1}|in_array{#GET{which_groupe}}|?{' selected="selected"'})]>Tous</option>
     33    <BOUCLE_groupes0(GROUPES_MOTS){par titre}>
     34      <option value="#ID_GROUPE"[ (#ID_GROUPE|in_array{#GET{which_groupe}}|?{' selected="selected"'})]>&rarr; #TITRE</option>   
     35    </BOUCLE_groupes0>
     36    </select>
     37  </p>
     38  </fieldset>
    1339 
    1440 
  • _plugins_/partageur/formulaires/editer_partageur.html

    r43926 r44012  
    2121                        <input name='url_site' id='champ_url_site' size="32" value='[(#ENV{url_site}|?{#ENV{url_site},http://})]' />
    2222                </li>   
     23               
     24                #SET{erreurs,#ENV**{erreurs}|table_valeur{cle}}
     25                <li class="editer_url_site[ (#GET{erreurs}|oui)erreur]">
     26                        <label for="champ_cle"><:partageur:label_cle:></label>
     27                        [<span class='erreur_message'>(#GET{erreurs})</span>]
     28                        <input name='cle' id='champ_cle' size="32" value='[(#ENV{cle})]' />
     29                </li>   
    2330     
    2431                </ul>
  • _plugins_/partageur/formulaires/editer_partageur.php

    r43926 r44012  
    3636        } else if ($row_site = sql_fetsel("url_site","spip_partageurs",'url_site='.sql_quote(_request('url_site'))))   
    3737           $erreurs['url_site'] = _T('partageur:flux_doublon');
    38      
    39    
     38 
    4039
    4140  }                             
     
    5655    $data_sql = array (                   
    5756                             "titre"    => _request('titre'),                   
    58                              "url_site" => _request('url_site')
     57                             "url_site" => _request('url_site'),
     58                             "cle"      => _request('cle')
    5959    );
    6060     
  • _plugins_/partageur/lang/partageur_fr.php

    r43926 r44012  
    1313  'creer_site_partage' => 'Ajouter un nouveau site partageur',
    1414  'copie' => 'Partageur: Import d\'article',
     15  'cle_incorrecte' => 'Mauvais clé d\'authentification',
    1516 
    1617  // D
     
    3637 
    3738  // L
     39  'label_cle' => 'Clé d\'authentification',
    3840  'label_titre' => 'Nom du site',
    3941  'label_url' => 'Adresse du site',
  • _plugins_/partageur/partageur_arbo_json.html

    r43910 r44012  
    11[(#HTTP_HEADER{Content-type: text/javascript[; charset=(#CHARSET)]})]
    2 arbocallback({
    3   "rubrique":[<BOUCLE_rubrique(RUBRIQUES){par num titre, titre}{id_parent}{", "}>
    4   {"id":"#ID_RUBRIQUE","titre":"#TITRE"}</BOUCLE_rubrique>
    5   ],
    6   "article":[<BOUCLE_article(ARTICLES){!par date}{id_rubrique}{0,100}{", "}>
    7   {"id":"#ID_ARTICLE","titre":"#TITRE"}</BOUCLE_article>
    8   ],
    9   "ariane":[<BOUCLE_ariane(HIERARCHIE){tout}{", "}>
    10   {"id":"#ID_RUBRIQUE","titre":"[(#TITRE|couper{15})]"} 
    11   </BOUCLE_ariane>] 
    12 });
     2[(#CONFIG{partageur/cle}|=={#ENV{cle}}|oui)<INCLURE{fond=inc/partageur_arbo_json}{env}/>]
     3[(#CONFIG{partageur/cle}|=={#ENV{cle}}|non)
     4arbocallback({"erreur":"cle"});
     5]
  • _plugins_/partageur/partageur_sites.html

    r43910 r44012  
    11[(#HTTP_HEADER{Content-type: text/javascript[; charset=(#CHARSET)]})]
    2 
    3 <B_partage><ul class='partage_contenu'>
    4 <BOUCLE_partage(PARTAGEURS)>
    5 <li class="url"><a href="#URL_SITE" rel="url#ID_PARTAGEUR">#URL_SITE</a></li></BOUCLE_partage></ul></B_partage><:partageur:erreur_aucun_site:><//B_partage>
     2<B_partage><ul class='partage_contenu'><BOUCLE_partage(PARTAGEURS)>
     3 [(#SESSION{statut}|=={0minirezo}|oui)<li class="url"><a href="#URL_SITE" rel="url#ID_PARTAGEUR" class="cle#CLE">#URL_SITE</a></li>]</BOUCLE_partage>
     4</ul></B_partage><:partageur:erreur_aucun_site:><//B_partage>
  • _plugins_/partageur/prive/js/partageur_arbo.js

    r43910 r44012  
    3434    }
    3535   
     36    // .... erreur ?
     37    if (data.erreur) {
     38        htm += "<li class='erreur'>Erreur: la clé de ce site est incorrecte</li>";   //FIXME lang ?
     39    }
    3640   
    3741    htm += "</ul>";
     
    4650                        ref = ref.substr(3);
    4751                        var id_rub = $(".cadre-info .numero p").html();                       
    48                         location.href  ="?exec=partageur_import&id_partageur="+id_url_site_partage+"&id_article="+ref+"&id_rubrique="+id_rub;                       
     52                        location.href  ="?exec=partageur_import&id_partageur="+id_url_site_partage+"&id_article="+ref+"&id_rubrique="+id_rub+"&cle="+cle_url_site_partage;                       
    4953                    }
    50                     else charge_arbo(ref,url_site_partage);
     54                    else charge_arbo(ref,url_site_partage,cle_url_site_partage);
    5155                   
    5256               }
     
    6165// charge un bout d'arbo
    6266// requete en json-p (requetes interdomaines)
    63 function charge_arbo(id_rubrique, url_site) {
    64     $.getJSON(url_site+'/spip.php?page=partageur_arbo_json&id_rubrique='+id_rubrique+'&arbocallback=?');
     67function charge_arbo(id_rubrique, url_site,cle_url_site_partage) {
     68    $.getJSON(url_site+'/spip.php?page=partageur_arbo_json&id_rubrique='+id_rubrique+'&cle='+cle_url_site_partage+'&arbocallback=?');
    6569}
    6670
     
    7175        $("#partageur_source li a").click(function(){
    7276             url_site_partage = $(this).attr("href");
    73              id_url_site_partage = $(this).attr("rel").substr(3);
    74              charge_arbo(0,url_site_partage);
     77             id_url_site_partage = $(this).attr("rel").substr(3);
     78             cle_url_site_partage = $(this).attr("class").substr(3);             
     79             charge_arbo(0,url_site_partage,cle_url_site_partage);
    7580             return false;
    7681         });
     
    8994var url_site_partage = "";
    9095var id_url_site_partage = 0;
     96var cle_url_site_partage = "";
    9197
    9298//----------------------------------
    9399// Main
    94100//----------------------------------
    95 $(document).ready(function(){
    96  
     101$(document).ready(function(){   
    97102    charge_sites();
    98103   
Note: See TracChangeset for help on using the changeset viewer.