/** * Save settings. */ function execute() { $plugin =& $this->plugin; $externalFeedDao = DAORegistry::getDAO('ExternalFeedDAO'); $plugin->import('ExternalFeed'); if (isset($this->feedId)) { $feed =& $externalFeedDao->getExternalFeed($this->feedId); } if (!isset($feed)) { $feed = new ExternalFeed(); } $feed->setJournalId($this->journalId); $feed->setUrl($this->getData('feedUrl')); $feed->setTitle($this->getData('title'), null); $feed->setDisplayHomepage($this->getData('displayHomepage') ? 1 : 0); $feed->setDisplayBlock($this->getData('displayBlock') ? $this->getData('displayBlock') : EXTERNAL_FEED_DISPLAY_BLOCK_NONE); $feed->setLimitItems($this->getData('limitItems') ? 1 : 0); $feed->setRecentItems($this->getData('recentItems') ? $this->getData('recentItems') : 0); // Update or insert external feed if ($feed->getId() != null) { $externalFeedDao->updateExternalFeed($feed); } else { $feed->setSequence(REALLY_BIG_NUMBER); $externalFeedDao->insertExternalFeed($feed); // Re-order the feeds so the new one is at the end of the list. $externalFeedDao->resequenceExternalFeeds($feed->getJournalId()); } }