コード例 #1
0
ファイル: Rss.php プロジェクト: AholibamaSI/plymouth-webapp
 /**
  * Method to parse the source's data into a standard format
  */
 protected function parse_data()
 {
     // Create a normalized feed array (to be served later)
     $parsed_data = array();
     // Reference just the feed
     $feed = $this->data->feed;
     // If the feed doesn't have a title, give it a generic name
     $feed_title = $feed->title();
     if (strlen($feed_title) <= 0) {
         $feed_title = 'Plymouth State News';
     }
     // Let's loop through each article
     $item_count = 0;
     foreach ($feed as $item) {
         // If we've gone over the post limit setting, then break out of this loop
         if ($item_count > $this->post_limit) {
             // Stop adding posts from this feed
             break;
         }
         // Cut posts if they're too old
         $post_timestamp = strtotime($item->pubDate());
         if (time() - $post_timestamp > $this->old_post_days * 86400) {
             // Skip adding this one... its too old
             continue;
         }
         // Quick function to clean the posts text
         $clean_the_post = function ($post) {
             // Run some cleaners on the string
             $post = htmlspecialchars_decode($post);
             $post = html_entity_decode($post);
             $post = strip_tags($post);
             $post = \PSU::html_all_entities($post);
             $post = str_replace('&#12287;', '\'', $post);
             return $post;
         };
         $post_text = $clean_the_post($item->title());
         // Add the posts data to the normalized array
         $parsed_data[] = array('source' => 'RSS', 'title' => $feed_title, 'userid' => '', 'rawtime' => $item->pubDate(), 'timestamp' => $post_timestamp, 'datetime' => \PSU::html5_datetime($post_timestamp), 'time_ago' => \PSU::date_diff($post_timestamp, time(), 'simple'), 'url' => $item->link(), 'text' => $post_text, 'description' => $item->description(), 'content' => $item->content());
         $item_count++;
     }
     return $parsed_data;
 }