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]; }
/** * 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; }