ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Ignore:
Timestamp:
Feb 3, 2009, 3:02:09 PM (11 years ago)
Author:
nagasawa
Message:

#3557:fixed changed SimpleXML to SimplePie?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE3/plugins/opBlogPlugin/trunk/lib/model/BlogPeer.php

    r10464 r10605  
    1111class BlogPeer
    1212{
    13   public static function getXmlByUrl($url)
     13  public static function getFeedByUrl($url)
    1414  {
    15     if (is_null($url) || $url === '')
     15    if (is_null($url))
    1616    {
    1717      return false;
    1818    }
    19     $root = @simplexml_load_file($url);
    20     if (!$root)
     19    $feed = new SimplePie();
     20    $dir = sfConfig::get('sf_app_cache_dir') . '/plugins';
     21    if (!file_exists($dir))
     22    {
     23      mkdir($dir);
     24    }
     25    $dir .= '/opBlogPlugin';
     26    if (!file_exists($dir))
     27    {
     28      mkdir($dir);
     29    }
     30    $feed->set_cache_location($dir);
     31    $feed->set_feed_url($url);
     32    if(!@$feed->init())
    2133    {
    2234      return false;
    2335    }
    24     return $root;
    25   }
     36    $feed->handle_content_type();
    2637
    27   public static function getFeedType($root)
    28   {
    29     if (!$root)
    30     {
    31       return false;
    32     }
    33     switch (strtolower($root->getName()))
    34     {
    35       case "rdf":
    36         $feedType = "rdf";
    37         // rss0.8, rss1.0
    38         break;
    39       case "rss":
    40         $feedType = "rss";
    41         // rss2.0
    42         break;
    43       case "feed":
    44         $feedType = "atom";
    45         // atom
    46         break;
    47       default:
    48         $feedType = false;
    49         break;
    50     }
    51     return $feedType;
     38    return $feed;
    5239  }
    5340
     
    5946      return;
    6047    }
    61     $root = self::getXmlByUrl($member->getConfig('blog_url'));
    6248
     49    $feed = self::getFeedByUrl($member->getConfig('blog_url'));
     50    if (!$feed)
     51    {
     52      return;
     53    }
    6354
    64     $feedType = BlogPeer::getFeedType($root);
    65 
    66     switch ($feedType)
    67     {
    68     case 'rdf':
    69       self::addBlogFromRdf($member, $root, $list);
    70       break;
    71     case 'rss':
    72       self::addBlogFromRss($member, $root, $list);
    73       break;
    74     case 'atom':
    75       self::addBlogFromAtom($member, $root, $list);
    76       break;
    77     default:
    78       break;
    79     }
    80   }
    81 
    82   protected static function addBlogFromRdf(&$member, &$root, &$list)
    83   {
    84     foreach ($root->item as $item)
    85     {
    86       $dc = $item->children('http://purl.org/dc/elements/1.1/');
    87       $list[] = self::setBlog(
    88         strtotime(strval($dc->date)),
    89         strval($item->title),
    90         strval($item->link),
    91         $member->getName()
    92       );
    93     }
    94   }
    95 
    96   protected static function addBlogFromRss(&$member, &$root, &$list)
    97   {
    98     foreach ($root->channel->item as $item)
     55    foreach ($feed->get_items() as $item)
    9956    {
    10057      $list[] = self::setBlog(
    101         strtotime(strval($item->pubDate)),
    102         strval($item->title),
    103         strval($item->link),
     58        strtotime(@$item->get_date()),
     59        @$item->get_title(),
     60        @$item->get_link(),
    10461        $member->getName()
    105       );
    106     }
    107   }
    108 
    109   protected static function addBlogFromAtom(&$member, &$root, &$list)
    110   {
    111     foreach ($root->entry as $entry)
    112     {
    113       $list[] = self::setBlog(
    114         strtotime(strval($entry->published)),
    115         strval($entry->title),
    116         strval($entry->link),
    117         $member->getName()
    118       );
     62      );
    11963    }
    12064  }
     
    12468    return array(
    12569      'date' => $date,
    126       'title' => $title,
     70      'title' => htmlspecialchars_decode($title),
    12771      'link_to_external' => $link,
    12872      'name' => $name
     
    159103  }
    160104
    161   public static function getBlogListOfFriend($member_id, $size=20, $limitTitle = false)
     105  public static function getBlogListOfFriend($member_id, $size = 20, $limitTitle = false)
    162106  {
    163107    $c = new Criteria();
     
    180124  }
    181125
    182   public static function getBlogListOfMember($member_id, $size=20, $limitTitle = false)
     126  public static function getBlogListOfMember($member_id, $size = 20, $limitTitle = false)
    183127  {
    184128    $list = array();
     
    193137  }
    194138
    195   public static function getBlogListOfAllMember($size=20, $limitTitle = false)
     139  public static function getBlogListOfAllMember($size = 20, $limitTitle = false)
    196140  {
    197141    $c = new Criteria();
Note: See TracChangeset for help on using the changeset viewer.