Ignore:
Timestamp:
12/16/10 23:07:40 (9 years ago)
Author:
b_b
Message:

toujours de l'upgrade en vrac :
-* des squelettes pour les blocs du privé qu'on s'insère sur les pages articles et breves
-* un formulaire CVT objet/id_objet pour les trackbacks extensible à d'autres objets par la suite (il faudra maj prepare_trackback())
-* envoyer des urls publics dans les pings
-* ménage dans les pipelines et les logs
-* le ping fonctionne :)

Location:
plugins_spip/trackbacks
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • plugins_spip/trackbacks/action/envoi_trackback.php

    r2509 r4631  
    11<?php
    22if (!defined("_ECRIRE_INC_VERSION")) return;
     3
     4include_spip("inc/distant");
    35
    46function action_envoi_trackback() {
  • plugins_spip/trackbacks/inc/envoi_trackback.php

    r2513 r4631  
    66include_spip("inc/distant"); //pour recuperer_page() et init_http()
    77include_spip("public/composer");
    8 //include_ecrire("inc_abstract_sql.php3"); //pour spip_abstract_fetsel()
    9 
    10 function inc_envoi_trackback_dist($id){
    11         $table = 'spip_articles';
    12         $col_id = id_table_objet('articles');
    13         $type= 'article';
    14         $res = debut_cadre_formulaire('',true);
    15        
    16         list($id_rubrique) = sql_fetch(sql_select("id_rubrique","$table","id_article=".sql_quote($id)));
    17 
    18         $donnees = prepare_trackback($type, $id);
    19         if(empty($donnees)) {
    20                 $res .= _L('il faut selectionner un article ou une breve publie(e) et correctement date(e)');
    21         }
    22        
    23         $list_url = implode("\n", $donnees['liste_urls']);
    24         $excerpt = $donnees['excerpt'];
    25        
    26         $action = generer_url_action("envoi_trackback","$col_id=$id");
    27        
    28         $res .=  "<form action='$action' name='formulaire' method='post'>";
    29         $res .=  _L('Liste des pings a faire')."<br /><textarea name='list_url' rows='10' class='formo' cols='40' wrap=soft>";
    30         $res .=  $list_url;
    31         $res .=  "</textarea><p>\n";   
    32         $res .=  _L('Extrait a envoyer')."<br /><textarea name='excerpt' rows='10' class='formo' cols='40' wrap=soft>";
    33         $res .=  $excerpt;
    34         $res .=  "</textarea><p>\n";
    35        
    36         foreach ($donnees as $name => $value) {
    37                 if($name!='liste_urls' AND $name!='excerpt')
    38                         $res .= "<input type='hidden' name='".$name."' value='".$value."' />";
    39         }
    40 
    41         $res .= "<input class='fondo' type='submit' name='envoyer_trackback' value='Envoyer'>";
    42         $res .=  "</form>";
    43 
    44         //resultats
    45         if(!empty($resultats)) {
    46                 $res .= "<div>";
    47                 $res .=  _L('ici les resultats');
    48                 $res .= "<ul>";
    49                 foreach($resultats as $res => $ok) {
    50                         $res .= "<li><small>".($ok[0]?"OK":"KO")." </small><tt>".$res."</tt> : ".$ok[1]."</li>";
    51                 }
    52                 $res .= "</ul>";
    53                 $res .= "</div>";
    54         }
    55 
    56         $res .= fin_cadre_formulaire(true);
    57         return $res;
    58 }
    598
    609function prepare_trackback($type, $id_objet) {
     
    7120                        $post_dates = lire_meta("post_dates");
    7221                        if($post_dates=='non') $where = array_merge($where, array('date<=NOW()'));
    73                         $url = generer_url_entite($id_objet, 'article');
     22                        $url = generer_url_entite($id_objet, 'article', '', '', true);
    7423                        break;
    7524                case 'breve':
    7625                        $select = array_merge($select, array('lien_url'));
    7726                        $where = array_merge($where, array('date_heure<=NOW()'));
    78                         $url = generer_url_entite($id_objet, 'breve');
     27                        $url = generer_url_entite($id_objet, 'breve', '', '', true);
    7928                        break;
    8029                default:
     
    8837                $liste_urls = array();
    8938                foreach($liens as $link) {
    90                         spip_log("link = $link",'trackback');
    91                         spip_log(auto_decouverte_trackback($link),'trackback');
     39                        spip_log("link = $link",'trackbacks');
     40                        spip_log(auto_decouverte_trackback($link),'trackbacks');
    9241                        if(($ping = auto_decouverte_trackback($link)) !== false)
    9342                                $liste_urls[] = $ping;
     
    178127        if(preg_match('/<a href="([^"]+)" rel="trackback">[^<]+<\/a>/ms', $pageContents, $tb_ping_url)){
    179128                return $tb_ping_url[1];
    180                 spip_log('trackback wordpress','trackback');
     129                spip_log('trackback wordpress','trackbacks');
    181130        }
    182131        else{
    183                 spip_log('no trackback','trackback');
     132                spip_log('no trackback','trackbacks');
    184133        }
    185134
     
    198147}
    199148
     149/*
    200150function envoi_trackback($ping, $datas) {
    201151        //TODO:detection du charset distant et conversion si necessaire
     
    224174        }
    225175}
    226 
     176*/
    227177?>
  • plugins_spip/trackbacks/lang/trackbacks_fr.php

    r2509 r4631  
    3434'info_pas_de_trackback' => 'Pas de trackback',
    3535'info_rss' => 'TrackBack item for this blog',
     36'info_trackback' => 'Trackbacks',
     37
     38//L
     39'label_excerpt' => 'Extrait a envoyer',
     40'label_liste_pings' => 'Liste des pings &agrave; faire',
    3641
    3742//N
  • plugins_spip/trackbacks/trackbacks_pipeline.php

    r2509 r4631  
    11<?php
    2         function trackbacks_affiche_milieu($flux){
    3                 if ($flux['args']['exec']=='articles'){
    4                         $id_article = $flux['args']['id_article'];
    5                         $statut_article = sql_getfetsel("statut","spip_articles","id_article=".sql_quote($id_article));
    6                         $post_dates = lire_meta("post_dates");
    7                         $date_ok = ($post_dates=='oui' OR ($post_dates=='non' AND $date<=date("Y-m-d H:i:s")));
    82
    9                         if ($GLOBALS['visiteur_session']['statut']=='0minirezo' AND $statut_article=='publie' and $date_ok) {
    10                                
    11                                 $envoi_trackback = charger_fonction('envoi_trackback', 'inc');
    12                                
    13                                 $track_form = "<table width='100%'><tr>";
    14                                 $track_form .= "<tr><td>"
    15                                         . $envoi_trackback($id_article)
    16                                         . "</td></tr";
    17                                 $track_form .= "</tr></table>";
    18                                
    19                                 $track_recu = "<table width='100%'><tr>";
    20                                 $track_recu .= "<tr><td>"
    21                                         . icone_horizontale(_T('trackbacks:icone_suivi_cet_article'),generer_url_ecrire("controle_forum","mode=trackbacks&id_article=$id_article"), "trackback-24.png", "creer.gif",false)
    22                                         . "</td></tr";                         
    23                                 $track_recu .= "</tr></table>";
    24                                
    25                                 $bouton = _T('trackback:info_trackback');
    26                                
    27                                 $res = debut_cadre_enfonce('langues-24.gif', true, "",
    28                                         bouton_block_depliable($bouton,$flag === 'ajax','trackback_envoi,trackback_recu'))
    29                                                 . debut_block_depliable($flag === 'ajax','trackback_envoi')
    30                                                 . $track_form
    31                                                 . fin_block()
    32                                                 . debut_block_depliable($flag === 'ajax','trackback_recu')
    33                                                 . $track_recu
    34                                                 . fin_block()
    35                                                 . fin_cadre_enfonce(true);
    36                                
    37                                 $flux['data'] .= ajax_action_greffe("envoyer_trackback", $id_article, $res);
    38                         }
     3function trackbacks_affiche_milieu($flux){
     4        if ($flux['args']['exec']=='articles'){
     5                $id_article = $flux['args']['id_article'];
     6                $statut_article = sql_getfetsel("statut","spip_articles","id_article=".sql_quote($id_article));
     7                $post_dates = lire_meta("post_dates");
     8                $date_ok = ($post_dates=='oui' OR ($post_dates=='non' AND $date<=date("Y-m-d H:i:s")));
     9                if ($GLOBALS['visiteur_session']['statut']=='0minirezo' AND $statut_article=='publie' and $date_ok) {
     10                        $flux['data'] .= trackbacks_bloc_prive('article',$id_article);
    3911                }
    40                 return $flux;
    4112        }
     13        if ($flux['args']['exec']=='breves_voir'){
     14                $id_breve = $flux['args']['id_breve'];
     15                $statut_breve = sql_getfetsel("statut","spip_breves","id_breve=".sql_quote($id_breve));
     16                if ($GLOBALS['visiteur_session']['statut']=='0minirezo' AND $statut_breve=='publie') {
     17                        $flux['data'] .= trackbacks_bloc_prive('breve',$id_breve);
     18                }
     19        }
     20        return $flux;
     21}
     22
     23function trackbacks_bloc_prive($objet,$id_objet){
     24        $bouton = bouton_block_depliable(_T('trackbacks:info_trackback'), false, "pave_trackbacks_depliable");
     25        $bloc = debut_cadre_enfonce(find_in_path('prive/images/trackback-24.png'), true, "", $bouton);
     26        $bloc .= recuperer_fond('prive/contenu/trackbacks_objet', array('objet'=>$objet, 'id_objet'=>$id_objet));
     27        $bloc .= fin_cadre_enfonce(true);
     28        $bloc .= "</div>";
     29        return $bloc;
     30}
     31
    4232?>
Note: See TracChangeset for help on using the changeset viewer.