Ignore:
Timestamp:
12/19/10 15:20:41 (9 years ago)
Author:
b_b
Message:

maj de la fonction de decouverte des liens de trackback (après test celle utilisée par dotclear ne semble pas fonctionner)

File:
1 edited

Legend:

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

    r4631 r4640  
    105105//decouvrir les entete de definitions de trackback des pages distantes
    106106function auto_decouverte_trackback($link) {
    107         $pageContents = recuperer_page('http://'.$link);
    108        
    109         // trouve dans DotClear (RDF)
    110         // Fonction getPingURL
    111         // inc/core/class.dc.trackback.php
    112         preg_match_all('/(<rdf:RDF.*?<\/rdf:RDF>)/sm', $pageContents, $rdf_all, PREG_SET_ORDER);
    113        
    114         for ($i=0; $i<count($rdf_all); $i++) {
    115                 if (preg_match('|dc:identifier="http://'.preg_quote($link).'"|ms',$rdf_all[$i][1])) {
    116                         //trouver l'attribut trackback:ping dans le tag rdf:Description
    117                         if(preg_match('/<rdf:Description([^>]*)\/>/ms', $rdf_all[$i][1], $rdf_descr)) {
    118                                 if(preg_match('/trackback:ping[[:space:]]*=[[:space:]]*"(http:\/\/([^"]+))"/ms',
    119                                         $rdf_descr[1], $tb_ping_url)) {
    120                                         return $tb_ping_url[1];
    121                                 }
    122                         }
    123                 }
     107        $page_content = recuperer_page('http://'.$link);
     108
     109        // trouve dans le module trackback de drupal
     110        if (preg_match('/.*<rdf:RDF.*trackback:ping="([^"]+)".*<\/rdf:RDF>.*/s', $page_content, $tb_ping_url)) {
     111                spip_log('trackback trouve rdf','trackbacks');
     112                return $tb_ping_url[1];
    124113        }
    125 
    126114        //trouve dans WordPress (le premier rel="trackback" de la page)
    127         if(preg_match('/<a href="([^"]+)" rel="trackback">[^<]+<\/a>/ms', $pageContents, $tb_ping_url)){
     115        if(preg_match('/<a href="([^"]+)" rel="trackback">[^<]+<\/a>/ms', $page_content, $tb_ping_url)){
     116                spip_log('trackback trouve a rel trackback','trackbacks');
    128117                return $tb_ping_url[1];
    129                 spip_log('trackback wordpress','trackbacks');
    130118        }
    131119        else{
Note: See TracChangeset for help on using the changeset viewer.