prepareActivityDirectory($exportDir, 'url', $moduleId); // Retrieve URL data $urlData = $this->getData($activityId, $sectionId); // Generate XML file for the URL $this->createUrlXml($urlData, $urlDir); $this->createModuleXml($urlData, $urlDir); $this->createGradesXml($urlData, $urlDir); $this->createGradeHistoryXml($urlData, $urlDir); $this->createInforefXml($urlData, $urlDir); $this->createRolesXml($urlData, $urlDir); $this->createCommentsXml($urlData, $urlDir); $this->createCalendarXml($urlData, $urlDir); $this->createFiltersXml($urlData, $urlDir); } /** * Get all URL data for the course. */ public function getData(int $activityId, int $sectionId): ?array { // Extract the URL information from the course data $url = $this->course->resources['link'][$activityId]; // Return the URL data formatted for export return [ 'id' => $activityId, 'moduleid' => $activityId, 'modulename' => 'url', 'contextid' => $this->course->info['real_id'], 'name' => $url->title, 'description' => $url->description, 'externalurl' => $url->url, 'timecreated' => time(), 'timemodified' => time(), 'sectionid' => $sectionId, 'sectionnumber' => 0, 'users' => [], 'files' => [], ]; } /** * Create the XML file for the URL. */ private function createUrlXml(array $urlData, string $urlDir): void { $xmlContent = ''.PHP_EOL; $xmlContent .= ''.PHP_EOL; $xmlContent .= ' '.PHP_EOL; $xmlContent .= ' '.htmlspecialchars($urlData['name']).''.PHP_EOL; $xmlContent .= ' '.PHP_EOL; $xmlContent .= ' 1'.PHP_EOL; $xmlContent .= ' '.htmlspecialchars($urlData['externalurl']).''.PHP_EOL; $xmlContent .= ' 0'.PHP_EOL; $xmlContent .= ' a:1:{s:10:"printintro";i:1;}'.PHP_EOL; $xmlContent .= ' a:0:{}'.PHP_EOL; $xmlContent .= ' '.$urlData['timemodified'].''.PHP_EOL; $xmlContent .= ' '.PHP_EOL; $xmlContent .= ''; $this->createXmlFile('url', $xmlContent, $urlDir); } }