Встраиваем twitter в MODx
Я создал новый сниппет с названием «TwitterRead»
Его код вполне тривиален, используются встроенные в PHP функции разбора XML:
<?php
$output='';
$url = 'http://twitter.com/statuses/user_timeline/23375275.rss'; //адрес RSS ленты - у каждого свой
$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
$output.='<p><a href='.$item->link.'>'.$item->description.'</a></p>';
}
return $output;
?>
Весь внешний вид одной записи настраивается в том месте, где он добавляется в $output. Я немного дооснастил разбор - сделал так, чтобы обрабатывались ссылки и имена пользователей:
<?php
$output='';
$url = 'http://twitter.com/statuses/user_timeline/23375275.rss'; //адрес RSS ленты
$rss = simplexml_load_file($url); //Интерпретирует XML-файл в объект
//цикл для обхода всей RSS ленты
foreach ($rss->channel->item as $item) {
//выделяем и оформляем ссылки из общего потока
$l = ereg_replace("+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\">\\0</a>", $item->description);
//выделяем и оформляем имена пользователей @username
$msg = eregi_replace("@([a-zA-Z0-9_]+)", '<a href="http://twitter.com/\\1" rel="nofollow">@\\1</a>', $l);
//вставляем в параграф обработанный выше статус и ставим ссылку на него
$output.='<p>'.$msg.' <a href='.$item->link.'>Читать</a></p>';
}
return $output;
?>
Теперь в любом нужном месте вызываем
[ ! TwitterRead ! ]
(удалив лишние пробелы). И всё.
Адрес RSS-ленты можно легко увидеть в коде своей странички на twitter, например:
<link rel="alternate" href="https://twitter.com/statuses/user_timeline/23375275.rss" title="Alexbeep's Tweets" type="application/rss+xml" />
<link rel="alternate" href="https://twitter.com/favorites/23375275.rss" title="Alexbeep's Favorites" type="application/rss+xml" />
Из контекста, надеюсь, понятно, что первая ссылка - это собственно, записи, а вторая - закладки.
Есть одно "НО" - в адресе ленты простокол следует поменять с https:// на http:// при подстановке в сниппет.
Как это выглядит - можно увидеть в разделе Twitter прямо тут






