Twitter Control
Vykresliteľná komponenta pre zobrazenie Twitter feedu.
| Verzia | 2.0 |
|---|---|
| Github | smasty/TwitterControl |
| Demo | http://labs.smasty.net/…ter-control/ |
| Fórum | http://forum.nette.org/…d-komponenta |
| Autor | Martin Šrank – Smasty |
| Licencia | MIT |
| Verzia Nette | 2.0 PHP 5.3, 2011–05–28 a neskoršie. |
Vlastnosti

- Jednoduché použitie
- Vysoká konfigurovateľnosť
- Tri preddefinované render štýly
- Pekne naformátované retweets a replies
- Možnosť zobraziť/skryť hlavičku s informáciami o autorovi
- Možnosť zobraziť/skryť avatary vedľa tweetu
- Podporuje Twitter Web Intents – Akcie reply, retweet, favorite priamo v tweete (možnosť povoliť/zakázať)
- Zobrazuje čas v slovnom formáte zhodnom s Twitterom (založené na timeAgoInWords)
- Podpora pre Tweet Entites
- Podpora pre Media Entities – obrázky z tweetov sa zobrazia formou „lightboxu“.
- Možnosť zmeniť šablónu, spôsob načítavania tweetov a aj spôsob ich
formátovania (rozhrania
IFormatteraILoader). - Základná šablóna splňuje Twitter Design Guidelines
- Nevyžaduje prítomnosť rozšírenia curl a od verzie 2.0 ani prítomnosť mbstring.
- Nevyžaduje Twitter API key, ale nepodporuje profily s protected tweets.
Použitie
Do šablóny treba pripojiť súbor TwitterControl.css spolu so
sprite obrázkom z adresára client-side, taktiež aj
súbor TwitterControl.js (vyžaduje jQuery).
Továrnička v presenteri:
protected function createComponentTwitterFeed($name){
return new Smasty\Components\Twitter\Control(array(
'screenName' => 'TesterJohnny',
'tweetCount' => 5
));
}
Môžeme nadefinovať aj ďalšie možnosti zobrazenia (viď. možnosti nastavnia).
V šablóne môžeme zvoliť jedno z troch predvolených zobrazení:
{control twitterFeed:full}
{control twitterFeed:medium}
{control twitterFeed:minimal}
Pomocou parametra render metód môžeme zobrazenie ďalej pozmeniť:
{control twitterFeed:minimal, tweetCount => 7, retweets => false}
Môžeme tiež použiť kompletne vlastné zobrazenie, stačí použiť základnú render metódu a konfiguráciu uviesť až v šablóne, alebo naopak hneď v konštruktore komponenty:
{control twitterFeed, retweets => false, replies => true, intents => false}
Súbor so šablónou môžete zmeniť pomocou metódy
setTemplateFile(), ktorá používa fluent interface a vracia
inštanciu komponenty.
Konfigurácia
TwitterControl podporuje široké množstvo nastavení, ktoré je možné konfigurovať v štyroch úrovniach:
- Použitím východzích hodnotôt
- Konfigurácia v konštruktore komponenty
- Použitím niektorej z troch pripravených render metód
- Priamo v šablóne pomocou parametrov makra
{control}.
V tomto poradí je aj priorita možností, čo teda definujete v šablóne, prepíše hodnoty definované render metódou, tá zase prepíše hodnoty definované v konštruktore, ktorý prepíše východzie hodnoty (trochu komplikovaná veta…)
Konfigurácia sa vždy udáva vo forme asociatívneho poľa, výnimkou je len
konštruktor, kde je možné uviesť screenName z Twitteru (ako
string) alebo číselné ID používateľa.
Dostupné parametre
| Parameter | Typ | Predvolená hodnota | Popis |
|---|---|---|---|
screenName |
string |
null |
Twitter meno používateľa * |
userId |
int |
null |
Číselné ID používateľa * |
tweetCount |
int |
5 |
Počet zobrazených tweetov |
header |
bool |
true |
Zobraziť hlavičku s užívateľskými informáciami |
avatars |
bool |
true |
Zobraziť avatary vedľa tweetov |
retweets |
bool |
true |
Zobraziť retweety |
replies |
bool |
true |
Zobraziť tweety, ktoré sú replies |
intents |
bool |
true |
Zobraziť Tweet Intents (akcie Reply, Retweet, Favorite) |
* Povinné je definovať buď screenName alebo
userId. Ak sú definované obe, použije sa len
userId.
Rozšíriteľnosť
Od verzie 2.0 TwitterControl podporuje možnosť použitia vlastnej triedy
zodpovednej za načítavanie tweetov. Taktiež je možné zmeniť aj triedu
zodpovednú za formátovanie tweetov. Slúžia na to rozhrania
Smasty\Components\Twitter\ILoader a IFormatter.
protected function createComponentTwitterFeed($name){
$control = new Smasty\Conponents\Twitter\Control(array(...));
// použijeme vlastný loader
$control->setLoader(new My\Super\OAuthLoader($authKey));
// zmeníme formátovanie tweetov
$control->setFormatter(new My\Super\TweetFormatter());
return $control;
}
Plány do budúcnosti
- Možnosť prekladu komponenty pripojením translatoru ako vo formulároch
(
$twitterControl->setTranslator()). - Pokročilé cachovanie tweetov.
