/** * Validate Feeds and show appropriate error messages. */ private function validate_feeds() { $errors = []; // check for missing mandatory fields foreach (Model\Feed::all() as $feed) { if (!strlen(trim($feed->slug))) { $errors[] = sprintf(__('The feed %s has no slug.', 'podlove'), '<strong>' . $feed->name . '</strong>') . \Podlove\get_help_link('podlove_help_feed_slug') . ' ' . self::get_action_link($feed, __('Go fix it', 'podlove')); } if (!$feed->episode_asset_id) { $errors[] = sprintf(__('The feed %s has no assigned asset.', 'podlove'), '<strong>' . $feed->name . '</strong>') . \Podlove\get_help_link('podlove_help_feed_asset') . ' ' . self::get_action_link($feed, __('Go fix it', 'podlove')); } } // check for duplicate slugs foreach (Model\Feed::find_duplicate_slugs() as $duplicate) { $feeds = array_map(function ($feed_id) { return Model\Feed::find_by_id($feed_id); }, $duplicate['feed_ids']); $feed_links = array_map(function ($feed) { return self::get_action_link($feed, $feed->name); }, $feeds); $errors[] = sprintf(__('Some feeds (%s) use identical slugs. Please assign unique slugs.'), implode(', ', $feed_links)) . \Podlove\get_help_link('podlove_help_feed_slug'); } if (count($errors)) { ?> <div class="error"> <p> <strong><?php echo __('Please resolve these issues so your feeds can work.', 'podlove'); ?> </strong> </p> <p> <?php echo implode("</p><p>", $errors); ?> </p> </div> <?php } }