/** * @see parent::doStore() */ function doStore() { if (isset($_FILES['attachment'])) { $mail_id = CValue::post('mail_id'); $mail = new CUserMail(); $mail->load($mail_id); $files = array(); foreach ($_FILES['attachment']['error'] as $key => $file_error) { if (isset($_FILES['attachment']['name'][$key])) { $files[] = array('name' => $_FILES['attachment']['name'][$key], 'tmp_name' => $_FILES['attachment']['tmp_name'][$key], 'error' => $_FILES['attachment']['error'][$key], 'size' => $_FILES['attachment']['size'][$key]); } } foreach ($files as $_key => $_file) { if ($_file['error'] == UPLOAD_ERR_NO_FILE) { continue; } if ($_file['error'] != 0) { CAppUI::setMsg(CAppUI::tr("CFile-msg-upload-error-" . $_file["error"]), UI_MSG_ERROR); continue; } $attachment = new CMailAttachments(); $attachment->name = $_file['name']; $content_type = mime_content_type($_file['tmp_name']); $attachment->type = $attachment->getTypeInt($content_type); $attachment->bytes = $_file['size']; $attachment->mail_id = $mail_id; $content_type = explode('/', $content_type); $attachment->subtype = strtoupper($content_type[1]); $attachment->disposition = 'ATTACHMENT'; $attachment->extension = substr(strrchr($attachment->name, '.'), 1); $attachment->part = $mail->countBackRefs('mail_attachments') + 1; $attachment->store(); $file = new CFile(); $file->setObject($attachment); $file->author_id = CAppUI::$user->_id; $file->file_name = $attachment->name; $file->file_date = CMbDT::dateTime(); $file->fillFields(); $file->updateFormFields(); $file->doc_size = $attachment->bytes; $file->file_type = mime_content_type($_file['tmp_name']); $file->moveFile($_file, true); if ($msg = $file->store()) { CAppUI::setMsg(CAppUI::tr('CMailAttachments-error-upload-file') . ':' . CAppUI::tr($msg), UI_MSG_ERROR); CApp::rip(); } $attachment->file_id = $file->_id; if ($msg = $attachment->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); CApp::rip(); } } CAppUI::setMsg('CMailAttachments-msg-added', UI_MSG_OK); } else { parent::doStore(); } }
foreach ($data as $_key => &$_data) { $file = new CFile(); $file->load($_data["file_id"]); $file->getDataURI(); $_data["file_uri"] = $file->_data_uri; } //user $user = CMediusers::get($user_id); // file $file = new CFile(); $file->setObject($context); $file->file_name = CAppUI::tr("CFile-create-mozaic") . " de " . CAppUI::tr($context->_class) . " du " . CMbDT::dateToLocale(CMbDT::date()) . ".pdf"; $file->file_type = "application/pdf"; $file->file_category_id = $cat_id; $file->author_id = CMediusers::get()->_id; $file->fillFields(); $file->updateFormFields(); $file->forceDir(); $file->store(); $cr = new CCompteRendu(); $cr->_page_format = "A4"; $cr->_orientation = "portrait"; // use template for header and footer $template_header = new CTemplateManager(); $context->fillTemplate($template_header); $header = CCompteRendu::getSpecialModel($user, "CPatient", "[ENTETE MOZAIC]"); if ($header->_id) { $header->loadContent(); $template_header->renderDocument($header->_source); } else { $template_header->document = "<p style=\"text-align:center;\">" . $context->_view . "</p>";
/** * @see parent::doStore() */ function doStore() { $upload = null; if (CValue::POST("_from_yoplet") == 1) { /** @var CFile $obj */ $obj = $this->_obj; $array_file_name = array(); $path = CAppUI::conf("dPfiles yoplet_upload_path"); if (!$path) { $path = "tmp"; } // On retire les backslashes d'escape $file_name = stripslashes($this->request['_file_path']); // Récupération du nom de l'image en partant de la fin de la chaîne // et en rencontrant le premier \ ou / preg_match('@[\\\\/]([^\\\\/]*)$@i', $file_name, $array_file_name); $file_name = $array_file_name[1]; $extension = strrchr($file_name, '.'); $_rename = $this->request['_rename'] ? $this->request['_rename'] : 'upload'; $file_path = "{$path}/" . $this->request['_checksum']; $obj->file_name = $_rename == 'upload' ? $file_name : $_rename . $extension; $obj->_old_file_path = $this->request['_file_path']; $obj->doc_size = filesize($file_path); $obj->author_id = CAppUI::$user->_id; if (CModule::getActive("cda")) { $obj->type_doc = $this->request["type_doc"]; } $obj->fillFields(); $obj->updateFormFields(); $obj->file_type = CMbPath::guessMimeType($file_name); if ($msg = $obj->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); } else { $obj->forceDir(); $obj->moveFile($file_path); } return parent::doStore(); } $_file_category_id = CValue::post("_file_category_id"); $language = CValue::post("language"); $type_doc = CValue::post("type_doc"); $named = CValue::post("named"); $rename = CValue::post("_rename"); CValue::setSession("_rename", $rename); if (isset($_FILES["formfile"])) { $aFiles = array(); $upload =& $_FILES["formfile"]; foreach ($upload["error"] as $fileNumber => $etatFile) { if (!$named) { $rename = $rename ? $rename . strrchr($upload["name"][$fileNumber], '.') : ""; } if ($upload["name"][$fileNumber]) { $aFiles[] = array("_mode" => "file", "name" => $upload["name"][$fileNumber], "type" => CMbPath::guessMimeType($upload["name"][$fileNumber]), "tmp_name" => $upload["tmp_name"][$fileNumber], "error" => $upload["error"][$fileNumber], "size" => $upload["size"][$fileNumber], "language" => $language, "type_doc" => $type_doc, "file_category_id" => $_file_category_id, "object_id" => CValue::post("object_id"), "object_class" => CValue::post("object_class"), "_rename" => $rename); } } // Pasted images, via Data uri if (!empty($_POST["formdatauri"])) { $data_uris = $_POST["formdatauri"]; $data_names = $_POST["formdatauri_name"]; foreach ($data_uris as $fileNumber => $fileContent) { $parsed = $this->parseDataUri($fileContent); $_name = $data_names[$fileNumber]; if (!$named) { $ext = strrchr($_name, '.'); if ($ext === false) { $ext = "." . substr(strrchr($parsed["mime"], '/'), 1); $_name .= $ext; } $rename = $rename ? $rename . $ext : ""; } $temp = tempnam(sys_get_temp_dir(), "up_"); file_put_contents($temp, $parsed["data"]); if ($data_names[$fileNumber]) { $aFiles[] = array("_mode" => "datauri", "name" => $_name, "type" => $parsed["mime"], "tmp_name" => $temp, "error" => 0, "size" => strlen($parsed["data"]), "language" => $language, "type_doc" => $type_doc, "file_category_id" => $_file_category_id, "object_id" => CValue::post("object_id"), "object_class" => CValue::post("object_class"), "_rename" => $rename); } } } $merge_files = CValue::post("_merge_files"); if ($merge_files) { $pdf = new CMbPDFMerger(); $this->_obj = new $this->_obj->_class(); /** @var CFile $obj */ $obj = $this->_obj; $file_name = ""; $nb_converted = 0; foreach ($aFiles as $key => $file) { $converted = 0; if ($file["error"] == UPLOAD_ERR_NO_FILE) { continue; } if ($file["error"] != 0) { CAppUI::setMsg(CAppUI::tr("CFile-msg-upload-error-" . $file["error"]), UI_MSG_ERROR); continue; } // Si c'est un pdf, on le rajoute sans aucun traitement if (substr(strrchr($file["name"], '.'), 1) == "pdf") { $file_name .= substr($file["name"], 0, strpos($file["name"], '.')); $pdf->addPDF($file["tmp_name"], 'all'); $nb_converted++; $converted = 1; } else { if ($obj->isPDFconvertible($file["name"]) && $obj->convertToPDF($file["tmp_name"], $file["tmp_name"] . "_converted")) { $pdf->addPDF($file["tmp_name"] . "_converted", 'all'); $file_name .= substr($file["name"], 0, strpos($file["name"], '.')); $nb_converted++; $converted = 1; } else { $other_file = new CFile(); $other_file->bind($file); $other_file->file_name = $file["name"]; $other_file->file_type = $file["type"]; $other_file->doc_size = $file["size"]; $other_file->fillFields(); $other_file->private = CValue::post("private"); if (false == ($res = $other_file->moveTemp($file))) { CAppUI::setMsg("Fichier non envoyé", UI_MSG_ERROR); continue; } $other_file->author_id = CAppUI::$user->_id; if ($msg = $other_file->store()) { CAppUI::setMsg("Fichier non enregistré: {$msg}", UI_MSG_ERROR); continue; } CAppUI::setMsg("Fichier enregistré", UI_MSG_OK); } } // Pour le nom du pdf de fusion, on concatène les noms des fichiers if ($key != count($aFiles) - 1 && $converted) { $file_name .= "-"; } } // Si des fichiers ont été convertis et ajoutés à PDFMerger, // création du cfile. if ($nb_converted) { $obj->file_name = $file_name . ".pdf"; $obj->file_type = "application/pdf"; $obj->author_id = CAppUI::$user->_id; $obj->private = CValue::post("private"); $obj->object_id = CValue::post("object_id"); $obj->object_class = CValue::post("object_class"); $obj->updateFormFields(); $obj->fillFields(); $obj->forceDir(); $tmpname = tempnam("/tmp", "pdf_"); $pdf->merge('file', $tmpname); $obj->doc_size = strlen(file_get_contents($tmpname)); $obj->moveFile($tmpname); //rename($tmpname, $obj->_file_path . "/" .$obj->file_real_filename); if ($msg = $obj->store()) { CAppUI::setMsg("Fichier non enregistré: {$msg}", UI_MSG_ERROR); } else { CAppUI::setMsg("Fichier enregistré", UI_MSG_OK); } } } else { foreach ($aFiles as $file) { if ($file["error"] == UPLOAD_ERR_NO_FILE) { continue; } if ($file["error"] != 0) { CAppUI::setMsg(CAppUI::tr("CFile-msg-upload-error-" . $file["error"]), UI_MSG_ERROR); continue; } // Reinstanciate $this->_obj = new $this->_obj->_class(); /** @var CFile $obj */ $obj = $this->_obj; $obj->bind($file); $obj->file_name = empty($file["_rename"]) ? $file["name"] : $file["_rename"]; $obj->file_type = $file["type"]; if ($obj->file_type == "application/x-download") { $obj->file_type = CMbPath::guessMimeType($obj->file_name); } $obj->doc_size = $file["size"]; $obj->fillFields(); $obj->private = CValue::post("private"); if ($file["_mode"] == "file") { $res = $obj->moveTemp($file); } else { $res = $obj->moveFile($file["tmp_name"]); } if (false == $res) { CAppUI::setMsg("Fichier non envoyé", UI_MSG_ERROR); continue; } // File owner on creation if (!$obj->file_id) { $obj->author_id = CAppUI::$user->_id; } if ($msg = $obj->store()) { CAppUI::setMsg("Fichier non enregistré: {$msg}", UI_MSG_ERROR); continue; } CAppUI::setMsg("Fichier enregistré", UI_MSG_OK); } } // Redaction du message et renvoi if (CAppUI::isMsgOK() && $this->redirectStore) { $this->redirect =& $this->redirectStore; } if (!CAppUI::isMsgOK() && $this->redirectError) { $this->redirect =& $this->redirectError; } } else { parent::doStore(); } }
/** * create the CFiles attached to the mail * * @param CMailAttachments[] $attachList The list of CMailAttachment * @param CPop $popClient the CPop client * * @return void */ function attachFiles($attachList, $popClient) { //size limit $size_required = CAppUI::pref("getAttachmentOnUpdate"); if ($size_required == "") { $size_required = 0; } foreach ($attachList as $_attch) { $_attch->mail_id = $this->_id; $_attch->loadMatchingObject(); if (!$_attch->_id) { $_attch->store(); } //si preference taille ok OU que la piece jointe est incluse au texte => CFile if ($_attch->bytes <= $size_required || $_attch->disposition == "INLINE") { $file = new CFile(); $file->setObject($_attch); $file->author_id = CAppUI::$user->_id; if (!$file->loadMatchingObject()) { $file_pop = $popClient->decodeMail($_attch->encoding, $popClient->openPart($this->uid, $_attch->getpartDL())); $file->file_name = $_attch->name; //apicrypt attachment if (strpos($_attch->name, ".apz") !== false) { $file_pop = CApicrypt::uncryptAttachment($popClient->source->object_id, $file_pop); } //file type detection $first = is_array($file_pop) ? reset($file_pop) : $file_pop; $mime = $this->extensionDetection($first); //file name $infos = pathinfo($_attch->name); $extension = $infos['extension']; $mime_extension = strtolower(end(explode("/", $mime))); if (strtolower($extension) != $mime_extension) { $file->file_name = $infos['filename'] . "." . $mime_extension; } $file->file_type = $mime ? $mime : $_attch->getType($_attch->type, $_attch->subtype); $file->fillFields(); $file->updateFormFields(); $file->putContent($file_pop); $file->store(); } } } }
/** * Edition des journaux selon le type * * @param bool $read lecture * @param bool $create_journal Création du journal * * @return void */ function editJournal($read = true, $create_journal = true) { if ($create_journal) { $journal = new CJournalBill(); $journal->type = $this->type_pdf; $journal->nom = "Journal_" . $this->type_pdf . "_" . CMbDT::date(); $journal->_factures = $this->factures; if ($msg = $journal->store()) { mbTrace($msg); } else { $this->journal_id = $journal->_id; } } // Creation du PDF $this->pdf = new CMbPdf('l', 'mm'); $this->pdf->setPrintHeader(false); $this->pdf->setPrintFooter(false); $this->font = "vera"; $this->fontb = $this->font . "b"; $this->pdf->setFont($this->font, '', 8); $this->page = 0; $this->editEntete(); switch ($this->type_pdf) { case "paiement": $this->editPaiements(); break; case "debiteur": $this->editDebiteur(); break; case "rappel": $this->editRappel(); break; case "checklist": $this->editCheckList(); break; } if ($create_journal) { $file = new CFile(); $file->file_name = $journal->nom . ".pdf"; $file->file_type = "application/pdf"; $file->author_id = CMediusers::get()->_id; $file->file_category_id = 1; $file->setObject($journal); $file->fillFields(); $file->putContent($this->pdf->Output('Factures.pdf', "S")); if ($msg = $file->store()) { echo $msg; } if ($this->type_pdf == "checklist") { $user = CMediusers::get(); $printer = new CPrinter(); $printer->function_id = $user->function_id; $printer->label = "justif"; $printer->loadMatchingObject(); if (!$printer->_id) { CAppUI::setMsg("Les imprimantes ne sont pas paramétrées", UI_MSG_ERROR); echo CAppUI::getMsg(); return false; } $file = new CFile(); $pdf = $this->pdf->Output('Factures.pdf', "S"); $file_path = tempnam("tmp", "facture"); $file->_file_path = $file_path; file_put_contents($file_path, $pdf); $printer->loadRefSource()->sendDocument($file); unlink($file_path); } } if ($read) { //Affichage du fichier pdf $this->pdf->Output('Factures.pdf', "I"); } }
/** * Traitement des retours en erreur d'xml d'un praticien * * @param int $chir_id praticien de la consultation * * @return void|string */ static function traitementDossier($chir_id) { $files = array(); $fs_source_reception = CExchangeSource::get("reception-tarmed-CMediusers-{$chir_id}", "file_system", true, null, false); if (!$fs_source_reception->_id || !$fs_source_reception->active) { return null; } $count_files = CMbPath::countFiles($fs_source_reception->host); if ($count_files < 100) { try { $files = $fs_source_reception->receive(); } catch (CMbException $e) { return CAppUI::tr($e->getMessage()); } } $delfile_read_reject = CAppUI::conf("dPfacturation Other delfile_read_reject", CGroups::loadCurrent()); foreach ($files as $_file) { $fs = new CSourceFileSystem(); $rejet = new self(); $rejet->praticien_id = $chir_id; $rejet->file_name = basename($_file); if ($msg = $rejet->store()) { return $msg; } $rejet->readXML($fs->getData($_file)); //Sauvegarde du XML en CFile $new_file = new CFile(); $new_file->setObject($rejet); $new_file->file_name = basename($_file); $new_file->file_type = "application/xml"; $new_file->author_id = CAppUI::$user->_id; $new_file->fillFields(); $new_file->updateFormFields(); $new_file->forceDir(); $new_file->putContent(trim($fs->getData($_file))); if ($msg = $new_file->store()) { mbTrace($msg); } //Suppression du fichier selon configuration if ($delfile_read_reject) { $fs->delFile($_file); } } return null; }
/** * Store a CFile linked to $this * * @param string $filename File name * @param string $filedata File contents * * @return bool */ function addFile($filename, $filedata) { $file = new CFile(); $file->setObject($this); $file->file_name = $filename; $file->file_type = "text/plain"; $file->doc_size = strlen($filedata); $file->author_id = CAppUI::$instance->user_id; $file->fillFields(); if (!$file->putContent($filedata)) { return false; } $file->store(); return true; }
/** * OBX Segment with reference pointer to external report * * @param DOMNode $OBX DOM node * @param CMbObject $object object * @param String $name name * * @return bool */ function getReferencePointerToExternalReport(DOMNode $OBX, CMbObject $object, $name) { $exchange_hl7v2 = $this->_ref_exchange_hl7v2; $sender = $exchange_hl7v2->_ref_sender; //Récupération de l'emplacement et du type du fichier (full path) $observation = $this->getObservationValue($OBX); $rp = explode("^", $observation); $pointer = CMbArray::get($rp, 0); $type = CMbArray::get($rp, 2); // Création d'un lien Hypertext sur l'objet if ($type == "HTML") { $hyperlink = new CHyperTextLink(); $hyperlink->setObject($object); $hyperlink->name = $name; $hyperlink->link = $pointer; $hyperlink->loadMatchingObject(); if ($msg = $hyperlink->store()) { $this->codes[] = "E343"; return false; } return true; } // Chargement des objets associés à l'expéditeur /** @var CInteropSender $sender_link */ $object_links = $sender->loadRefsObjectLinks(); if (!$object_links) { $this->codes[] = "E340"; return false; } $sender_link = new CInteropSender(); $files_category = new CFilesCategory(); // On récupère toujours une seule catégorie, et une seule source associée à l'expéditeur foreach ($object_links as $_object_link) { if ($_object_link->_ref_object instanceof CFilesCategory) { $files_category = $_object_link->_ref_object; } if ($_object_link->_ref_object instanceof CInteropSender) { $sender_link = $_object_link->_ref_object; continue 1; } } // Aucun expéditeur permettant de récupérer les fichiers if (!$sender_link->_id) { $this->codes[] = "E340"; return false; } $authorized_sources = array("CSenderFileSystem", "CSenderFTP"); // L'expéditeur n'est pas prise en charge pour la réception de fichiers if (!CMbArray::in($sender_link->_class, $authorized_sources)) { $this->codes[] = "E341"; return false; } $sender_link->loadRefsExchangesSources(); // Aucune source permettant de récupérer les fichiers if (!$sender_link->_id) { $this->codes[] = "E342"; return false; } $source = $sender_link->getFirstExchangesSources(); $path = str_replace("\\", "/", $pointer); $path = basename($path); if ($source instanceof CSourceFileSystem) { $path = $source->getFullPath() . "/{$path}"; } // Exception déclenchée sur la lecture du fichier try { $content = $source->getData("{$path}"); } catch (Exception $e) { $this->codes[] = "E345"; return false; } if (!$type) { $type = CMbPath::getExtension($path); } $file_type = $this->getFileType($type); $file_name = $this->getObservationFilename($OBX); // Gestion du CFile $file = new CFile(); $file->setObject($object); $file->file_name = $file_name ? $file_name : $name; $file->file_type = $file_type; $file->loadMatchingObject(); if ($files_category->_id && $sender->_configs["associate_category_to_a_file"]) { $file->file_category_id = $files_category->_id; } $file->file_date = "now"; $file->doc_size = strlen($content); $file->fillFields(); $file->updateFormFields(); $file->putContent($content); if ($msg = $file->store()) { $this->codes[] = "E343"; } $this->codes[] = "I340"; return true; }
/** * PDF conversion of a file * * @param string $file_path path to the file * @param string $pdf_path path the pdf file * * @return bool */ function convertToPDF($file_path = null, $pdf_path = null) { global $rootName; // Vérifier si openoffice est lancé if (!CFile::openofficeLaunched()) { return 0; } // Vérifier sa charge en mémoire CFile::openofficeOverload(); if (!$file_path && !$pdf_path) { $file = new CFile(); $file->setObject($this); $file->private = $this->private; $file->file_name = $this->file_name . ".pdf"; $file->file_type = "application/pdf"; $file->author_id = CAppUI::$user->_id; $file->fillFields(); $file->updateFormFields(); $file->forceDir(); $save_name = $this->_file_path; if ($msg = $file->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); return 0; } $file_path = $this->_file_path; $pdf_path = $file->_file_path; } // Requête post pour la conversion. // Cela permet de mettre un time limit afin de garder le contrôle de la conversion. ini_set("default_socket_timeout", 10); $fileContents = base64_encode(file_get_contents($file_path)); $url = CAppUI::conf("base_url") . "/index.php?m=dPfiles&a=ajax_ooo_convert&suppressHeaders=1"; $data = array("file_data" => $fileContents, "pdf_path" => $pdf_path); // Fermeture de la session afin d'écrire dans le fichier de session CSessionHandler::writeClose(); // Le header Connection: close permet de forcer a couper la connexion lorsque la requête est effectuée $ctx = stream_context_create(array('http' => array('method' => 'POST', 'header' => "Content-type: application/x-www-form-urlencoded charset=UTF-8\r\n" . "Connection: close\r\n" . "Cookie: mediboard=" . session_id() . "\r\n", 'content' => http_build_query($data)))); // La requête post réouvre la session $res = file_get_contents($url, false, $ctx); if (isset($file) && $res == 1) { $file->doc_size = filesize($pdf_path); if ($msg = $file->store()) { CAppUI::setMsg($msg, UI_MSG_ERROR); return 0; } } // Si la conversion a échoué // on relance le service s'il ne répond plus. if ($res != 1) { CFile::openofficeOverload(1); } return $res; }
$file->updateFormFields(); if ($del) { if ($msg = $file->delete()) { CAppUI::stepAjax($msg, UI_MSG_ERROR); } else { CAppUI::stepAjax("CFile-msg-delete", UI_MSG_OK); } } else { $file->file_type = "image/fabricjs"; if ($export) { $svg = new CFile(); $svg->file_name = $file->file_name; $svg->file_type = "image/svg+xml"; $svg->author_id = $file->author_id; $svg->loadMatchingObject(); $svg->fillFields(); $svg->setObject($file->_ref_object); $svg->updateFormFields(); if (strpos($svg->file_name, ".") === false) { $svg->file_name = $svg->file_name . ".svg"; } if (strpos($svg->file_name, ".fjs") !== false) { $svg->file_name = str_replace(".fjs", ".svg", $svg->file_name); } // @TODO : replace url by datauri $content = str_replace(array("&a=fileviewer", "&file_id", "&suppressHeaders"), array("&a=fileviewer", "&file_id", "&suppressHeaders"), $content); if ($result = $svg->putContent(stripslashes($content))) { if ($msg = $svg->store()) { CAppUI::stepAjax($msg, UI_MSG_ERROR); } else { CAppUI::stepAjax("Dessin exporté avec succès", UI_MSG_OK);
/** * Make a PDF document archive of the sejour (based on soins/print_dossier_soins) * * @param string $title File title * @param bool $replace Replace existing file * * @return bool * @throws CMbException */ function makePDFarchive($title = "Dossier complet", $replace = false) { if (!CModule::getActive("soins")) { return false; } $query = array("m" => "soins", "a" => "print_dossier_soins", "sejour_id" => $this->_id, "dialog" => 1, "offline" => 1, "limit" => 10000, "_aio" => 1, "_aio_ignore_scripts" => 1); $base = $_SERVER["SCRIPT_NAME"] . "?" . http_build_query($query, "", "&"); $result = CApp::serverCall("http://127.0.0.1{$base}"); $content = $result["body"]; $file = new CFile(); $file->setObject($this); $file->file_name = "{$title}.pdf"; $file->file_type = "application/pdf"; /*if ($file->loadMatchingObject()) { if ($replace) { $file->delete(); // New file $file = new CFile(); $file->setObject($this); $file->file_name = "$title.pdf"; $file->file_type = "application/pdf"; } }*/ $file->fillFields(); $file->updateFormFields(); $file->forceDir(); $file->author_id = CAppUI::$user->_id; $compte_rendu = new CCompteRendu(); $compte_rendu->_orientation = "portrait"; $format = CCompteRendu::$_page_formats["a4"]; $page_width = round(72 / 2.54 * $format[0], 2); $page_height = round(72 / 2.54 * $format[1], 2); $compte_rendu->_page_format = array(0, 0, $page_width, $page_height); $content = str_replace("<!DOCTYPE html>", "", $content); CHtmlToPDFConverter::init("CWkHtmlToPDFConverter"); //CHtmlToPDFConverter::init("CPrinceXMLConverter"); $pdf = CHtmlToPDFConverter::convert($content, $compte_rendu->_page_format, $compte_rendu->_orientation); $file->putContent($pdf); if ($msg = $file->store()) { throw new CMbException($msg); } return true; }
/** * Store the file * * @param String $prefix Prefix for the name of file * @param String $file_name Name of file * @param String $file_type Type file * @param CSejour $sejour Sejour * @param Array &$erreur Error * * @return bool */ function storeFile($prefix, $file_name, $file_type, $sejour, &$erreur) { /** @var CInteropSender $sender */ $sender = $this->_ref_sender; $exchange_hpr = $this->_ref_exchange_hpr; $file = false; $object_links = $sender->loadRefsObjectLinks(); foreach ($object_links as $_object_link) { /** @var CInteropSender $sender_link */ $sender_link = $_object_link->loadRefObject(); $sender_link->loadRefsExchangesSources(); foreach ($sender_link->_ref_exchanges_sources as $_source) { $path = $_source->getFullPath($file_name); /** @var CExchangeSource $_source */ $data = $_source->getData($path); if (!$data) { continue; } $file = new CFile(); $file->file_name = "{$prefix} {$file_name}"; $file->file_type = $file_type; $file->fillFields(); $file->setObject($sejour); $file->putContent($data); if ($msg = $file->store()) { $erreur[] = new CHPrimSanteError($exchange_hpr, "P", "17", array("OBX", $this->loop, $this->identifier_patient), "10.6", CMbString::removeAllHTMLEntities($msg)); continue; } } } if (!$file) { $erreur[] = new CHPrimSanteError($exchange_hpr, "P", "18", array("OBX", $this->loop, $this->identifier_patient), "10.6"); return false; } return true; }