Twitter komponenta
- Ondřej Brejla
- Člen | 746
Něco to kdysi bývalo…kdyby ne, tak mám takovou minikomponentku, která ani nepotřebuje curl.
- dotTwelve
- Člen | 167
Ondřej Brejla napsal(a):
Něco to kdysi bývalo…kdyby ne, tak mám takovou minikomponentku, která ani nepotřebuje curl.
Tak jestli můžu poprosit. Tu starší komponentu jsem našel, která využívá CURL, ale musel jsem tam dvě věci opravit, aby se mi t zobrazovalo korektně bez chyb.
Za tu tvou budu vděčný.
- Ondřej Brejla
- Člen | 746
Teď ti nerozumím…však moje minikomponentka se jmenuje
TwitterControl
:-D Ostatně podobně jako všechny moje
komponenty ;-)
- Ondřej Mirtes
- Člen | 1536
S Twitterem pracuje Davidovo udělátko Twitter for PHP, udělat si TwitterControl je fakt snadné )
- Ondřej Brejla
- Člen | 746
Ono udělátko, bohužel, pracuje s cURL…proto jsem ho nemohl použít.
Jinak je to moc pěkné :-) A jak říká Ondřej, udělat si
TwitterControl
je opravdu snadné :-)
- Jod
- Člen | 701
Ja používam Davidov twitter for php s curlom.
Ak sa niekomu zíde TwitterControl :)
Control:
<?php
class TwitterControl extends Control
{
/** @persistent */
public $page = 1;
public $rowsPerPage = 5;
function handlePage($page)
{
$this->invalidateControl();
}
function render()
{
$template = $this->createTemplate();
$template->setFile(dirname(__FILE__) . '/twitter.phtml');
try {
$channel = $this->twitter->load(false, $this->rowsPerPage, $this->page);
$template->channel = $channel;
}
catch(TwitterException $ex) {
$template->message = $ex->getMessage();
}
$template->page = $this->page;
$template->rowsPerPage = $this->rowsPerPage;
$template->render();
}
function getTwitter()
{
static $twitter;
if(null === $twitter) {
$config = Environment::getConfig('twitter');
$username = $config->username;
$password = $config->password;
$twitter = new Twitter($username, $password);
}
return $twitter;
}
}
?>
Template:
{snippet}
<div class="twitter">
{if !empty($message)}
<div>
{$message}
</div>
{/if}
{if !empty($channel)}
<ul>
{for $i=0;$i<count($channel->status);$i++}
<li{if $i%2} class="odd"{/if}>
<div class="info">
<a href="http://twitter.com/{$channel->status[$i]->user->screen_name}">
<img src="{$channel->status[$i]->user->profile_image_url}" />
<b>{$channel->status[$i]->user->name}</b>
</a>
</div>
<div class="text">
{$channel->status[$i]->text}
<div class="timestamp">
<small>{=date("j.n.Y", strtotime($channel->status[$i]->created_at))}</small><br />
</div>
</div>
<br class="spacer" />
</li>
{/for}
</ul>
{/if}
{if $page > 1}<a href="{link page, $page - 1}" class="ajax"><<</a>{/if}
{$page}
{if $i === $rowsPerPage}<a href="{link page, $page + 1}" class="ajax">>></a>{/if}
</div>
{/snippet}
Použitie:
// Presenter
function createComponentTwitter()
{
return new TwitterControl();
}
// Template
@{control twitter}