Apple_Exporter\Builders\Components::add_thumbnail_if_needed PHP Method

add_thumbnail_if_needed() private method

Add a thumbnail if needed.
private add_thumbnail_if_needed ( &$components )
    private function add_thumbnail_if_needed(&$components)
    {
        // If a thumbnail is already defined, just return.
        if ($this->content_cover()) {
            return;
        }
        // Otherwise, iterate over the components and look for the first image.
        foreach ($components as $i => $component) {
            if (is_a($component, 'Apple_Exporter\\Components\\Image')) {
                // Get the bundle URL of this class.
                $json_url = $component->get_json('URL');
                if (empty($json_url)) {
                    $json_components = $component->get_json('components');
                    if (!empty($json_components[0]['URL'])) {
                        $json_url = $json_components[0]['URL'];
                    }
                }
                if (empty($json_url)) {
                    return;
                }
                // Isolate the bundle URL basename
                $bundle_basename = str_replace('bundle://', '', $json_url);
                // We need to find the original URL from the bundle meta because it's needed
                // in order to override the thumbnail.
                $workspace = new Workspace($this->content_id());
                $bundles = $workspace->get_bundles();
                if (empty($bundles)) {
                    // We can't proceed without the original URL and something odd has happened here anyway.
                    return;
                }
                $original_url = '';
                foreach ($bundles as $bundle_url) {
                    if ($bundle_basename == Apple_News::get_filename($bundle_url)) {
                        $original_url = $bundle_url;
                        break;
                    }
                }
                // If we can't find the original URL, we can't proceed.
                if (empty($original_url)) {
                    return;
                }
                // Use this image as the cover and remove it from the body to avoid duplication.
                $this->set_content_property('cover', $original_url);
                unset($components[$i]);
                break;
            }
        }
    }