protected static function export_subwiki($user, context $context, $subwiki, $wikimode) {
        if (empty($subwiki)) {
            return;
        }
        $subwikiid = key($subwiki);
        $pages = $subwiki[$subwikiid]['pages'];
        unset($subwiki[$subwikiid]['pages']);
        writer::with_context($context)->export_data([$subwikiid], (object)$subwiki[$subwikiid]);
        $allfiles = $wikimode === 'individual'; // Whether to export all files or only the ones that are used.

        $alltexts = ''; // Store all texts that reference files to search which files are used.
        foreach ($pages as $page => $entry) {
            // Preprocess current page contents.
            if (!$allfiles && self::text_has_files($entry['page']['cachedcontent'])) {
                $alltexts .= $entry['page']['cachedcontent'];
            }
            $entry['page']['cachedcontent'] = format_text(writer::with_context($context)
                ->rewrite_pluginfile_urls([$subwikiid], 'mod_wiki', 'attachments',
                    $subwikiid, $entry['page']['cachedcontent']), FORMAT_HTML, ['context' => $context]);
            // Add page tags.
            $pagetags = \core_tag_tag::get_item_tags_array('mod_wiki', 'page', $entry['page']['id']);
            if ($pagetags) {
                $entry['page']['tags'] = $pagetags;
            }

            // Preprocess revisions.
            if (!empty($entry['revisions'])) {
                // For each revision this user has made preprocess the contents.
                foreach ($entry['revisions'] as &$revision) {
                    if ((!$allfiles && self::text_has_files($revision['content']))) {
                        $alltexts .= $revision['content'];
                    }
                    $revision['content'] = writer::with_context($context)
                        ->rewrite_pluginfile_urls([$subwikiid], 'mod_wiki', 'attachments', $subwikiid, $revision['content']);
                }
            }
            $comments = self::get_page_comments($user, $context, $entry['page']['id'], !array_key_exists('userid', $entry['page']));
            if ($comments) {
                $entry['page']['comments'] = $comments;
            }
            writer::with_context($context)->export_related_data([$subwikiid], $page, $entry);
        }

        if ($allfiles) {
            // Export all files.
            writer::with_context($context)->export_area_files([$subwikiid], 'mod_wiki', 'attachments', $subwikiid);
        } else {
            // Analyze which files are used in the texts.
            self::export_used_files($context, $subwikiid, $alltexts);
        }
    }