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
Zajímavé... A komu tím
Zajímavé... A komu tím prospěješ? :D
Komu to láduješ ty NULO?
Komu to láduješ ty NULO?
Ale tak pánové… :-P
Ale tak pánové… :-P
Dobrý leda jako krmení pro
Dobrý leda jako krmení pro pavouky...
Poslat nový komentář