b2 hacking

This post is older than 30 days, it may contain outdated informations.

Un po’ di coding su b2.

Pingare Technorati

Se appositamente configurato, ogni volta che si inserisce un nuovo post b2 invia una notifica di aggiornamento (ping) ad alcuni aggregatori (blo.gs e Weblogs.com).

Con questa modifica, sarà possibile inviare la notifica anche a Technorati.

Queste stesse istruzioni sono disponibili, in inglese, sul Wiki degli sviluppatori di Technorati.

  1. Aggiungere questa funzione al file b2-include/b2functions.php:
    function pingTechnorati($blog_ID = 1)
    {
       global $use_technoratiping, $blogname,$siteurl,$blogfilename;
       if ((!(($blogname=="my weblog") && ($siteurl=="http://example.com") && ($blogfilename=="b2.php"))) && 
       (!preg_match("/localhost/",$siteurl)) && ($use_technoratiping)) 
       { 
          $client = new xmlrpc_client("/rpc/ping", "rpc.technorati.com", 80); 
          $message = new xmlrpcmsg("weblogUpdates.ping", array(new xmlrpcval($blogname), 
                      new xmlrpcval($siteurl."/"))); 
          $result = $client->send($message); 
          if (!$result || $result->faultCode()) 
             return(false); 
    
          return(true); 
       } 
       else 
          return(false); 
    }
  2. Nel file b2config.php impostare la variabile $use_technoratiping = 1;
  3. Modificare il file b2edit.php (all’interno del case 'post'):
    pingWeblogs($blog_ID);
    pingCafelog($cafelogID, $post_title, $post_ID);
    pingBlogs($blog_ID);
    pingTechnorati($blog_ID); /* <--- AGGIUNGERE QUESTA RIGA */

Feed RDF

Vediamo come aggiungere nuove informazioni al feed RDF generato da b2 (licenza CreativeCommons, trackback URL, FOAF).

  1. Aggiungiamo i seguenti nuovi namespace all’elemento <rdf:RDF>:
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:cc="http://web.resource.org/cc/"
    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
    xmlns:foaf="http://xmlns.com/foaf/0.1/"
    
  2. All’interno dell’elemento <channel>, aggiungere la linea <foaf:maker rdf:nodeID="XXXX" />, sostituendo a XXXX il vostro nick. N.B. in una precedente versione di questo documento, suggerivo di inserire questo riferimento all’interno dell’elemento <dc:creator>, ma questa pratica è scoraggiata (vedi Using Dublin Core Creator in favore dell’uso di <foaf:maker>.
  3. Sempre all’interno dell’elemento <channel>, aggiungere la linea <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/1.0/" /> (eventualmente sostituendo la URL con quella relativa alla licenza da voi prescelta)
  4. All’interno dell’elemento <item>, che si trova nel ciclo principale di b2, aggiungiamo la riga <trackback:ping rdf:resource="<?php trackback_url(); ?>" />
  5. Direttamente sotto l’elemento <rdf:RDF> (l’ideale è alla fine del file, subito prima del tag di chiusura), aggiungiamo i metadata relativi alla licenza Creative Commons da noi prescelta (questi di seguito fanno riferimento alla Attribution-ShareAlike):
    <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/1.0/">
       <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction" />
       <cc:permits rdf:resource="http://web.resource.org/cc/Distribution" />
       <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
       <cc:requires rdf:resource="http://web.resource.org/cc/Notice" />
       <cc:requires rdf:resource="http://web.resource.org/cc/Attribution" />
       <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
    </cc:License>
  6. Subito dopo, aggiungiamo un elemento <foaf:Document> ed un <foaf:person>, che contengono i vostri dati essenziali ed un rimando al vostro file FOAF completo (sempre sostituendo XXXX con il vostro nick):
    <foaf:Document rdf:about="">
       <foaf:maker rdf:nodeID="XXXX" />
    </foaf:Document>
    <foaf:person rdf:ID="XXXX">
       <foaf:name>Nome e Cognome</foaf:name>
       <foaf:nick>XXXX</foaf:nick>
       <foaf:mbox_sha1sum> Hash SHA1 dell'indirizzo e-mail </foaf:mbox_sha1sum>
       <rdfs:seeAlso rdf:resource="URL del vostro file FOAF" />
    </foaf:person>
  7. Verificare la correttezza del feed con il validatore RDF del W3c e con feedvalidator

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Copyright © Fabrizio Tarizzo

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Italy License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/it/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.