Pull to refresh

TwittReader – твитты на вашем сайте

Reading time 3 min
Views 610

Выкладываю свой велосипед с:
  • возможностью вывода одного или нескольких последних статусов
  • подсветкой ссылок, e-mail, юзеров, хэш-тегов
  • кэшированием, которое работает в т.ч. когда Твиттер упал (а такое бывает)
  • перекодировкой (если на сайте используется не UTF-8)
  • гибкими настройками, собственными шаблонами


Требования: PHP5, cURL, DOMDocument.

По сути, это класс-обертка для RSS отдельного пользователя твиттера.

Свойства класса



Свойство Значение по умолчанию Описание
cacheFile twitter.txt файл, где класс будет хранить кэш
cachePeriod 1800 время, через которое кэш устареет и твитты будут обновлены (в секундах)
timeout 5 время в секундах, через которое будет считаться, что сервер недоступен
twittsMaxCount 9 количество твиттов, которое отображать
twittWrapper <li><p>[status]</p><p><a href=\"[link]\">[date]</a></p></li>\n
шаблон для твитта с переменными [status], [link] и [date]
dateFormat d.m.Y H:i:s формат даты
errorNotAvailable Service not available. сообщение, которое выводится при недоступности сервера и отсутствии кэша
errorNoStatuses No statuses found for this user. сообщение, которое выводится, когда у пользователя не обнаружено твиттов
curlOptions array(), то есть пустой массив если вы хотите задать дополнительные свойства для CURL, например работа через прокси
charset FALSE, то есть остается кодировка UTF-8 если задано, то твитт будет перекодироваться в соответствующую кодировку
highlightUrls FALSE подсвечивать ссылки
highlightEmails FALSE подсвечивать e-mail (не рекомендую, конечно, из-за спамеров, но может кому-нибудь пригодится :)
highlightUsers FALSE подсвечивать пользователей твиттера вида user
highlightHashtags FALSE подсвечивать т.н. хэштеги вида #tag


Примеры использования



Выводим 9 последних статусов пользователя:

$tr = new TwittReader('user');
echo '<ul>' . $tr->getTwitts() . '</ul>';


Теперь настроим немножко под себя:

$tr = new TwittReader('user');
 
$tr->dateFormat = 'H:i'; // показывать только время твитта
$tr->twittWrapper = "<li><strong>[date]</strong> [status]</li>"; // изменим шаблон твитта
$tr->twittsMaxCount = 3; // выводить три последних твитта
$tr->cachePeriod = 60; // кэш устаревает через одну минуту
$tr->highlightUsers = TRUE; // подсвечивать пользователей
$tr->highlightUrls = TRUE; // подсвечивать ссылки
$tr->highlightHashtags = TRUE;  // подсвечивать хэштеги
 
$tr->charset = 'windows-1251'; // кодировка
 
// возможные ошибки
$tr->errorNotAvailable = '<span class="error">Сервер не доступен.</span>';
$tr->errorNoStatuses = '<span class="error">Нет твиттов.</span>';
 
// использовать прокси
$tr->curlOptions = array(
    CURLOPT_PROXY => "127.0.0.1:3128"
);
 
echo '<ul>' . $tr->getTwitts() . '</ul>';


Скачать (2.8 KB)
Проект на Google Code
Tags:
Hubs:
+5
Comments 17
Comments Comments 17

Articles