Drupal má Twitter moc rád

Při vytváření nového webu jsem samozřejmě chtěl zachovat všechny užitečné funkce z webu starého, přičemž jednou z nich byl výpis nejnovějších komentářů z Twitteru.

Podobně jako u většiny jiných informatických problémů, i zde existuje čisté řešení v podobě modulu nazvaného příznačně Twitter a… nazvěme to „ne zrovna čistým řešením“, což není nic jiného, než nový blok s kusem PHP kódu. K tomuto přístupu jsem se také po krátké úvaze uchýlil a nezbývá, než-li se s vámi podělit o ten kus úchvatného kódu, který jsem vyplodil.

Prvně bude třeba povolit modul Aggregator, který bude od Twitteru v zadaném intervalu stahovat RSS s vašimi komentáři. Učinit tak můžete na stránce /admin/build/modules v kategorii Jádro – nepovinné. Spolu s Aggregatorem povolte i modul PHP filter ze stejné kategorie, bude se hodit později. Pak zamiřte na /admin/content/aggregator/add/feed a přidejte adresu RSS zdroje – tu můžete zjistit letmým pohledem do zdrojového kódu vašeho profilu na Twitteru.

Druhým krokem je samotné vytvoření bloku, což můžete provést na stránce /admin/build/block/add. Vyplňte popis a nadpis (popis je pro vás, nadpis uvidí uživatelé) bloku a jako tělo vložte tuto menší „šílenost“:

<?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)) {
  $text = $row->description;
  $nick = explode(":", $text);
  $nick = $nick[0];
  $nicklen = strlen($nick) + 2; 
  $text = substr($text, $nicklen);
  $text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);
  $text = preg_replace('@\@([\w]+)@', '<a href="http://twitter.com/$1">$1</a>', $text);
  print '<li><div class="my-twitter-status">';
  if (($text[0] != '<') && ($text[0] == strtolower($text[0]))) {
    print $nick . ' ';
  }
  print $text . '</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;
}
?>

A to ještě buďte rádi, že jste neviděli první verzi, která byla distribuována obchodní metodou IKEA – dodělej doma. Čímž chci říct, že tahle verze je alespoň trošku učesanější, než ta hrůza, kterou jsem chtěl světu ukázat prvně. Vážně.

Chcete-li ovlivnit počet vypsaných komentářů, stačí změnit hodnotu proměnné $limit. Naopak obsah proměnné $fid pravděpodobně nebude třeba měnit, leda byste již v minulosti používali modul Aggregator – a v takovém asi případě víte, jak zjistit správné $fid.

Nezapomeňte změnit formát bloku na PHP a povolit jeho zobrazování, stojí-li bohyně při vás, vše by v tuto chvíli mělo fungovat; pokud se tak stalo, nezapomeňte se podělit v diskuzi, v opačném případě na lampárně.

Komentáře

Obrázek uživatele Anonym

Zajímavé... A komu tím

Zajímavé... A komu tím prospěješ? :D

Obrázek uživatele Anonym

Komu to láduješ ty NULO?

Komu to láduješ ty NULO?

Obrázek uživatele miloso

Ale tak pánové… :-P

Ale tak pánové… :-P

Obrázek uživatele Anonym

Tiffany Charms hair smooth

Tiffany Charms hair smooth leather coat collocation and who are very big satchel gedaliah, and in the dust coat the draw on some Tiffany co jewellry revealed a nifty breath more Tiffany Bangles

Obrázek uživatele Anonym

Dobrý leda jako krmení pro

Dobrý leda jako krmení pro pavouky...

Obrázek uživatele Anonym

Je někde ukázka výsledku?

Je někde ukázka výsledku?

Obrázek uživatele Anonym

nice to this artcle

nice to this artcle

Obrázek uživatele Anonym

You nicely summed up the

You nicely summed up the concern.

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen. Používáte-li službu Gravatar, bude obsah pole použit k zobrazení avataru.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Řádky a odstavce se zalomí automaticky.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>. Beside the tag style "<foo>" it is also possible to use "[foo]".

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