Преобразовать текст в url

Главные вкладки

Аватар пользователя Zonder Zonder 22 марта 2012 в 14:32

У меня на сайте стоит простенький модуль, который дергает посты из аккаунта твиттера. Я уже не помню где я этот модуль нашел, но на официальном сайте его, по-моему нет. Работает он абсолютно прекрасно, создавая блок и выводя в нем N количество постов из заданного аккаунта твиттера. Но есть небольшая недоработка - дергая URL, он выводит его в виде простого текста. Я не являюсь разработчиком и не смог решить эту проблему. Может быть кто-то подскажет какую строчку поправить, чтобы адреса преобразовывались в url?

Код модуля:

<?php
    //функция которая вызывается Друпалом когда он что-то хочет сделать с модулем
    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;
    }

Комментарии