TwitterControl je komponenta, která umožní po přidání do Nette zobrazovat několik posledních tweetů pomocí veřejného TwitterAPI.
Samotnou komponentu (stahujte
odsud) a její šablonu (.phtml) hodíme třeba do složky app/components.
K chodu je potřeba třída cURL (přibalena) zastřešující curl funkce,
kterou udělal bůh-ví-kdo, ale důležité je, že ji uvolnil pod licencí
MIT.
Všechny tyhle pomocné třídy skladuji v jedné složce, ale když
používáte RobotLoader je naprosto jedno, kde bude třída umístěna.
Dalším krokem je konfigurace. Do konfiguráku je potřeba přidat tyto klíče:
twitter> username = jméno
twitter> password = heslo
twitter> cachetime = 120
twitter> count = 5
V nové verzi Nette (tuším, že od revize 61 a dál) vypadá konfigurace jinak (kvůli striktnějšímu ini parseru, který přijde s PHP 5.3), takže pak bude vypdat takhle:
twitter.username = jméno
twitter.password = heslo
twitter.cachetime = 120
twitter.count = 5
Všechny hodnoty kromě cachetime, který udává dobu, jak
dlouho se bude kešovat, jsou povinné. Když cachetime nastavíme na nulu nebo
vynecháme, tak se (překvapivě) nekešuje.
Kešování se hodí z důvodu, že se vždycky nečeká na odezvu serveru a pak taky Twitter má limit počtu požadavků (70 na hodinu a IP).
Aby to celé nějak fungovalo, musí se vytvořit instance třídy a předat do šablony, aby se mohla vykreslit. Ideální místo je BasePresnter::startup (počítám s tím, že se komponenta zobrazuje na každé stránce, jako třeba tady na k47čce v záhlaví) a vypadalo by to nějak takhle:
$this->template->twitter = new TwitterControl($this, 'twitter');
Pak už zbývá jenom nějak upravit šablonu TwitterControl.phtml a do nadřazené šablony přidat kouzelnou formuli
{? $twitter->render() }
která celý ten zázrak vykreslí.


Jmenuji se K., v síti také známý jako
komentáře