del.icio.us MT

De blogmarks zijn geconverteerd naar delicacies (del.icio.us bookmarks), en de lijst in de rechterbalk is vervangen door de del.icio.us linklijst.

Ik had er eventjes over gedacht om deze instructies te volgen (zie ook bij Michel), maar ik geef liever geen MT paswoorden aan een ander systeem vrij. Dus heb ik maar wat verder gezocht.

En uiteindelijk heb ik gekozen voor een combinatie van php en cron. Ik heb mij gebaseerd op Integrating del.icio.us with PHP and Magpie.

Opgelet, opdat dit bij jou zou werken, moet je server/provider PHP en SSI ondersteunen.

  1. Download en installeer MagpieRSS. Laat u niet afschrikken: download de meest recente versie (nu was dat magpierss-0.61.tar.gz) vanop sourceforge en unzip. De installatie zelf bestaat uit niet meer dan een aantal files (rss_cache.inc, rss_fetch.inc, rss_parse.inc en rss_utils.inc) uploaden naar een directory naar keuze, en daarin de subdirectory extlib met de file Snoopy.class.inc plaatsen.
  2. Plaats in dezelfde directory (niet die subdirectory) een nieuwe file (laten we zeggen delciousrss.php), waarin de volgende code zit:

    <?php
    require_once('rss_fetch.inc');
    require_once('rss_utils.inc');
    $yummy = fetch_rss("http://del.icio.us/rss/yourusername");
    $maxitems = 10;
    $yummyitems = array_slice($yummy->items, 0, $maxitems);

    $data = '<dt>del.icio.us</dt>';
    foreach ($yummyitems as $yummyitem) {
    $data .= '<dd>';
    $data .= '<a href="';
    $data .= $yummyitem['link'];
    $data .= '">';
    $data .= $yummyitem['title'];
    $data .= '</a> / ';
    $published = parse_w3cdtf($yummyitem['dc']['date']);
    $data .= date("d.m", $published);
    $data .= '</dd>';
    $data .= "n";
    }
    $data .= '<dd>&raquo; meer <a href="http://del.icio.us/yourusername">delicacies</a></dd>';

    $save_path='/your/save/path'; #define target path
    $temp='file.tmp'; #define temporary target name
    $dest='delilist.htm'; #define final destination target name

    $fp = fopen($save_path.'/'.$temp, "w", 0); #open for writing
    fputs($fp, $data); #write all of $data to our opened file
    fclose($fp); #close the file
    #rename tmp file to dest file
    rename($save_path.'/'.$temp,$save_path.'/'.$dest);
    ?>

    Die code haalt de laatste 10 bookmarks ($maxitems = 10;) die je op del.icio.us hebt gepost. Opgelet: wijzig in de bovenstaande code nog het volgende: vervang yourusername door uw del.icio.us username (volume12 in mijn geval). Vervang /your/save/path door het pad waar je de resulterende file wil wegschrijven. (Als je met MT werkt, kan bijvoorbeeld het Local Site Path uit je weblog config gebruiken.)

  3. In de template waar je die laatste 10 bookmarks wil tonen, voeg je het volgende in:
    <!--#include virtual="/delilist.htm" -->
    Opgelet: in die template moet SSI kunnen gebruiken. Bij de meeste providers volstaat het je template de extensie .shtml te geven.
  4. Gebruik http://www.jouwwebsite.be/delciousrss.php om de lijst te genereren. (Als je die URL gebruikt –aangepast voor jouw website–, krijg je enkel een blanco pagina te zien –maar dat is goed nieuws, want dat betekent dat het bestand werd gegenereerd.)

Voila.
Je zou ook het PHP bestand (delciousrss.php) rechtsreeks in je template kunnen inbrengen ipv eerst naar een ander bestand (delilist.htm) weg te schrijven. Dit zou echter beteken dat, telkens iemand jouw pagina opvraagt, je ook de del.icio.us server aanspreekt –en dit wordt niet toegestaan:

You can fetch your links in a simple HTML feed; documentation is at /doc/html. Please do not include it with an <IFRAME> as this will cause one hit to del.icio.us per one hit on your site. Likewise, please don’t fetch it every time via PHP. This sort of behavior will be considered abusive.

In een volgende post leg ik uit hoe je de update automatisch via een cron job kan laten verlopen.

Een gedachte over “del.icio.us MT”

Reacties zijn gesloten.