Drupal a Twitter

Gouma se předevčírem podíval na zuby, či trefněji napsáno, zoubky mikroblogování a já se včera snažil zjistit, zda-li by si s mikroblogováním poradil Drupal. Samozřejmě, že mu to nečiní žádný problém :-)

Jak tedy na to? Předpokládám, že na Twitteru již registrovaní jste a taktéž odesílání nových příspěvků už jste důkladně ozkoušeli, zaměřme se tedy na samotnou konfiguraci Vašeho Drupalího webu.

  1. Povolte modul Aggregator a v Administraci → Správa obsahu → Agregátor zpráv přidejte RSS kanál pro Váš účet z Twitteru – jeho adresa vypadá přibližně takto: http://twitter.com/statuses/user_timeline/číslo.rss
  2. Přejděte do Administrace → Prvky webu → Bloky a vytvořte nový blok s tímto obsahem:
    <?php
    $fid = 1;
    $limit = 5;
    
    $result = db_query('SELECT description, timestamp FROM {aggregator_item} WHERE fid = '. $fid .' ORDER BY timestamp DESC LIMIT '. $limit);
    
    print '<div class="item-list"><ul>';
    while ($row = db_fetch_object($result)) {
        print '<li><div class="my-twitter-status">'. substr($row->description, 8) .'</div>';
        print '<div class="my-twitter-status-time">'. twitter_ago($row->timestamp) .'</div></li>';
    }
    print '</ul></div>';
    
    function twitter_ago($timestamp){
       $difference = time() - $timestamp;
       $text = format_interval($difference, 2) . " zpět";
       return $text;
    }
    ?>

    Kód pochází odsud, je však třeba jej mírně upravit, tak, jak jsem to pro Vás udělal já, aby vůbec fungoval a aby nenarušoval design. Na Vás tak zůstávají jen dvě změny.

    1. Hned na druhém řádku možná budete muset změnit hodnotu proměnné $fid, používáte-li modul Aggregator delší dobu a máte nebo měli jste v něm nějaké (jakékoli) zdroje nastaveny. Je-li toto Vaše první použití tohoto modulu, pravděpodobně bude dostačující hodnota 1, v opačném případě se ozvěte v komentářích, zkusím popsat postup, kterak zjistit správnou hodnotu.
    2. Na devátém řádku (počítám-li správně) budete muset změnit druhý parametr funkce substr. Správná hodnota je „počet písmen Vašeho nicku na Twitteru + 2“ a její změna na toto číslo způsobí, že každá zpráva nebude začínat Vaším nickem. Opravdu by mě zajímal zcela jistě vážný důvod, proč Twitter vkládá do každéch příspěvku nick…
  3. Aktivujte blok Usmívající se

To by mělo být vše, nicméně jedna moucha, vlastně spíš pořádný brouk, zůstává – netuším, proč se tak děje, ale občas se na několik hodin přestane RSS kanál aktualizovat. Prazvláštní je, že podívám-li se na kanál Firefoxem nebo wgetem, nové příspěvky v něm nevidím, zkusím-li totéž s Operou, nové příspěvky v kanálu jsou.

Už jsem to hlásil Twitteru jako chybu (neboť se skoro určitě jedná o problém na jejich straně), –do té doby mě jako řešení napadá použití Atom kanálu, který Twitter také nabízí, ten se zdá být (alespoň na základě mých chvilkových pokusů) aktuálnější.– Aby to ale nebylo tak ideální, vše nasvědčuje tomu, Aggregator neumí z Atom kanálu zpracovat datum publikování. Takže zbývá počkat, jestli ožije RSS kanál :-)


Average: 5 (1 hlas)

Komentáře

Re: Drupal a Twitter

parada, zacinam nad tim uvazovat Usmívající se Křenící se

Obrázek uživatele Miloso

Re: Drupal a Twitter

Určitě uvažuj, ono to má určité své kouzlo, moct se vypsat z čehokoli :-)

Re: Drupal a Twitter

jj díky za tip.Usmívající se

zní to dobře ale asi

zní to dobře ale asi zůstanu u svýho.Usmívající se

Re: Drupal a Twitter

spravny kod vypada takhle, predchozi ma par bezpecnostnich much :)

<?php
$fid = 1;
$limit = 5;

$result = db_query("SELECT description, timestamp FROM {aggregator_item} WHERE fid = '%d' ORDER BY timestamp DESC LIMIT '%d'", $fid, $limit);

print '<div class="item-list"><ul>';
while ($row = db_fetch_object($result)) {
    print '<li><div class="my-twitter-status">'. substr(check_plain($row->description), 8) .'</div>';
    print '<div class="my-twitter-status-time">'. twitter_ago($row->timestamp) .'</div></li>';
}
print '</ul></div>';

function twitter_ago($timestamp){
   $difference = time() - $timestamp;
   $text = format_interval($difference, 2) . " zpět";
   return $text;
}
?>

Re: Drupal a Twitter

Můžete někdo poslat pls adresu kde je tento kód zprovozněn ?

Poslat nový komentář

Smajlíci
>:-P>:-(:-]:-?B-):-[>:-D:-(:-oX-(:-D;-DO:-):-*:-X>:-):-$>:-|:-!>:-O|-):-):->:-|:-P;-P;-):'-(:-\
Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • K formátování a úpravě obsahu můžete použít Texy!
  • Textoví smajlíci budou nahrazeni jejich grafickými ekvivalenty.
  • Můžete citovat jiné příspěvky pomocí tagu [quote].

Více informací o možnostech formátování

CAPTCHA
Otázka sloužící k ověření, zda-li je pisatel člověk (alespoň biologicky) a zabránění automatickému spamování.
Image CAPTCHA
Zkopírujte znaky z obrázku, velikost písmen hraje roli.
Syndikovat obsah