Example #1
0
 public function load_object($args)
 {
     $topic_guid = $this->configuration->get('news_topic');
     if (!$topic_guid) {
         throw new midcom_exception_notfound("No news topic defined");
     }
     $data['topic'] = new midgard_topic($topic_guid);
     $qb = midgard_article::new_query_builder();
     $qb->add_constraint('topic', '=', $data['topic']->id);
     $qb->add_constraint('name', '=', $args['name']);
     $articles = $qb->execute();
     if (count($articles) == 0) {
         throw new midcom_exception_notfound("Article {$args['name']} not found.");
     }
     $this->object = $articles[0];
 }
Example #2
0
 /**
  * Parses additional metadata in RSS item and sets parameters accordingly
  *
  * @param midgard_article $article Imported article
  * @param Array $item Feed item as provided by MagpieRSS
  * @return boolean
  */
 function parse_parameters($article, $item)
 {
     if (isset($item['media'])) {
         foreach ($item['media'] as $name => $value) {
             $article->parameter('net.nemein.rss:media', $name, $value);
         }
     }
     if (isset($item['enclosure@url'])) {
         $article->parameter('net.nemein.rss:enclosure', 'url', $item['enclosure@url']);
     }
     if (isset($item['enclosure@duration'])) {
         $article->parameter('net.nemein.rss:enclosure', 'duration', $item['enclosure@duration']);
     }
     if (isset($item['enclosure@type'])) {
         $article->parameter('net.nemein.rss:enclosure', 'mimetype', $item['enclosure@type']);
     }
     // FeedBurner Awareness API data
     // http://code.google.com/apis/feedburner/awareness_api.html
     if (isset($item['feedburner']) && isset($item['feedburner']['awareness'])) {
         $article->parameter('com.feedburner', 'awareness', $item['feedburner']['awareness']);
     }
     return true;
 }