У меня на сайте стоит простенький модуль, который дергает посты из аккаунта твиттера. Я уже не помню где я этот модуль нашел, но на официальном сайте его, по-моему нет. Работает он абсолютно прекрасно, создавая блок и выводя в нем N количество постов из заданного аккаунта твиттера. Но есть небольшая недоработка - дергая URL, он выводит его в виде простого текста. Я не являюсь разработчиком и не смог решить эту проблему. Может быть кто-то подскажет какую строчку поправить, чтобы адреса преобразовывались в url?
Код модуля:
//функция которая вызывается Друпалом когда он что-то хочет сделать с модулем
function readtwitter_block($op = 'list', $delta = 0, $edit = array()) {
//по переменной $op узнаем что от нас хоччет Друпал
switch ($op) {
//исполняется когда Друпал хочет узнать названия блока
case 'list':
$blocks[0]['info'] = t('Read twitter');
return $blocks;
//исполняется когда Друпал настраивает блок
case 'configure':
//формируем форму с двох полей
$form['readtwitter_login'] = array(
'#type' => 'textfield',
'#title' => t('Enter your twitter login'),
'#default_value' => variable_get('readtwitter_login','psycraft'),
);
$form['readtwitter_count'] = array(
'#type' => 'textfield',
'#title' => t('Enter count view post from twitter'),
'#default_value' => variable_get('readtwitter_count',1),
);
return $form;
//исполняется когда Друпал сохраняет настройки блока
case 'save':
//сохраняем переменные что настроили при конфигурации блока
variable_set('readtwitter_login',$edit['readtwitter_login']);
if (($edit['readtwitter_count']>=1) && ($edit['readtwitter_count']<=20))
variable_set('readtwitter_count',$edit['readtwitter_count']);
//вызываем функцию, которая по введенной конфигурации получит посты с твиттера
_read_twitter(
variable_get('readtwitter_login','psycraft'),
variable_get('readtwitter_count',1) );
break;
//исполняется когда Друпал отображает блок
case 'view':
//задаем заглавие к блоку
$block['subject'] = t('Last post');
for ($i=0; $i<variable_get('readtwitter_count',1); $i++) {
$items[]=variable_get('readtwitter_post'.$i, 'post - '.$i);
}
//отображаем список последних постов, исползуя темизацию
$block['content'] = theme('item_list',$items) . t('<a id="alltwitt" rel="nofollow" href="/ext_link?url=http://twitter.com/psycraft" target="_blank">Подпишись psycraft</a>');
return $block;
}
}
//вызывается про запуске крон файла Друпала
function readtwitter_cron() {
//вызываем функцию, которая по введенной конфигурации получит посты с твиттера
_read_twitter(
variable_get('readtwitter_login','psycraft'),
variable_get('readtwitter_count',1) );
}
function _read_twitter($login='psycraft',$count=1) {
$url = "http://twitter.com/statuses/user_timeline/$login.xml";
//получаем список последних постов с твиттера
$rez = drupal_http_request($url, array(), 'GET',NULL,1);
//выдергиваем с ХМЛ-ки только текст поста
preg_match_all('#<text>(.*)</text>#',$rez->data,$rezz);
if (count($rezz[0])==0) return false;
for ($i=0;$i<$count;$i++) {
if ($rezz[0][$i]=='') continue;
//заносим все посты в локальные переменные
variable_set('readtwitter_post'.$i,$rezz[0][$i]);
}
return true;
}
Комментарии
Никто не знает или всем в ломак?