in classes/api/base.php [963:1034]
protected function create_postdata($title, $bodycontent, $contextid, $boundary) {
if (!empty($bodycontent)) {
$dom = new \DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML(mb_convert_encoding($bodycontent, 'HTML-ENTITIES', 'UTF-8'));
libxml_clear_errors();
$xpath = new \DOMXPath($dom);
$doc = $dom->getElementsByTagName("body")->item(0);
// Process heading and td tags.
$this->process_tags($dom, $xpath);
// Handle <br/> problem.
$this->process_br_tags($xpath);
// Process images.
$src = $xpath->query("//@src");
}
$imgdata = '';
$eol = "\r\n";
if (!empty($src)) {
foreach ($src as $s) {
$pathparts = pathinfo(urldecode($s->nodeValue));
$path = substr($pathparts['dirname'], strlen('@@PLUGINFILE@@')) . DIRECTORY_SEPARATOR;
$contents = $this->get_file_contents($path, $pathparts['basename'], $contextid);
if (!$contents || (count($contents) == 0)) {
continue;
}
$pathparts['filename'] = urlencode($pathparts['filename']);
$contents['filename'] = urlencode($contents['filename']);
$s->nodeValue = "name:" . $pathparts['filename'];
$imgdata .= '--' . $boundary . $eol;
$imgdata .= 'Content-Disposition: form-data; name="' . $pathparts['filename'] . '"; filename="' .
$contents['filename'] . '"' . $eol;
$imgdata .= 'Content-Type: image/jpeg' . $eol .$eol;
$imgdata .= $contents['content'] . $eol;
}
}
// Extract just the content of the body.
$domclone = new \DOMDocument('1.0', 'UTF-8');
if (!empty($doc)) {
foreach ($doc->childNodes as $child) {
$domclone->appendChild($domclone->importNode($child, true));
}
}
$output = $domclone->saveHTML($domclone);
$date = date("Y-m-d H:i:s");
$postdata = '';
$postdata .= '--' . $boundary . $eol;
$postdata .= 'Content-Disposition: form-data; name="Presentation"' . $eol;
$postdata .= 'Content-Type: application/xhtml+xml' . $eol . $eol;
$postdata .= '<?xml version="1.0" encoding="utf-8" ?><html xmlns="http://www.w3.org/1999/xhtml" lang="en-us">' . $eol;
$postdata .= '<head><title>' . $title . '</title>' . '<meta name="created" value="' . $date . '"/></head>' . $eol;
$postdata .= '<body style="font-family:\'Helvetica\',Arial,sans-serif;font-size:10.5pt; color:rgb(51,51,51);">' .
$output . '</body>' . $eol;
$postdata .= '</html>' . $eol;
$postdata .= $imgdata . $eol;
$postdata .= '--' . $boundary . '--' . $eol . $eol;
return $postdata;
}