From 5b165c90ed344f3e42f8b970c0e9ed38aa4b604d Mon Sep 17 00:00:00 2001 From: Laurent Giovannoni <laurent.giovannoni@maarch.org> Date: Thu, 5 Oct 2017 19:37:38 +0200 Subject: [PATCH] FEAT #6023 --- modules/attachments/attachments_content.php | 9 + modules/attachments/choose_attachment.php | 51 +- .../content_management/applet_controller.php | 18 +- .../content_management/applet_launcher.php | 462 +++---- .../class_content_manager_tools_Abstract.php | 1202 +++++++++-------- .../dist/not_signed/maarchCM.jar | Bin 624003 -> 625241 bytes .../dist/src/FileManager.java | 2 +- .../content_management/dist/src/MaarchCM.java | 101 +- .../retrieve_new_attachment_from_cm.php | 19 + .../save_attach_res_from_cm.php | 8 + .../xml/IVS/validation_rules.xml | 3 +- .../class/templates_controler_Abstract.php | 19 +- .../datasources/letterbox_attachment.php | 382 +++--- 13 files changed, 1215 insertions(+), 1061 deletions(-) mode change 100755 => 100644 modules/content_management/dist/src/FileManager.java mode change 100755 => 100644 modules/content_management/dist/src/MaarchCM.java create mode 100755 modules/content_management/retrieve_new_attachment_from_cm.php diff --git a/modules/attachments/attachments_content.php b/modules/attachments/attachments_content.php index 45e43f45652..77797f82935 100755 --- a/modules/attachments/attachments_content.php +++ b/modules/attachments/attachments_content.php @@ -567,6 +567,15 @@ if (isset($_POST['add']) && $_POST['add']) { unset($_SESSION['transmissionContacts']); //copie de la version PDF de la pièce si mode de conversion sur le client + if ( + $_SESSION['upfile']['fileNamePdfOnTmp'] != '' && + empty($_REQUEST['templateOffice']) + ) { + //case onlyConvert + $query = "select template_id from templates where template_type = 'OFFICE' and template_target = 'attachments'"; + $stmt = $db->query($query); + $_REQUEST['templateOffice'] = $stmt->fetchObject()->template_id; + } if ($_SESSION['modules_loaded']['attachments']['convertPdf'] == true && $_SESSION['upfile']['fileNamePdfOnTmp'] != '' && isset($_REQUEST['templateOffice'])){ $_SESSION['new_id'] = $id; $file = $_SESSION['config']['tmppath'].$_SESSION['upfile']['fileNamePdfOnTmp']; diff --git a/modules/attachments/choose_attachment.php b/modules/attachments/choose_attachment.php index 80bdbc01983..7c6605c1efd 100755 --- a/modules/attachments/choose_attachment.php +++ b/modules/attachments/choose_attachment.php @@ -92,7 +92,56 @@ $upFileOK = false; <input type="hidden" name="dir" value="indexing_searching" /> <input type="hidden" name="page" value="choose_attachment" /> <?php - if (!empty($_SESSION['upfile']['local_path']) && empty($_SESSION['error'])) { ?> + if (!empty($_SESSION['upfile']['local_path']) && empty($_SESSION['error'])) { + //launch auto convert in PDF + if ( + strtolower($_SESSION['upfile']['format']) == 'odt' || + strtolower($_SESSION['upfile']['format']) == 'docx' + ) { + require_once 'modules/content_management/class/class_content_manager_tools.php'; + $cM = new content_management_tools(); + if ( + file_exists('custom'.DIRECTORY_SEPARATOR. $_SESSION['custom_override_id'] + . DIRECTORY_SEPARATOR . 'modules'. DIRECTORY_SEPARATOR . 'content_management' + . DIRECTORY_SEPARATOR . 'applet_controller.php' + ) + ) { + $path = 'custom/'. $_SESSION['custom_override_id'] .'/modules/content_management/applet_controller.php'; + } else { + $path = 'modules/content_management/applet_controller.php'; + } + $path_appli = explode('/', $_SESSION['config']['coreurl']); + if(count($path_appli) <> 5){ + $path_appli = array_slice($path_appli, 0, 4); + $path_appli = implode('/', $path_appli); + }else{ + $path_appli = implode('/', $path_appli); + } + // require_once 'core/class/class_db_pdo.php'; + // $database = new Database(); + // $query = "select template_id from templates where template_type = 'OFFICE' and template_target = 'attachments'"; + // $stmt = $database->query($query); + // $aTemplateId = $stmt->fetchObject()->template_id; + $cookieKey = $_SESSION['sessionName'] . '=' . $_COOKIE[$_SESSION['sessionName']]; + + $onlyConvert = "true"; + $cM->generateJNLP( + $path_appli, + $path_appli . '/' . $path, + 'newAttachment', + 'res_letterbox', + //$aTemplateId, + $_SESSION['doc_id'], + '', + $cookieKey, + $_SESSION['user']['UserId'], + $_SESSION['clientSideCookies'], + $_SESSION['modules_loaded']['attachments']['convertPdf'], + $onlyConvert + ); + } + + ?> <i class="fa fa-check-square fa-2x" title="<?php echo _DOWNLOADED_FILE; ?>"></i> <input type="button" id="fileButton" onclick="$j('#file').click();" class="button" value="<?php if($_REQUEST['with_file'] == 'true'){ echo _WITHOUT_FILE; } else {echo $_FILES['file']['name']; }?>" diff --git a/modules/content_management/applet_controller.php b/modules/content_management/applet_controller.php index 84487ff68b3..70e58355976 100755 --- a/modules/content_management/applet_controller.php +++ b/modules/content_management/applet_controller.php @@ -153,6 +153,7 @@ if (!empty($_REQUEST['action']) && $objectType <> 'attachmentVersion' && $objectType <> 'outgoingMail' && $objectType <> 'attachmentUpVersion' + && $objectType <> 'newAttachment' && $objectType != 'transmission' ) { //case of res -> master or version @@ -160,6 +161,9 @@ if (!empty($_REQUEST['action']) } elseif ($objectType == 'attachment' || $objectType == 'attachmentUpVersion') { //case of res -> update attachment include 'modules/content_management/retrieve_attachment_from_cm.php'; + } elseif ($objectType == 'newAttachment') { + //case of res -> new attachment with only conversion + include 'modules/content_management/retrieve_new_attachment_from_cm.php'; } else { //case of template, templateStyle, or new attachment generation include 'modules/content_management/retrieve_template_from_cm.php'; @@ -252,7 +256,15 @@ if (!empty($_REQUEST['action']) 'END_MESSAGE' => '', ); } - unlink($filePathOnTmp); + // $file = fopen('cm_xml_begin.log', a); + // fwrite($file, '[' . date('Y-m-d H:i:s') . '] ------BEGIN------- ' . PHP_EOL); + // foreach ($result as $key => $value) { + // $resultQuery = "key " . $key . " value " . $value; + // fwrite($file, '[' . date('Y-m-d H:i:s') . '] ' . $resultQuery . PHP_EOL); + // } + // fwrite($file, '[' . date('Y-m-d H:i:s') . '] ------END------- ' . PHP_EOL); + // fclose($file); + //unlink($filePathOnTmp); createXML('SUCCESS', $result); } elseif ($_REQUEST['action'] == 'saveObject') { if ( @@ -278,7 +290,7 @@ if (!empty($_REQUEST['action']) fclose($inF); //Récupération de la version pdf du document - if ($_SESSION['modules_loaded']['attachments']['convertPdf'] == "true" && ($objectType == 'attachmentFromTemplate' || $objectType == 'attachment' || $objectType == 'attachmentUpVersion' || $objectType == 'attachmentVersion' || $objectType == 'outgoingMail' || $objectType == 'resourceEdit' || $objectType == 'transmission') && isset($_REQUEST['pdfContent'])){ + if ($_SESSION['modules_loaded']['attachments']['convertPdf'] == "true" && ($objectType == 'attachmentFromTemplate' || $objectType == 'attachment' || $objectType == 'attachmentUpVersion' || $objectType == 'attachmentVersion' || $objectType == 'outgoingMail' || $objectType == 'resourceEdit' || $objectType == 'transmission' || $objectType == 'newAttachment') && isset($_REQUEST['pdfContent'])){ $pdfEncodedContent = str_replace( ' ', '+', @@ -310,7 +322,7 @@ if (!empty($_REQUEST['action']) } if ($objectType == 'resourceEdit') { include 'modules/content_management/save_editRes_from_cm.php'; - } elseif ($objectType == 'attachmentFromTemplate') { + } elseif ($objectType == 'attachmentFromTemplate' || $objectType == 'newAttachment') { include 'modules/content_management/save_attach_res_from_cm.php'; } elseif ($objectType == 'attachment') { include 'modules/content_management/save_attach_from_cm.php'; diff --git a/modules/content_management/applet_launcher.php b/modules/content_management/applet_launcher.php index d41fe0ac829..22a354683aa 100755 --- a/modules/content_management/applet_launcher.php +++ b/modules/content_management/applet_launcher.php @@ -1,230 +1,232 @@ -<?php - -if ( - file_exists('..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR. '..' - . DIRECTORY_SEPARATOR . 'core'. DIRECTORY_SEPARATOR . 'init.php' - ) -) { - include_once '../../../../core/init.php'; -} else { - include_once '../../core/init.php'; -} - -if ( - file_exists('custom'.DIRECTORY_SEPARATOR. $_SESSION['custom_override_id'] - . DIRECTORY_SEPARATOR . 'modules'. DIRECTORY_SEPARATOR . 'content_management' - . DIRECTORY_SEPARATOR . 'applet_controller.php' - ) -) { - $path = 'custom/'. $_SESSION['custom_override_id'] .'/modules/content_management/applet_controller.php'; -} else { - $path = 'modules/content_management/applet_controller.php'; -} - -//ONLY FOR THE TESTS -/* -$_REQUEST['objectType'] = 'resource'; -$_REQUEST['objectTable'] = 'res_letterbox'; -$_REQUEST['objectId'] = 104; -*/ - -/* -echo '<pre>'; -print_r($_REQUEST); -print_r($_SESSION); -echo '</pre>'; -exit; -*/ - -$_SESSION['cm']['resMaster'] = ''; -$_SESSION['cm']['reservationId'] = ''; - -require_once 'core/class/class_functions.php'; -require_once 'core/class/class_core_tools.php'; -require_once 'core/class/class_db.php'; -require_once 'core/class/class_request.php'; -require_once 'core/class/class_security.php'; -require_once 'core/class/class_resource.php'; -require_once 'core/class/docservers_controler.php'; -require_once 'modules/content_management/class/class_content_manager_tools.php'; - -$core_tools = new core_tools(); -$core_tools->test_user(); -$core_tools->load_lang(); -$core_tools->load_js(); -$function = new functions(); -$sec = new security(); -$cM = new content_management_tools(); -$cMFeatures = array(); -$cMFeatures = $cM->getCmParameters(); - -/* Values for objectType : - * - resource - * - attachment - * - attachmentFromTemplate - * - template - * - templateStyle -*/ -if (isset($_REQUEST['objectType'])) { - $objectType = $_REQUEST['objectType']; -} else { - $objectType = ''; -} -if (isset($_REQUEST['attachType']) && $_REQUEST['attachType'] == "outgoing_mail"){ - $objectType = 'outgoingMail'; -} - -if ($objectType == 'templateStyle') { - $_REQUEST['objectId'] = $_SESSION['m_admin']['templates']['current_style']; -} - -if (isset($_REQUEST['objectTable'])) { - $objectTable = $_REQUEST['objectTable']; -} else { - $objectTable = ''; -} -if (isset($_REQUEST['objectId'])) { - $objectId = $_REQUEST['objectId']; -} else { - $objectId = ''; -} - -if (isset($_REQUEST['uniqueId'])) { - $uniqueId = $_REQUEST['uniqueId']; -} else { - $uniqueId = ''; -} - -if (isset($_REQUEST['contactId'])) { - $_SESSION['cm']['contact_id'] = $_REQUEST['contactId']; -} - -if (isset($_REQUEST['addressId'])) { - $_SESSION['cm']['address_id'] = $_REQUEST['addressId']; -} - -if (isset($_REQUEST['chronoAttachment'])) { - $_SESSION['cm']['chronoAttachment'] = $_REQUEST['chronoAttachment']; -} -if ($_REQUEST['resMaster'] <> '') { - $_SESSION['cm']['resMaster'] = $_REQUEST['resMaster']; - $reservationObjectId = $_SESSION['cm']['resMaster']; -} else { - $reservationObjectId = $objectId; -} -if ($objectType == '' || $objectTable == '' || $objectId == '') { - $_SESSION['error'] = _PARAM_MISSING_FOR_MAARCHCM_APPLET . ' ' - . $objectType . ' ' . $objectTable . ' ' . $objectId; - //echo $_SESSION['error'];exit; - header('location: ' . $_SESSION['config']['businessappurl'] - . 'index.php' - ); - exit(); -} - -/* -echo 'objectType : ' . $objectType . '<br>'; -echo 'objectTable : ' . $objectTable . '<br>'; -echo 'objectId : ' . $objectId . '<br>'; -*/ - -//no reservation for templateStyle and attachment object. TODO : check for attachmentUpVersion - -if (!in_array($objectType, array('templateStyle', 'attachmentVersion'))) { - //reservation test - $cM->deleteExpiredCM(); - $reservedBy = array(); - $reservedBy = $cM->isReservedBy( - $objectTable, - $reservationObjectId - ); - if ( - $reservedBy['status'] == 'ok' - && $reservedBy['user_id'] != $_SESSION['user']['UserId'] - ) { - if ($reservedBy['fullname'] <> 'empty') { - $_SESSION['error'] = _ALREADY_RESERVED . ' ' . _BY . ' : ' - . $reservedBy['fullname']; - } else { - $_SESSION['error'] = _RESPONSE_ALREADY_RESERVED; - } - header('location: ' . $_SESSION['config']['businessappurl'] - . 'index.php' - ); - exit(); - } else { - $_SESSION['cm']['reservationId'] = $cM->reserveObject( - $objectTable, - $reservationObjectId, - $_SESSION['user']['UserId'] - ); - } -} - -// $cookieKey = ''; -// $cptCook = 0; -// foreach ($_COOKIE as $key => $value) { -// if ($cptCook == 0) { -// $cookieKey = $key . '=' . $value; -// } -// $cptCook++; -// } - -$cookieKey = $_SESSION['sessionName'] . '=' . $_COOKIE[$_SESSION['sessionName']]; - -//init error session -$_SESSION['error'] = ''; - -?> -<div id="maarchcmdiv"> - <h3><?php echo _MAARCH_CM_APPLET;?></h3> - <br><center><i class="fa fa-spinner fa-pulse" style="font-size:90px" title="<?php echo _LOADING;?>"></i></center> - <br> - <br><?php echo _DONT_CLOSE;?> - - <div id="maarchcm_error" class="error"></div> - <?php - $path_appli = explode('/', $_SESSION['config']['coreurl']); - if(count($path_appli) <> 5){ - $path_appli = array_slice($path_appli, 0, 4); - $path_appli = implode('/', $path_appli); - }else{ - $path_appli = implode('/', $path_appli); - } - $cM->generateJNLP( - $path_appli, - $path_appli . '/' . $path, - $objectType, - $objectTable, - $objectId, - $uniqueId, - $cookieKey, - $_SESSION['user']['UserId'], - $_SESSION['clientSideCookies'], - $_SESSION['modules_loaded']['attachments']['convertPdf'] - ); - exit(); - ?> - <resources> - <jar href="<?php - echo $_SESSION['config']['coreurl'];?>modules/content_management/dist/maarchCM.jar"/> - </resources> - <applet-desc main-class="com.maarch.MaarchCM" name="maarchCM" width="625" height="595"> - <param name="url" value="<?php - echo $_SESSION['config']['coreurl'].$path; - ?>"> - <param name="objectType" value="<?php functions::xecho($objectType);?>"> - <param name="objectTable" value="<?php functions::xecho($objectTable);?>"> - <param name="objectId" value="<?php functions::xecho($objectId);?>"> - <param name="uniqueId" value="<?php functions::xecho($uniqueId);?>"> - <param name="cookie" value="<?php echo $cookieKey;?>"> - <param name="userMaarch" value="<?php - echo $cMFeatures['CONFIG']['userMaarchOnClient']; - ?>"> - <param name="userMaarchPwd" value="<?php - echo $cMFeatures['CONFIG']['userPwdMaarchOnClient']; - ?>"> - <param name="psExecMode" value="<?php functions::xecho($cMFeatures['CONFIG']['psExecMode']);?>"> - <param name="mayscript" value="mayscript" /> - </applet-desc> -</div> +<?php + +if ( + file_exists('..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR. '..' + . DIRECTORY_SEPARATOR . 'core'. DIRECTORY_SEPARATOR . 'init.php' + ) +) { + include_once '../../../../core/init.php'; +} else { + include_once '../../core/init.php'; +} + +if ( + file_exists('custom'.DIRECTORY_SEPARATOR. $_SESSION['custom_override_id'] + . DIRECTORY_SEPARATOR . 'modules'. DIRECTORY_SEPARATOR . 'content_management' + . DIRECTORY_SEPARATOR . 'applet_controller.php' + ) +) { + $path = 'custom/'. $_SESSION['custom_override_id'] .'/modules/content_management/applet_controller.php'; +} else { + $path = 'modules/content_management/applet_controller.php'; +} + +//ONLY FOR THE TESTS +/* +$_REQUEST['objectType'] = 'resource'; +$_REQUEST['objectTable'] = 'res_letterbox'; +$_REQUEST['objectId'] = 104; +*/ + +/* +echo '<pre>'; +print_r($_REQUEST); +print_r($_SESSION); +echo '</pre>'; +exit; +*/ + +$_SESSION['cm']['resMaster'] = ''; +$_SESSION['cm']['reservationId'] = ''; + +require_once 'core/class/class_functions.php'; +require_once 'core/class/class_core_tools.php'; +require_once 'core/class/class_db.php'; +require_once 'core/class/class_request.php'; +require_once 'core/class/class_security.php'; +require_once 'core/class/class_resource.php'; +require_once 'core/class/docservers_controler.php'; +require_once 'modules/content_management/class/class_content_manager_tools.php'; + +$core_tools = new core_tools(); +$core_tools->test_user(); +$core_tools->load_lang(); +$core_tools->load_js(); +$function = new functions(); +$sec = new security(); +$cM = new content_management_tools(); +$cMFeatures = array(); +$cMFeatures = $cM->getCmParameters(); + +/* Values for objectType : + * - resource + * - attachment + * - attachmentFromTemplate + * - template + * - templateStyle +*/ +if (isset($_REQUEST['objectType'])) { + $objectType = $_REQUEST['objectType']; +} else { + $objectType = ''; +} +if (isset($_REQUEST['attachType']) && $_REQUEST['attachType'] == "outgoing_mail"){ + $objectType = 'outgoingMail'; +} + +if ($objectType == 'templateStyle') { + $_REQUEST['objectId'] = $_SESSION['m_admin']['templates']['current_style']; +} + +if (isset($_REQUEST['objectTable'])) { + $objectTable = $_REQUEST['objectTable']; +} else { + $objectTable = ''; +} +if (isset($_REQUEST['objectId'])) { + $objectId = $_REQUEST['objectId']; +} else { + $objectId = ''; +} + +if (isset($_REQUEST['uniqueId'])) { + $uniqueId = $_REQUEST['uniqueId']; +} else { + $uniqueId = ''; +} + +if (isset($_REQUEST['contactId'])) { + $_SESSION['cm']['contact_id'] = $_REQUEST['contactId']; +} + +if (isset($_REQUEST['addressId'])) { + $_SESSION['cm']['address_id'] = $_REQUEST['addressId']; +} + +if (isset($_REQUEST['chronoAttachment'])) { + $_SESSION['cm']['chronoAttachment'] = $_REQUEST['chronoAttachment']; +} +if ($_REQUEST['resMaster'] <> '') { + $_SESSION['cm']['resMaster'] = $_REQUEST['resMaster']; + $reservationObjectId = $_SESSION['cm']['resMaster']; +} else { + $reservationObjectId = $objectId; +} +if ($objectType == '' || $objectTable == '' || $objectId == '') { + $_SESSION['error'] = _PARAM_MISSING_FOR_MAARCHCM_APPLET . ' ' + . $objectType . ' ' . $objectTable . ' ' . $objectId; + //echo $_SESSION['error'];exit; + header('location: ' . $_SESSION['config']['businessappurl'] + . 'index.php' + ); + exit(); +} + +/* +echo 'objectType : ' . $objectType . '<br>'; +echo 'objectTable : ' . $objectTable . '<br>'; +echo 'objectId : ' . $objectId . '<br>'; +*/ + +//no reservation for templateStyle and attachment object. TODO : check for attachmentUpVersion + +if (!in_array($objectType, array('templateStyle', 'attachmentVersion'))) { + //reservation test + $cM->deleteExpiredCM(); + $reservedBy = array(); + $reservedBy = $cM->isReservedBy( + $objectTable, + $reservationObjectId + ); + if ( + $reservedBy['status'] == 'ok' + && $reservedBy['user_id'] != $_SESSION['user']['UserId'] + ) { + if ($reservedBy['fullname'] <> 'empty') { + $_SESSION['error'] = _ALREADY_RESERVED . ' ' . _BY . ' : ' + . $reservedBy['fullname']; + } else { + $_SESSION['error'] = _RESPONSE_ALREADY_RESERVED; + } + header('location: ' . $_SESSION['config']['businessappurl'] + . 'index.php' + ); + exit(); + } else { + $_SESSION['cm']['reservationId'] = $cM->reserveObject( + $objectTable, + $reservationObjectId, + $_SESSION['user']['UserId'] + ); + } +} + +// $cookieKey = ''; +// $cptCook = 0; +// foreach ($_COOKIE as $key => $value) { +// if ($cptCook == 0) { +// $cookieKey = $key . '=' . $value; +// } +// $cptCook++; +// } + +$cookieKey = $_SESSION['sessionName'] . '=' . $_COOKIE[$_SESSION['sessionName']]; + +//init error session +$_SESSION['error'] = ''; + +?> +<div id="maarchcmdiv"> + <h3><?php echo _MAARCH_CM_APPLET;?></h3> + <br><center><i class="fa fa-spinner fa-pulse" style="font-size:90px" title="<?php echo _LOADING;?>"></i></center> + <br> + <br><?php echo _DONT_CLOSE;?> + + <div id="maarchcm_error" class="error"></div> + <?php + $path_appli = explode('/', $_SESSION['config']['coreurl']); + if(count($path_appli) <> 5){ + $path_appli = array_slice($path_appli, 0, 4); + $path_appli = implode('/', $path_appli); + }else{ + $path_appli = implode('/', $path_appli); + } + $onlyConvert = "false"; + $cM->generateJNLP( + $path_appli, + $path_appli . '/' . $path, + $objectType, + $objectTable, + $objectId, + $uniqueId, + $cookieKey, + $_SESSION['user']['UserId'], + $_SESSION['clientSideCookies'], + $_SESSION['modules_loaded']['attachments']['convertPdf'], + $onlyConvert + ); + exit(); + ?> + <resources> + <jar href="<?php + echo $_SESSION['config']['coreurl'];?>modules/content_management/dist/maarchCM.jar"/> + </resources> + <applet-desc main-class="com.maarch.MaarchCM" name="maarchCM" width="625" height="595"> + <param name="url" value="<?php + echo $_SESSION['config']['coreurl'].$path; + ?>"> + <param name="objectType" value="<?php functions::xecho($objectType);?>"> + <param name="objectTable" value="<?php functions::xecho($objectTable);?>"> + <param name="objectId" value="<?php functions::xecho($objectId);?>"> + <param name="uniqueId" value="<?php functions::xecho($uniqueId);?>"> + <param name="cookie" value="<?php echo $cookieKey;?>"> + <param name="userMaarch" value="<?php + echo $cMFeatures['CONFIG']['userMaarchOnClient']; + ?>"> + <param name="userMaarchPwd" value="<?php + echo $cMFeatures['CONFIG']['userPwdMaarchOnClient']; + ?>"> + <param name="psExecMode" value="<?php functions::xecho($cMFeatures['CONFIG']['psExecMode']);?>"> + <param name="mayscript" value="mayscript" /> + </applet-desc> +</div> diff --git a/modules/content_management/class/class_content_manager_tools_Abstract.php b/modules/content_management/class/class_content_manager_tools_Abstract.php index 442d2e3cfa8..2fc8664fd13 100755 --- a/modules/content_management/class/class_content_manager_tools_Abstract.php +++ b/modules/content_management/class/class_content_manager_tools_Abstract.php @@ -1,596 +1,606 @@ -<?php - -/* -* Copyright 2008-2017 Maarch -* -* This file is part of Maarch Framework. -* -* Maarch Framework is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* Maarch Framework is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>. -*/ - -/** -* @brief Contains the functions to manage content_management directory and expiration -* -* @file -* @author Laurent Giovannoni -* @date $date$ -* @version $Revision$ -* @ingroup content_management -*/ - -require_once 'core/class/class_functions.php'; -require_once 'core/class/class_db_pdo.php'; -require_once 'core/class/docservers_controler.php'; -require_once 'core/class/class_security.php'; -require_once 'core/core_tables.php'; - -abstract class content_management_tools_Abstract -{ - //Parameters - protected $extensions_xml_path = 'xml/extensions.xml'; - protected $programs_xml_path = 'xml/programs.xml'; - protected $parameter_id = 'content_management_reservation'; - protected $templateMasterPath = 'modules/templates/templates_src/'; - //Variables - protected $db; - - public function __construct() - { - if (!isset($_SESSION) OR count($_SESSION) == 0) - return null; - - $this->db = new Database(); - //TODO: PUT IT AN CONFIG FILE WITH 30 - $_SESSION['config']['content_management_reserved_time'] = 30; - if (!is_dir('modules/content_management/tmp/')) { - mkdir('modules/content_management/tmp/'); - } - } - - public function getCmParameters() - { - if (file_exists( - $_SESSION['config']['corepath'] . 'custom/' - . $_SESSION['custom_override_id'] - . '/modules/content_management/xml/content_management_features.xml' - ) - ) { - $path = $_SESSION['config']['corepath'] . 'custom/' - . $_SESSION['custom_override_id'] - . '/modules/content_management/xml/content_management_features.xml'; - } else { - $path = $_SESSION['config']['corepath'] - . 'modules/content_management/xml/content_management_features.xml'; - } - $cMFeatures = array(); - if (file_exists($path)) { - $func = new functions(); - $cMFeatures = $func->object2array( - simplexml_load_file($path) - ); - } else { - $cMFeatures['CONFIG']['psExecMode'] = 'KO'; - $cMFeatures['CONFIG']['userMaarchOnClient'] = ''; - $cMFeatures['CONFIG']['userPwdMaarchOnClient'] = ''; - } - return $cMFeatures; - } - - /** - * Returns who reserved the resource - * - * @param string $objectTable res table, attachment table, model table, ... - * @param bigint $objectId id of the object res_id, model_id, ... - * @return array the user who reserved the resource, else false - */ - public function isReservedBy($objectTable, $objectId) - { - $timeLimit = $this->computeTimeLimit(); - $charTofind = $this->parameter_id . '#%#' . $objectTable . '#' . $objectId; - - $query = "select id from " . PARAM_TABLE . " where id like (?) and param_value_int > ?"; - - $stmt = $this->db->query($query, array($charTofind, $timeLimit)); - - if ($res = $stmt->fetchObject()) { - - $arrayUser = array(); - $arrayUser = explode("#", $res->id); - if ($arrayUser[1] <> '') { - $query = "select user_id, lastname, firstname " - . "from " . USERS_TABLE . " where user_id = ? and enabled = 'Y'"; - - $stmt = $this->db->query($query, array($arrayUser[1])); - - $arrayReturn = array(); - if ($resUser = $stmt->fetchObject()) { - $arrayReturn['fullname'] = $resUser->firstname . ' ' - . $resUser->lastname; - $arrayReturn['user_id'] = $resUser->user_id; - } else { - $arrayReturn['fullname'] = 'empty'; - } - $arrayReturn['status'] = 'ok'; - return $arrayReturn; - } else { - $arrayReturn['status'] = 'ko'; - } - } else { - $arrayReturn['status'] = 'ko'; - } - return $arrayReturn; - } - - /** - * Close the content_management reservation - * - * @param string $CMId content_management id - * @return nothing - */ - public function closeReservation($CMId) - { - $query = "delete from " . PARAM_TABLE - . " where id = ?"; - $stmt = $this->db->query($query, array($CMId)); - } - - /** - * Update the expiration date of the content_management reservation for the connected user - * - * @param string $CMId the content_management id - * @param string $userId the content_management id - * @return nothing - */ - public function updateExpiryDate($CMId, $userId) - { - $timeLimit = $this->computeTimeLimit() + ( - $_SESSION['config']['content_management_reserved_time'] * 60 - ); - $charTofind = $this->parameter_id . '#' . $userId . '%'; - $query = "update " . PARAM_TABLE - . " set param_value_int = ? " - . " where id like ?" - . " and param_value_string = ?"; - $stmt = $this->db->query( - $query, - array($timeLimit, $charTofind, $CMId) - ); - } - - /** - * Reserved the object for content_management - * Add an expiration date of the content_management reservation for the connected user - * - * @param string $objectTable the res table - * @param string $objectId the res_id - * @param string $CMId the content_management id - * @param string $userId the content_management id - * @return string the reservation id - */ - public function reserveObject($objectTable, $objectId, $userId) - { - $timeLimit = $this->computeTimeLimit() + ( - $_SESSION['config']['content_management_reserved_time'] * 60 - ); - //If exists Delete - $charTofind = $this->parameter_id . '#' . $userId . '#' . $objectTable - . '#' . $objectId; - $query = "delete from " . PARAM_TABLE - . " where id = ?"; - $stmt = $this->db->query($query, array($charTofind)); - $query = "insert into " . PARAM_TABLE - . " (id, param_value_int)" - . " values(?, ?)"; - $stmt = $this->db->query($query, array($charTofind, $timeLimit)); - return $charTofind; - } - - /** - * Delete the resource in the tmp content_management dir if necessary - * - * @return nothing - */ - public function deleteExpiredCM() - { - $timeLimit = $this->computeTimeLimit(); - $query = "delete from " . PARAM_TABLE - . " where param_value_int < ? " - . " and id like ? "; - $stmt = $this->db->query($query, array($timeLimit, $this->parameter_id . '%')); - } - - /** - * Delete the resource for the disconnected user - * - * @return nothing - */ - public function deleteUserCM() - { - $query = "delete from " . PARAM_TABLE - . " where id like ?"; - $stmt = $this->db->query($query, array('content_management_reservation#' - . $_SESSION['user']['UserId'] . '%') - ); - } - - /** - * Delete the content_management tmp if necessary - * - * @param string $dir path to the tmp dir - * @return nothing - */ - protected function deleteDirectory($dir) - { - if (!file_exists($dir)) return true; - if (!is_dir($dir) || is_link($dir)) return unlink($dir); - foreach (scandir($dir) as $item) { - if ($item == '.' || $item == '..') continue; - if (!$this->deleteDirectory($dir . "/" . $item)) { - chmod($dir . "/" . $item, 0777); - if (!$this->deleteDirectory($dir . "/" . $item)) return false; - }; - } - return rmdir($dir); - } - - /** - * Returns time before expiration of the content_management reservation - * - * @param string $CMId the content_management id - * @return bigint the time in secon before expiration - */ - public function timeBeforeExpiration($CMId) - { - $now = $this->computeTimeLimit(); - $charTofind = $this->parameter_id . '%'; - $query = "select param_value_int as time" - . " from " . PARAM_TABLE - . " where id like ?" - . " and param_value_string = ?"; - $stmt = $this->db->query($query, array($charTofind, $CMId)); - if ($res = $stmt->fetchObject()) { - $secBeforeExpiration = $res->time - $now; - if ($secBeforeExpiration < 0) { - return 0; - } else { - return $secBeforeExpiration; - } - } else { - return 0; - } - } - - /** - * Returns the program to update the resource with content_management - * - * @param string $mimeType mime type of the resource - * @return array the program and status ok if mime type allowed for content_management - */ - public function isMimeTypeAllowedForCM($mimeType, $ext) { - $typeState = 'ko'; - $programPath = ''; - if ($mimeType <> '' && $ext <> '') { - $path = $_SESSION['config']['corepath'] . 'custom/' - . $_SESSION['custom_override_id'] . '/apps/' - . $_SESSION['config']['app_id'] . '/xml/extensions.xml'; - if (!file_exists($path)) { - $path = $_SESSION['config']['corepath'] . '/apps/' - . $_SESSION['config']['app_id'] . '/xml/extensions.xml'; - } - $xmlconfig = simplexml_load_file($path); - $extList = array(); - $i = 0; - foreach ($xmlconfig->FORMAT as $FORMAT) { - $extList[$i] = array( - 'name' => (string) $FORMAT->name, - 'mime' => (string) $FORMAT->mime, - 'web_dav_update' => (string) $FORMAT->web_dav_update, - 'default_program' => (string) $FORMAT->default_program, - ); - $i++; - } - for ($i=0;$i<count($extList);$i++) { - if ( - $extList[$i]['mime'] == $mimeType - && strtolower($extList[$i]['name']) == strtolower($ext) - && strtolower($extList[$i]['web_dav_update']) == 'true' - ) { - $typeState = 'ok'; - $programPath = $extList[$i]['default_program']; - break; - } - } - } - $arrayReturn = array( - 'status' => $typeState, - 'programPath' => $programPath, - ); - return $arrayReturn; - } - - /** - * Compute the time limit for a content_management session - * - * @return string the time limit in timestamp - */ - public function computeTimeLimit() - { - $timeLimit = mktime( - date('H'), - date('i'), - date('s'), - date('m'), - date('d'), - date('Y') - ); - return $timeLimit; - } - - /** - * Generate JLNP file to launch the JNLP - * - * - */ - public function generateJNLP( - $jar_url, - $maarchcm_url, - $objectType, - $objectTable, - $objectId, - $uniqueId, - $cookieKey, - $user, - $clientSideCookies, - $convertPdf = "false" - ) { - $docXML = new DomDocument('1.0', "UTF-8"); - - //create unique id for APPLET - $uid_applet_name = $_SESSION['user']['UserId'].'_maarchCM_'.rand(); - - $jnlp_name = $uid_applet_name.'.jnlp'; - - if ($_SESSION['config']['debug']) { - $inF = fopen( - $_SESSION['config']['tmppath'] . 'log_jnlp_' . $_SESSION['user']['UserId'] . '.log', - 'a' - ); - fwrite( - $inF, - '------------------' . PHP_EOL - . 'CREATE JNLP------------------' - . $_SERVER['SERVER_NAME'] . ' ' . $_SESSION['user']['UserId'] . ' ' . date('D, j M Y H:i:s O') .PHP_EOL - ); - fwrite($inF, '|||||||||||||||||SERVER DETAILS BEGIN FOR CREATE JNLP|||||||||||||||||' . PHP_EOL); - foreach($_SERVER as $key => $value) { - fwrite($inF, $key . " : " . $value . PHP_EOL); - } - fwrite($inF, '|||||||||||||||||SERVER DETAILS END FOR CREATE JNLP|||||||||||||||||' . PHP_EOL); - fwrite($inF, "jar_url : " . $jar_url . PHP_EOL); - fwrite($inF, "jnlp_name : " . $jnlp_name . PHP_EOL); - fwrite($inF, "maarchcm_url : " . $maarchcm_url . PHP_EOL); - fwrite($inF, "objectType : " . $objectType . PHP_EOL); - fwrite($inF, "objectTable : " . $objectTable . PHP_EOL); - fwrite($inF, "objectId : " . $objectId . PHP_EOL); - fwrite($inF, "uniqueId : " . $uniqueId . PHP_EOL); - fwrite($inF, "cookieKey : " . $cookieKey . PHP_EOL); - fwrite($inF, "idApplet : " . $idApplet . PHP_EOL); - fwrite($inF, "clientSideCookies : " . $clientSideCookies . PHP_EOL); - fwrite($inF, "user : " . $user . PHP_EOL); - fwrite($inF, "convertPdf : " . $convertPdf . PHP_EOL); - $listArguments = '?url=' . urlencode($maarchcm_url) - . '&objectType=' . $objectType - . '&objectTable=' . $objectTable - . '&objectId=' . $objectId - . '&uniqueId=' . $uniqueId - . '&cookie=' . $cookieKey - . '&clientSideCookies=' . $clientSideCookies - . '&idApplet=' . $uid_applet_name - . '&userMaarch=' . $user - . '&convertPdf=' . $convertPdf; - fwrite($inF, "listArguments : " . $listArguments . PHP_EOL); - fclose($inF); - } - - $jnlp_balise=$docXML->createElement("jnlp"); - $jnlp_attribute1 = $docXML->createAttribute('spec'); - $jnlp_attribute1->value = '6.0+'; - $jnlp_balise->appendChild($jnlp_attribute1); - $jnlp_attribute2 = $docXML->createAttribute('codebase'); - $jnlp_attribute2->value = $jar_url.'/apps/maarch_entreprise/tmp/'; - $jnlp_balise->appendChild($jnlp_attribute2); - $jnlp_attribute3 = $docXML->createAttribute('href'); - - $jnlp_attribute3->value = $jnlp_name; - - $jnlp_balise->appendChild($jnlp_attribute3); - - $info_balise=$docXML->createElement("information"); - - $title_balise=$docXML->createElement("title","Editeur de modèle de document"); - - $vendor_balise=$docXML->createElement("vendor","MAARCH"); - - $homepage_balise=$docXML->createElement("homepage"); - $homepage_attribute = $docXML->createAttribute('href'); - $homepage_attribute->value = 'http://maarch.com'; - $homepage_balise->appendChild($homepage_attribute); - - $desc_balise=$docXML->createElement("description","Génère votre document avec méta-données associées au courrier grâce à des champs de fusion."); - - $descshort_balise=$docXML->createElement("description","Génère votre document avec méta-données."); - $descshort_attribute = $docXML->createAttribute('kind'); - $descshort_attribute->value = 'short'; - $descshort_balise->appendChild($descshort_attribute); - - $offline_balise=$docXML->createElement("offline-allowed"); - - $security_balise=$docXML->createElement("security"); - - $permission_balise=$docXML->createElement("all-permissions"); - - $resources_balise=$docXML->createElement("resources"); - - $j2se_balise=$docXML->createElement("j2se"); - $j2se_attribute = $docXML->createAttribute('version'); - $j2se_attribute->value = '1.6+'; - $j2se_balise->appendChild($j2se_attribute); - - $jar_balise=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/maarchCM.jar'; - $jar_balise->appendChild($jar_attribute); - $jar_attribute = $docXML->createAttribute('main'); - $jar_attribute->value = 'true'; - $jar_balise->appendChild($jar_attribute); - - //begin ext libs - $jar_balise_1=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpclient-4.5.2.jar'; - $jar_balise_1->appendChild($jar_attribute); - - $jar_balise_2=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpclient-cache-4.5.2.jar'; - $jar_balise_2->appendChild($jar_attribute); - - $jar_balise_3=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpclient-win-4.5.2.jar'; - $jar_balise_3->appendChild($jar_attribute); - - $jar_balise_4=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpcore-4.4.4.jar'; - $jar_balise_4->appendChild($jar_attribute); - - $jar_balise_5=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/plugin.jar'; - $jar_balise_5->appendChild($jar_attribute); - - $jar_balise_6=$docXML->createElement("jar"); - $jar_attribute = $docXML->createAttribute('href'); - $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/commons-logging-1.2.jar'; - $jar_balise_6->appendChild($jar_attribute); - //end ext libs - - //$applet_balise=$docXML->createElement("applet-desc"); - $applet_balise=$docXML->createElement("application-desc"); - $applet_attribute1 = $docXML->createAttribute('main-class'); - $applet_attribute1->value = 'com.maarch.MaarchCM'; - $applet_balise->appendChild($applet_attribute1); - - //arguments - $param1_balise = $docXML->createElement("argument", $maarchcm_url); - - if (empty($objectType)) { - $objectType = 'empty'; - } - $param2_balise=$docXML->createElement("argument", htmlentities($objectType)); - - if (empty($objectTable)) { - $objectTable = 'empty'; - } - $param3_balise=$docXML->createElement("argument", htmlentities($objectTable)); - - if (empty($objectId)) { - $objectId = 'empty'; - } - $param4_balise=$docXML->createElement("argument", htmlentities($objectId)); - - if (empty($uniqueId)) { - $uniqueId = 'empty'; - } - $param5_balise=$docXML->createElement("argument", htmlentities($uniqueId)); - - if (empty($cookieKey)) { - $cookieKey = 'empty'; - } - $param6_balise=$docXML->createElement("argument", htmlentities($cookieKey)); - - if (empty($clientSideCookies)) { - $clientSideCookies = 'empty'; - } - $param7_balise=$docXML->createElement("argument", htmlentities($clientSideCookies)); - - if (empty($uid_applet_name)) { - $uid_applet_name = 'empty'; - } - $param8_balise=$docXML->createElement("argument", htmlentities($uid_applet_name)); - - if (empty($user)) { - $user = 'empty'; - } - $param9_balise=$docXML->createElement("argument", htmlentities($user)); - - if (empty($convertPdf)) { - $convertPdf = 'false'; - } - $param10_balise=$docXML->createElement("argument", htmlentities($convertPdf)); - - $jnlp_balise->appendChild($info_balise); - $info_balise->appendChild($title_balise); - $info_balise->appendChild($vendor_balise); - $info_balise->appendChild($homepage_balise); - $info_balise->appendChild($desc_balise); - $info_balise->appendChild($descshort_balise); - $info_balise->appendChild($offline_balise); - - $jnlp_balise->appendChild($security_balise); - $security_balise->appendChild($permission_balise); - - $jnlp_balise->appendChild($resources_balise); - $resources_balise->appendChild($j2se_balise); - $resources_balise->appendChild($jar_balise); - $resources_balise->appendChild($jar_balise_1); - $resources_balise->appendChild($jar_balise_2); - $resources_balise->appendChild($jar_balise_3); - $resources_balise->appendChild($jar_balise_4); - $resources_balise->appendChild($jar_balise_5); - $resources_balise->appendChild($jar_balise_6); - - $jnlp_balise->appendChild($applet_balise); - $applet_balise->appendChild($param1_balise); - $applet_balise->appendChild($param2_balise); - $applet_balise->appendChild($param3_balise); - $applet_balise->appendChild($param4_balise); - $applet_balise->appendChild($param5_balise); - $applet_balise->appendChild($param6_balise); - $applet_balise->appendChild($param7_balise); - $applet_balise->appendChild($param8_balise); - $applet_balise->appendChild($param9_balise); - $applet_balise->appendChild($param10_balise); - - $docXML->appendChild($jnlp_balise); - - $filename = $_SESSION['config']['tmppath'].$jnlp_name; - - $docXML->save($filename); - - $fp = fopen($_SESSION['config']['tmppath'].$uid_applet_name.".lck", 'w+'); - - $_SESSION['cm_applet'][$_SESSION['user']['UserId']][$uid_applet_name]=$uid_applet_name.'.lck'; - - $file = $jar_url."/apps/maarch_entreprise/tmp/".$jnlp_name; - - //echo '<a id="jnlp_file" href="'.$file.'" onclick="window.location.href=\''.$file.'\';self.close();"></a>'; - echo '<script>window.location.href=\''.$file.'\';if($(\'CMApplet\')) {destroyModal(\'CMApplet\');};if($(\'CMApplet\')) {destroyModal(\'CMApplet\');};</script>'; - exit(); - /*echo '<a id="jnlp_file" href="'.$_SESSION['config']['businessappurl'].'index.php?page=get_jnlp_file&module=content_management&display=true&filename='.$_SESSION['user']['UserId'].'_maarchCM"></a>'; - echo '<script>setTimeout(function() {this.window.close();}, 5000);document.getElementById("jnlp_file").click();</script>'; - exit();*/ - } -} +<?php + +/* +* Copyright 2008-2017 Maarch +* +* This file is part of Maarch Framework. +* +* Maarch Framework is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* Maarch Framework is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with Maarch Framework. If not, see <http://www.gnu.org/licenses/>. +*/ + +/** +* @brief Contains the functions to manage content_management directory and expiration +* +* @file +* @author Laurent Giovannoni +* @date $date$ +* @version $Revision$ +* @ingroup content_management +*/ + +require_once 'core/class/class_functions.php'; +require_once 'core/class/class_db_pdo.php'; +require_once 'core/class/docservers_controler.php'; +require_once 'core/class/class_security.php'; +require_once 'core/core_tables.php'; + +abstract class content_management_tools_Abstract +{ + //Parameters + protected $extensions_xml_path = 'xml/extensions.xml'; + protected $programs_xml_path = 'xml/programs.xml'; + protected $parameter_id = 'content_management_reservation'; + protected $templateMasterPath = 'modules/templates/templates_src/'; + //Variables + protected $db; + + public function __construct() + { + if (!isset($_SESSION) OR count($_SESSION) == 0) + return null; + + $this->db = new Database(); + //TODO: PUT IT AN CONFIG FILE WITH 30 + $_SESSION['config']['content_management_reserved_time'] = 30; + if (!is_dir('modules/content_management/tmp/')) { + mkdir('modules/content_management/tmp/'); + } + } + + public function getCmParameters() + { + if (file_exists( + $_SESSION['config']['corepath'] . 'custom/' + . $_SESSION['custom_override_id'] + . '/modules/content_management/xml/content_management_features.xml' + ) + ) { + $path = $_SESSION['config']['corepath'] . 'custom/' + . $_SESSION['custom_override_id'] + . '/modules/content_management/xml/content_management_features.xml'; + } else { + $path = $_SESSION['config']['corepath'] + . 'modules/content_management/xml/content_management_features.xml'; + } + $cMFeatures = array(); + if (file_exists($path)) { + $func = new functions(); + $cMFeatures = $func->object2array( + simplexml_load_file($path) + ); + } else { + $cMFeatures['CONFIG']['psExecMode'] = 'KO'; + $cMFeatures['CONFIG']['userMaarchOnClient'] = ''; + $cMFeatures['CONFIG']['userPwdMaarchOnClient'] = ''; + } + return $cMFeatures; + } + + /** + * Returns who reserved the resource + * + * @param string $objectTable res table, attachment table, model table, ... + * @param bigint $objectId id of the object res_id, model_id, ... + * @return array the user who reserved the resource, else false + */ + public function isReservedBy($objectTable, $objectId) + { + $timeLimit = $this->computeTimeLimit(); + $charTofind = $this->parameter_id . '#%#' . $objectTable . '#' . $objectId; + + $query = "select id from " . PARAM_TABLE . " where id like (?) and param_value_int > ?"; + + $stmt = $this->db->query($query, array($charTofind, $timeLimit)); + + if ($res = $stmt->fetchObject()) { + + $arrayUser = array(); + $arrayUser = explode("#", $res->id); + if ($arrayUser[1] <> '') { + $query = "select user_id, lastname, firstname " + . "from " . USERS_TABLE . " where user_id = ? and enabled = 'Y'"; + + $stmt = $this->db->query($query, array($arrayUser[1])); + + $arrayReturn = array(); + if ($resUser = $stmt->fetchObject()) { + $arrayReturn['fullname'] = $resUser->firstname . ' ' + . $resUser->lastname; + $arrayReturn['user_id'] = $resUser->user_id; + } else { + $arrayReturn['fullname'] = 'empty'; + } + $arrayReturn['status'] = 'ok'; + return $arrayReturn; + } else { + $arrayReturn['status'] = 'ko'; + } + } else { + $arrayReturn['status'] = 'ko'; + } + return $arrayReturn; + } + + /** + * Close the content_management reservation + * + * @param string $CMId content_management id + * @return nothing + */ + public function closeReservation($CMId) + { + $query = "delete from " . PARAM_TABLE + . " where id = ?"; + $stmt = $this->db->query($query, array($CMId)); + } + + /** + * Update the expiration date of the content_management reservation for the connected user + * + * @param string $CMId the content_management id + * @param string $userId the content_management id + * @return nothing + */ + public function updateExpiryDate($CMId, $userId) + { + $timeLimit = $this->computeTimeLimit() + ( + $_SESSION['config']['content_management_reserved_time'] * 60 + ); + $charTofind = $this->parameter_id . '#' . $userId . '%'; + $query = "update " . PARAM_TABLE + . " set param_value_int = ? " + . " where id like ?" + . " and param_value_string = ?"; + $stmt = $this->db->query( + $query, + array($timeLimit, $charTofind, $CMId) + ); + } + + /** + * Reserved the object for content_management + * Add an expiration date of the content_management reservation for the connected user + * + * @param string $objectTable the res table + * @param string $objectId the res_id + * @param string $CMId the content_management id + * @param string $userId the content_management id + * @return string the reservation id + */ + public function reserveObject($objectTable, $objectId, $userId) + { + $timeLimit = $this->computeTimeLimit() + ( + $_SESSION['config']['content_management_reserved_time'] * 60 + ); + //If exists Delete + $charTofind = $this->parameter_id . '#' . $userId . '#' . $objectTable + . '#' . $objectId; + $query = "delete from " . PARAM_TABLE + . " where id = ?"; + $stmt = $this->db->query($query, array($charTofind)); + $query = "insert into " . PARAM_TABLE + . " (id, param_value_int)" + . " values(?, ?)"; + $stmt = $this->db->query($query, array($charTofind, $timeLimit)); + return $charTofind; + } + + /** + * Delete the resource in the tmp content_management dir if necessary + * + * @return nothing + */ + public function deleteExpiredCM() + { + $timeLimit = $this->computeTimeLimit(); + $query = "delete from " . PARAM_TABLE + . " where param_value_int < ? " + . " and id like ? "; + $stmt = $this->db->query($query, array($timeLimit, $this->parameter_id . '%')); + } + + /** + * Delete the resource for the disconnected user + * + * @return nothing + */ + public function deleteUserCM() + { + $query = "delete from " . PARAM_TABLE + . " where id like ?"; + $stmt = $this->db->query($query, array('content_management_reservation#' + . $_SESSION['user']['UserId'] . '%') + ); + } + + /** + * Delete the content_management tmp if necessary + * + * @param string $dir path to the tmp dir + * @return nothing + */ + protected function deleteDirectory($dir) + { + if (!file_exists($dir)) return true; + if (!is_dir($dir) || is_link($dir)) return unlink($dir); + foreach (scandir($dir) as $item) { + if ($item == '.' || $item == '..') continue; + if (!$this->deleteDirectory($dir . "/" . $item)) { + chmod($dir . "/" . $item, 0777); + if (!$this->deleteDirectory($dir . "/" . $item)) return false; + }; + } + return rmdir($dir); + } + + /** + * Returns time before expiration of the content_management reservation + * + * @param string $CMId the content_management id + * @return bigint the time in secon before expiration + */ + public function timeBeforeExpiration($CMId) + { + $now = $this->computeTimeLimit(); + $charTofind = $this->parameter_id . '%'; + $query = "select param_value_int as time" + . " from " . PARAM_TABLE + . " where id like ?" + . " and param_value_string = ?"; + $stmt = $this->db->query($query, array($charTofind, $CMId)); + if ($res = $stmt->fetchObject()) { + $secBeforeExpiration = $res->time - $now; + if ($secBeforeExpiration < 0) { + return 0; + } else { + return $secBeforeExpiration; + } + } else { + return 0; + } + } + + /** + * Returns the program to update the resource with content_management + * + * @param string $mimeType mime type of the resource + * @return array the program and status ok if mime type allowed for content_management + */ + public function isMimeTypeAllowedForCM($mimeType, $ext) { + $typeState = 'ko'; + $programPath = ''; + if ($mimeType <> '' && $ext <> '') { + $path = $_SESSION['config']['corepath'] . 'custom/' + . $_SESSION['custom_override_id'] . '/apps/' + . $_SESSION['config']['app_id'] . '/xml/extensions.xml'; + if (!file_exists($path)) { + $path = $_SESSION['config']['corepath'] . '/apps/' + . $_SESSION['config']['app_id'] . '/xml/extensions.xml'; + } + $xmlconfig = simplexml_load_file($path); + $extList = array(); + $i = 0; + foreach ($xmlconfig->FORMAT as $FORMAT) { + $extList[$i] = array( + 'name' => (string) $FORMAT->name, + 'mime' => (string) $FORMAT->mime, + 'web_dav_update' => (string) $FORMAT->web_dav_update, + 'default_program' => (string) $FORMAT->default_program, + ); + $i++; + } + for ($i=0;$i<count($extList);$i++) { + if ( + $extList[$i]['mime'] == $mimeType + && strtolower($extList[$i]['name']) == strtolower($ext) + && strtolower($extList[$i]['web_dav_update']) == 'true' + ) { + $typeState = 'ok'; + $programPath = $extList[$i]['default_program']; + break; + } + } + } + $arrayReturn = array( + 'status' => $typeState, + 'programPath' => $programPath, + ); + return $arrayReturn; + } + + /** + * Compute the time limit for a content_management session + * + * @return string the time limit in timestamp + */ + public function computeTimeLimit() + { + $timeLimit = mktime( + date('H'), + date('i'), + date('s'), + date('m'), + date('d'), + date('Y') + ); + return $timeLimit; + } + + /** + * Generate JLNP file to launch the JNLP + * + * + */ + public function generateJNLP( + $jar_url, + $maarchcm_url, + $objectType, + $objectTable, + $objectId, + $uniqueId, + $cookieKey, + $user, + $clientSideCookies, + $convertPdf = "false", + $onlyConvert = "false" + ) { + $docXML = new DomDocument('1.0', "UTF-8"); + + //create unique id for APPLET + $uid_applet_name = $_SESSION['user']['UserId'].'_maarchCM_'.rand(); + + $jnlp_name = $uid_applet_name.'.jnlp'; + + if ($_SESSION['config']['debug']) { + $inF = fopen( + $_SESSION['config']['tmppath'] . 'log_jnlp_' . $_SESSION['user']['UserId'] . '.log', + 'a' + ); + fwrite( + $inF, + '------------------' . PHP_EOL + . 'CREATE JNLP------------------' + . $_SERVER['SERVER_NAME'] . ' ' . $_SESSION['user']['UserId'] . ' ' . date('D, j M Y H:i:s O') .PHP_EOL + ); + fwrite($inF, '|||||||||||||||||SERVER DETAILS BEGIN FOR CREATE JNLP|||||||||||||||||' . PHP_EOL); + foreach($_SERVER as $key => $value) { + fwrite($inF, $key . " : " . $value . PHP_EOL); + } + fwrite($inF, '|||||||||||||||||SERVER DETAILS END FOR CREATE JNLP|||||||||||||||||' . PHP_EOL); + fwrite($inF, "jar_url : " . $jar_url . PHP_EOL); + fwrite($inF, "jnlp_name : " . $jnlp_name . PHP_EOL); + fwrite($inF, "maarchcm_url : " . $maarchcm_url . PHP_EOL); + fwrite($inF, "objectType : " . $objectType . PHP_EOL); + fwrite($inF, "objectTable : " . $objectTable . PHP_EOL); + fwrite($inF, "objectId : " . $objectId . PHP_EOL); + fwrite($inF, "uniqueId : " . $uniqueId . PHP_EOL); + fwrite($inF, "cookieKey : " . $cookieKey . PHP_EOL); + fwrite($inF, "idApplet : " . $idApplet . PHP_EOL); + fwrite($inF, "clientSideCookies : " . $clientSideCookies . PHP_EOL); + fwrite($inF, "user : " . $user . PHP_EOL); + fwrite($inF, "convertPdf : " . $convertPdf . PHP_EOL); + fwrite($inF, "onlyConvert : " . $onlyConvert . PHP_EOL); + $listArguments = '?url=' . urlencode($maarchcm_url) + . '&objectType=' . $objectType + . '&objectTable=' . $objectTable + . '&objectId=' . $objectId + . '&uniqueId=' . $uniqueId + . '&cookie=' . $cookieKey + . '&clientSideCookies=' . $clientSideCookies + . '&idApplet=' . $uid_applet_name + . '&userMaarch=' . $user + . '&convertPdf=' . $convertPdf + . '&onlyConvert=' . $onlyConvert; + fwrite($inF, "listArguments : " . $listArguments . PHP_EOL); + fclose($inF); + } + + $jnlp_balise=$docXML->createElement("jnlp"); + $jnlp_attribute1 = $docXML->createAttribute('spec'); + $jnlp_attribute1->value = '6.0+'; + $jnlp_balise->appendChild($jnlp_attribute1); + $jnlp_attribute2 = $docXML->createAttribute('codebase'); + $jnlp_attribute2->value = $jar_url.'/apps/maarch_entreprise/tmp/'; + $jnlp_balise->appendChild($jnlp_attribute2); + $jnlp_attribute3 = $docXML->createAttribute('href'); + + $jnlp_attribute3->value = $jnlp_name; + + $jnlp_balise->appendChild($jnlp_attribute3); + + $info_balise=$docXML->createElement("information"); + + $title_balise=$docXML->createElement("title","Editeur de modèle de document"); + + $vendor_balise=$docXML->createElement("vendor","MAARCH"); + + $homepage_balise=$docXML->createElement("homepage"); + $homepage_attribute = $docXML->createAttribute('href'); + $homepage_attribute->value = 'http://maarch.com'; + $homepage_balise->appendChild($homepage_attribute); + + $desc_balise=$docXML->createElement("description","Génère votre document avec méta-données associées au courrier grâce à des champs de fusion."); + + $descshort_balise=$docXML->createElement("description","Génère votre document avec méta-données."); + $descshort_attribute = $docXML->createAttribute('kind'); + $descshort_attribute->value = 'short'; + $descshort_balise->appendChild($descshort_attribute); + + $offline_balise=$docXML->createElement("offline-allowed"); + + $security_balise=$docXML->createElement("security"); + + $permission_balise=$docXML->createElement("all-permissions"); + + $resources_balise=$docXML->createElement("resources"); + + $j2se_balise=$docXML->createElement("j2se"); + $j2se_attribute = $docXML->createAttribute('version'); + $j2se_attribute->value = '1.6+'; + $j2se_balise->appendChild($j2se_attribute); + + $jar_balise=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/maarchCM.jar'; + $jar_balise->appendChild($jar_attribute); + $jar_attribute = $docXML->createAttribute('main'); + $jar_attribute->value = 'true'; + $jar_balise->appendChild($jar_attribute); + + //begin ext libs + $jar_balise_1=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpclient-4.5.2.jar'; + $jar_balise_1->appendChild($jar_attribute); + + $jar_balise_2=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpclient-cache-4.5.2.jar'; + $jar_balise_2->appendChild($jar_attribute); + + $jar_balise_3=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpclient-win-4.5.2.jar'; + $jar_balise_3->appendChild($jar_attribute); + + $jar_balise_4=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/httpcore-4.4.4.jar'; + $jar_balise_4->appendChild($jar_attribute); + + $jar_balise_5=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/plugin.jar'; + $jar_balise_5->appendChild($jar_attribute); + + $jar_balise_6=$docXML->createElement("jar"); + $jar_attribute = $docXML->createAttribute('href'); + $jar_attribute->value = $jar_url.'/modules/content_management/dist/lib/commons-logging-1.2.jar'; + $jar_balise_6->appendChild($jar_attribute); + //end ext libs + + //$applet_balise=$docXML->createElement("applet-desc"); + $applet_balise=$docXML->createElement("application-desc"); + $applet_attribute1 = $docXML->createAttribute('main-class'); + $applet_attribute1->value = 'com.maarch.MaarchCM'; + $applet_balise->appendChild($applet_attribute1); + + //arguments + $param1_balise = $docXML->createElement("argument", $maarchcm_url); + + if (empty($objectType)) { + $objectType = 'empty'; + } + $param2_balise=$docXML->createElement("argument", htmlentities($objectType)); + + if (empty($objectTable)) { + $objectTable = 'empty'; + } + $param3_balise=$docXML->createElement("argument", htmlentities($objectTable)); + + if (empty($objectId)) { + $objectId = 'empty'; + } + $param4_balise=$docXML->createElement("argument", htmlentities($objectId)); + + if (empty($uniqueId)) { + $uniqueId = 'empty'; + } + $param5_balise=$docXML->createElement("argument", htmlentities($uniqueId)); + + if (empty($cookieKey)) { + $cookieKey = 'empty'; + } + $param6_balise=$docXML->createElement("argument", htmlentities($cookieKey)); + + if (empty($clientSideCookies)) { + $clientSideCookies = 'empty'; + } + $param7_balise=$docXML->createElement("argument", htmlentities($clientSideCookies)); + + if (empty($uid_applet_name)) { + $uid_applet_name = 'empty'; + } + $param8_balise=$docXML->createElement("argument", htmlentities($uid_applet_name)); + + if (empty($user)) { + $user = 'empty'; + } + $param9_balise=$docXML->createElement("argument", htmlentities($user)); + + if (empty($convertPdf)) { + $convertPdf = 'false'; + } + $param10_balise=$docXML->createElement("argument", htmlentities($convertPdf)); + + if (empty($onlyConvert)) { + $onlyConvert = 'false'; + } + $param11_balise=$docXML->createElement("argument", htmlentities($onlyConvert)); + + + $jnlp_balise->appendChild($info_balise); + $info_balise->appendChild($title_balise); + $info_balise->appendChild($vendor_balise); + $info_balise->appendChild($homepage_balise); + $info_balise->appendChild($desc_balise); + $info_balise->appendChild($descshort_balise); + $info_balise->appendChild($offline_balise); + + $jnlp_balise->appendChild($security_balise); + $security_balise->appendChild($permission_balise); + + $jnlp_balise->appendChild($resources_balise); + $resources_balise->appendChild($j2se_balise); + $resources_balise->appendChild($jar_balise); + $resources_balise->appendChild($jar_balise_1); + $resources_balise->appendChild($jar_balise_2); + $resources_balise->appendChild($jar_balise_3); + $resources_balise->appendChild($jar_balise_4); + $resources_balise->appendChild($jar_balise_5); + $resources_balise->appendChild($jar_balise_6); + + $jnlp_balise->appendChild($applet_balise); + $applet_balise->appendChild($param1_balise); + $applet_balise->appendChild($param2_balise); + $applet_balise->appendChild($param3_balise); + $applet_balise->appendChild($param4_balise); + $applet_balise->appendChild($param5_balise); + $applet_balise->appendChild($param6_balise); + $applet_balise->appendChild($param7_balise); + $applet_balise->appendChild($param8_balise); + $applet_balise->appendChild($param9_balise); + $applet_balise->appendChild($param10_balise); + $applet_balise->appendChild($param11_balise); + + $docXML->appendChild($jnlp_balise); + + $filename = $_SESSION['config']['tmppath'].$jnlp_name; + + $docXML->save($filename); + + $fp = fopen($_SESSION['config']['tmppath'].$uid_applet_name.".lck", 'w+'); + + $_SESSION['cm_applet'][$_SESSION['user']['UserId']][$uid_applet_name]=$uid_applet_name.'.lck'; + + $file = $jar_url."/apps/maarch_entreprise/tmp/".$jnlp_name; + + //echo '<a id="jnlp_file" href="'.$file.'" onclick="window.location.href=\''.$file.'\';self.close();"></a>'; + echo '<script>window.location.href=\''.$file.'\';if($(\'CMApplet\')) {destroyModal(\'CMApplet\');};if($(\'CMApplet\')) {destroyModal(\'CMApplet\');};</script>'; + exit(); + /*echo '<a id="jnlp_file" href="'.$_SESSION['config']['businessappurl'].'index.php?page=get_jnlp_file&module=content_management&display=true&filename='.$_SESSION['user']['UserId'].'_maarchCM"></a>'; + echo '<script>setTimeout(function() {this.window.close();}, 5000);document.getElementById("jnlp_file").click();</script>'; + exit();*/ + } +} diff --git a/modules/content_management/dist/not_signed/maarchCM.jar b/modules/content_management/dist/not_signed/maarchCM.jar index 8f864e0297724367de89501e6e16561eb33cbb41..d8283be41269d69429d28dbe35b47ccb8a069e56 100644 GIT binary patch delta 117625 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≶x5mXN>yUy?IoO3m;Wf5(jR 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 F_z(RsLc9O~ delta 116474 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%0D*cV_fi0-_cmfHz4?Y394(THT@}57a=kLhr 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¥XJ#_A46ef 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 ZWj#Bbzc!f6_|zsY3%`JXpP{p{`7eKp2H*ey diff --git a/modules/content_management/dist/src/FileManager.java b/modules/content_management/dist/src/FileManager.java old mode 100755 new mode 100644 index aa2d592950e..cc2ccf8d596 --- a/modules/content_management/dist/src/FileManager.java +++ b/modules/content_management/dist/src/FileManager.java @@ -368,4 +368,4 @@ public class FileManager { } } -} \ No newline at end of file +} diff --git a/modules/content_management/dist/src/MaarchCM.java b/modules/content_management/dist/src/MaarchCM.java old mode 100755 new mode 100644 index 24ef49333a1..2ccb0bb013b --- a/modules/content_management/dist/src/MaarchCM.java +++ b/modules/content_management/dist/src/MaarchCM.java @@ -68,6 +68,8 @@ public class MaarchCM { protected String clientSideCookies; protected String uniqueId; protected String convertPdf; + protected String onlyConvert; + protected String domain; protected String userLocalDirTmp; protected String userMaarch; @@ -96,7 +98,9 @@ public class MaarchCM { public MyLogger logger; public FileManager fM; public String fileToEdit; - public String editMode; + public String editMode; + public String programName; + public List<String> fileToDelete = new ArrayList<String>(); @@ -131,6 +135,7 @@ public class MaarchCM { idApplet = args[7]; userMaarch = args[8]; convertPdf = args[9]; + onlyConvert = args[10]; System.out.println("URL : " + url); System.out.println("OBJECT TYPE : " + objectType); @@ -141,7 +146,8 @@ public class MaarchCM { System.out.println("COOKIE : " + cookie); System.out.println("CLIENTSIDECOOKIES : " + clientSideCookies); System.out.println("USERMAARCH : " + userMaarch); - System.out.println("CONVERPDF : " + convertPdf); + System.out.println("CONVERTPDF : " + convertPdf); + System.out.println("ONLYCONVERT : " + onlyConvert); System.out.println("----------CONTROL PARAMETERS----------"); if ( @@ -324,8 +330,21 @@ public class MaarchCM { } public void createPDF(String docxFile, String directory, boolean isUnix) { + logger.log("createPDF ", Level.INFO); try { - System.out.println("mode ! : "+editMode); + System.out.println("mode ! : " + editMode); + //patch onlyConvert + if (onlyConvert.equals("true")) { + if ("linux".equals(os) || "mac".equals(os)) { + editMode = "libreoffice"; + } else { + if("soffice.exe".equals(programName)){ + editMode = "libreoffice"; + }else{ + editMode = "office"; + } + } + } boolean conversion = true; String cmd = ""; if (docxFile.contains(".odt") || docxFile.contains(".ods") || docxFile.contains(".ODT") || docxFile.contains(".ODS")) { @@ -339,6 +358,7 @@ public class MaarchCM { } } else if (docxFile.contains(".doc") || docxFile.contains(".docx") || docxFile.contains(".DOC") || docxFile.contains(".DOCX")) { + logger.log("This is MSOffice document ", Level.INFO); if (useExeConvert.equals("false")) { if (isUnix) { cmd = "libreoffice -env:UserInstallation=file://"+userLocalDirTmp+idApplet+"_conv\\ --headless --convert-to pdf --outdir \"" + userLocalDirTmp.substring(0, userLocalDirTmp.length() - 1) + "\" \"" + docxFile + "\""; @@ -486,7 +506,7 @@ public class MaarchCM { */ public String editObject() throws Exception, InterruptedException, JSException { - System.out.println("----------BEGIN EDIT OBJECT---------- LGI by Maarch and DIS 22/01/2017"); + System.out.println("----------BEGIN EDIT OBJECT---------- LGI by Maarch 02/10/2017"); System.out.println("----------BEGIN LOCAL DIR TMP IF NOT EXISTS----------"); os = System.getProperty("os.name").toLowerCase(); boolean isUnix = os.contains("nix") || os.contains("nux"); @@ -552,11 +572,17 @@ public class MaarchCM { logger.log("COOKIE : " + cookie, Level.INFO); logger.log("CLIENTSIDECOOKIES : " + clientSideCookies, Level.INFO); logger.log("USERMAARCH : " + userMaarch, Level.INFO); + logger.log("ONLYCONVERT : " + onlyConvert, Level.INFO); logger.log("----------BEGIN OPEN REQUEST----------", Level.INFO); - String urlToSend = url + "?action=editObject&objectType=" + objectType - + "&objectTable=" + objectTable + "&objectId=" + objectId - + "&uniqueId=" + uniqueId; + String urlToSend; + + urlToSend = url + "?action=editObject&objectType=" + objectType + + "&objectTable=" + objectTable + "&objectId=" + objectId + + "&uniqueId=" + uniqueId; + + + logger.log("FIRST URL CALL : " + urlToSend, Level.INFO); sendHttpRequest(urlToSend, "none", false); logger.log("MESSAGE STATUS : " + messageStatus, Level.INFO); logger.log("MESSAGE RESULT : ", Level.INFO); @@ -598,35 +624,41 @@ public class MaarchCM { fM.createFile(fileContent, userLocalDirTmp + fileToEdit); fileToDelete.add(userLocalDirTmp + fileToEdit); - Thread theThread; - theThread = new Thread(new ProcessLoop(this)); - - theThread.start(); - - String actualContent; fileContentTosend = ""; - do { - theThread.sleep(3000); - File fileTotest = new File(userLocalDirTmp + fileToEdit); - if (fileTotest.canRead()) { - actualContent = FileManager.encodeFile(userLocalDirTmp + fileToEdit); - if (!fileContentTosend.equals(actualContent)) { - fileContentTosend = actualContent; - logger.log("----------[SECURITY BACKUP] BEGIN SEND OF THE OBJECT----------", Level.INFO); - String urlToSave = url + "?action=saveObject&objectType=" + objectType - + "&objectTable=" + objectTable + "&objectId=" + objectId - + "&uniqueId=" + uniqueId + "&step=backup&userMaarch=" + userMaarch; - logger.log("[SECURITY BACKUP] URL TO SAVE : " + urlToSave, Level.INFO); - sendHttpRequest(urlToSave, fileContentTosend, false); - logger.log("[SECURITY BACKUP] MESSAGE STATUS : " + messageStatus, Level.INFO); + + if (onlyConvert.equals("false")) { + Thread theThread; + theThread = new Thread(new ProcessLoop(this)); + + theThread.start(); + + String actualContent; + + do { + theThread.sleep(3000); + File fileTotest = new File(userLocalDirTmp + fileToEdit); + if (fileTotest.canRead()) { + actualContent = FileManager.encodeFile(userLocalDirTmp + fileToEdit); + if (!fileContentTosend.equals(actualContent)) { + fileContentTosend = actualContent; + logger.log("----------[SECURITY BACKUP] BEGIN SEND OF THE OBJECT----------", Level.INFO); + String urlToSave = url + "?action=saveObject&objectType=" + objectType + + "&objectTable=" + objectTable + "&objectId=" + objectId + + "&uniqueId=" + uniqueId + "&step=backup&userMaarch=" + userMaarch; + logger.log("[SECURITY BACKUP] URL TO SAVE : " + urlToSave, Level.INFO); + sendHttpRequest(urlToSave, fileContentTosend, false); + logger.log("[SECURITY BACKUP] MESSAGE STATUS : " + messageStatus, Level.INFO); + } + } else { + logger.log(userLocalDirTmp + fileToEdit + " FILE NOT READABLE !!!!!!", Level.INFO); } - } else { - logger.log(userLocalDirTmp + fileToEdit + " FILE NOT READABLE !!!!!!", Level.INFO); } + while (theThread.isAlive()); + + theThread.interrupt(); } - while (theThread.isAlive()); - theThread.interrupt(); + logger.log("----------END EXECUTION OF THE EDITOR----------", Level.INFO); @@ -635,10 +667,13 @@ public class MaarchCM { fileContentTosend = FileManager.encodeFile(userLocalDirTmp + fileToEdit); logger.log("----------END RETRIEVE CONTENT OF THE OBJECT----------", Level.INFO); + + logger.log("conversion pdf ? " + convertPdf , Level.INFO); if ("true".equals(convertPdf)) { if ((fileExtension.equalsIgnoreCase("docx") || fileExtension.equalsIgnoreCase("doc") || fileExtension.equalsIgnoreCase("docm") || fileExtension.equalsIgnoreCase("odt") || fileExtension.equalsIgnoreCase("ott"))) { logger.log("----------CONVERSION PDF----------", Level.INFO); + createPDF(userLocalDirTmp + fileToEdit, userLocalDirTmp, isUnix); String pdfFile = userLocalDirTmp + "thefile_" + idApplet + ".pdf"; @@ -664,7 +699,8 @@ public class MaarchCM { String urlToSave = url + "?action=saveObject&objectType=" + objectType + "&objectTable=" + objectTable + "&objectId=" + objectId - + "&uniqueId=" + uniqueId + "&idApplet=" + idApplet + "&step=end&userMaarch=" + userMaarch; + + "&uniqueId=" + uniqueId + "&idApplet=" + idApplet + "&step=end&userMaarch=" + userMaarch + + "&onlyConvert=" + onlyConvert; logger.log("----------BEGIN SEND OF THE OBJECT----------", Level.INFO); logger.log("URL TO SAVE : " + urlToSave, Level.INFO); sendHttpRequest(urlToSave, fileContentTosend, true); @@ -742,7 +778,6 @@ public class MaarchCM { } else { logger.log("FILE TO EDIT : " + userLocalDirTmp + fileToEdit, Level.INFO); - String programName; programName = fM.findGoodProgramWithExt(fileExtension); String pathProgram; pathProgram = fM.findPathProgramInRegistry(programName); diff --git a/modules/content_management/retrieve_new_attachment_from_cm.php b/modules/content_management/retrieve_new_attachment_from_cm.php new file mode 100755 index 00000000000..2aec72af083 --- /dev/null +++ b/modules/content_management/retrieve_new_attachment_from_cm.php @@ -0,0 +1,19 @@ +<?php +//case of res -> new attachment + + +if (!file_exists($_SESSION['config']['tmppath'] . $_SESSION['upfile']['name'])) { + $result = array('ERROR' => _THE_DOC . ' ' . $_SESSION['config']['tmppath'] . $_SESSION['upfile']['name'] . ' ' . _EXISTS_OR_RIGHT); + createXML('ERROR', $result); +} else { + $func = new functions(); + $fileExtension = $func->extractFileExt($_SESSION['config']['tmppath'] . $_SESSION['upfile']['name']); + $filePathOnTmp = $_SESSION['config']['tmppath'] . $_SESSION['upfile']['name']; + // $file = fopen('file.log', a); + // fwrite($file, '[' . date('Y-m-d H:i:s') . '] ------BEGIN------- ' . PHP_EOL); + // fwrite($file, '[' . date('Y-m-d H:i:s') . '] EXT ' . $fileExtension . PHP_EOL); + // fwrite($file, '[' . date('Y-m-d H:i:s') . '] PATH ' . $filePathOnTmp . PHP_EOL); + // fclose($file); + // $result = array('ERROR' => _THE_DOC . ' ' . $_SESSION['config']['tmppath'] . $_SESSION['upfile']['name'] . ' ' . _EXISTS_OR_RIGHT); + // createXML('ERROR', $result); +} diff --git a/modules/content_management/save_attach_res_from_cm.php b/modules/content_management/save_attach_res_from_cm.php index fb9b345d72d..32e99678fc9 100755 --- a/modules/content_management/save_attach_res_from_cm.php +++ b/modules/content_management/save_attach_res_from_cm.php @@ -2,6 +2,14 @@ //FOR ADD NEW ATTACHMENTS +// case onlyConvert +if ( + $_SESSION['modules_loaded']['attachments']['convertPdf'] == true && + $objectType == 'newAttachment' +){ + $_SESSION['upfile']['fileNamePdfOnTmp'] = $tmpFilePdfName; +} + require_once 'modules/attachments/attachments_tables.php'; //new attachment from a template diff --git a/modules/content_management/xml/IVS/validation_rules.xml b/modules/content_management/xml/IVS/validation_rules.xml index e60043acc50..d5045e7cbf2 100755 --- a/modules/content_management/xml/IVS/validation_rules.xml +++ b/modules/content_management/xml/IVS/validation_rules.xml @@ -7,7 +7,8 @@ <parameter name="transmissionNumber" type="identifier" /> <parameter name="fileContent" type="string" /> <parameter name="fileExtension" type="filename_extension" /> - <parameter name="pdfContent" type="string" /> + <parameter name="pdfContent" type="string" /> + <parameter name="onlyConvert" type="string" /> </validationRule> <validationRule name="cm_applet_launcher" extends="standardForm" mode="error"> <parameter name="action" type="identifier" /> diff --git a/modules/templates/class/templates_controler_Abstract.php b/modules/templates/class/templates_controler_Abstract.php index 1d364900209..a1641194a01 100755 --- a/modules/templates/class/templates_controler_Abstract.php +++ b/modules/templates/class/templates_controler_Abstract.php @@ -268,15 +268,20 @@ abstract class templates_controler_Abstract extends ObjectControler implements O { $this->set_foolish_ids(array('template_id')); $this->set_specific_id('template_id'); - $template = $this->advanced_get($template_id, _TEMPLATES_TABLE_NAME); - $template->template_content = str_replace('###', ';', $template->template_content); - $template->template_content = str_replace('___', '--', $template->template_content); - if (get_class($template) <> 'templates') { - return null; + if (!empty($template_id) && $template_id <> '' && $template_id <> 'empty') { + $template = $this->advanced_get($template_id, _TEMPLATES_TABLE_NAME); + $template->template_content = str_replace('###', ';', $template->template_content); + $template->template_content = str_replace('___', '--', $template->template_content); + if (get_class($template) <> 'templates') { + return null; + } else { + //var_dump($template); + return $template; + } } else { - //var_dump($template); - return $template; + return null; } + } /** diff --git a/modules/templates/datasources/letterbox_attachment.php b/modules/templates/datasources/letterbox_attachment.php index 56b1e40ef95..19b91bcd757 100755 --- a/modules/templates/datasources/letterbox_attachment.php +++ b/modules/templates/datasources/letterbox_attachment.php @@ -12,237 +12,241 @@ $contacts = new contacts_v2(); // Main document resource from view $datasources['res_letterbox'] = array(); +if (empty($res_view)) { + $res_view = 'res_view_letterbox'; +} -$stmt = $dbDatasource->query("SELECT * FROM " . $res_view . " WHERE res_id = ? ", array($res_id)); -$doc = $stmt->fetch(PDO::FETCH_ASSOC); -$date = new DateTime($doc['doc_date']); -$doc['doc_date']=$date->format('d/m/Y'); +if (!empty($res_id)) { + $stmt = $dbDatasource->query("SELECT * FROM " . $res_view . " WHERE res_id = ? ", array($res_id)); + $doc = $stmt->fetch(PDO::FETCH_ASSOC); + $date = new DateTime($doc['doc_date']); + $doc['doc_date']=$date->format('d/m/Y'); -$admission_date = new DateTime($doc['admission_date']); -$doc['admission_date']=$admission_date->format('d/m/Y'); + $admission_date = new DateTime($doc['admission_date']); + $doc['admission_date']=$admission_date->format('d/m/Y'); -$creation_date = new DateTime($doc['creation_date']); -$doc['creation_date']=$creation_date->format('d/m/Y'); + $creation_date = new DateTime($doc['creation_date']); + $doc['creation_date']=$creation_date->format('d/m/Y'); -$process_limit_date = new DateTime($doc['process_limit_date']); -$doc['process_limit_date']=$process_limit_date->format('d/m/Y'); + $process_limit_date = new DateTime($doc['process_limit_date']); + $doc['process_limit_date']=$process_limit_date->format('d/m/Y'); -$doc['category_id'] = html_entity_decode($_SESSION['coll_categories']['letterbox_coll'][$doc['category_id']]); + $doc['category_id'] = html_entity_decode($_SESSION['coll_categories']['letterbox_coll'][$doc['category_id']]); -$doc['nature_id'] = $_SESSION['mail_natures'][$doc['nature_id']]; + $doc['nature_id'] = $_SESSION['mail_natures'][$doc['nature_id']]; -//INITIATOR INFO OF DOCUMENT -$stmt2 = $dbDatasource->query("SELECT * FROM entities WHERE entity_id = ? ", array($doc['initiator'])); -$initiator = $stmt2->fetch(PDO::FETCH_ASSOC); + //INITIATOR INFO OF DOCUMENT + $stmt2 = $dbDatasource->query("SELECT * FROM entities WHERE entity_id = ? ", array($doc['initiator'])); + $initiator = $stmt2->fetch(PDO::FETCH_ASSOC); -if (!empty($initiator)) { - foreach ($initiator as $column => $value) { - - $doc['initiator_'.$column] = $value; + if (!empty($initiator)) { + foreach ($initiator as $column => $value) { + + $doc['initiator_'.$column] = $value; + } } -} -$datasources['res_letterbox'][] = $doc; + $datasources['res_letterbox'][] = $doc; -//COMPLEMENTARY CURRENT USER INFO -$stmt2 = $dbDatasource->query("SELECT * FROM entities WHERE entity_id = ? ", array($_SESSION['user']['primaryentity']['id'])); -$dest = $stmt2->fetch(PDO::FETCH_ASSOC); + //COMPLEMENTARY CURRENT USER INFO + $stmt2 = $dbDatasource->query("SELECT * FROM entities WHERE entity_id = ? ", array($_SESSION['user']['primaryentity']['id'])); + $dest = $stmt2->fetch(PDO::FETCH_ASSOC); -if (!empty($dest)) { - foreach ($dest as $column => $value) { - $datasources['user'][0][$column] = $value; + if (!empty($dest)) { + foreach ($dest as $column => $value) { + $datasources['user'][0][$column] = $value; + } } -} -//multicontact -$stmt = $dbDatasource->query("SELECT * FROM contacts_res WHERE res_id = ? AND contact_id = ? ", array($doc['res_id'], $res_contact_id)); -$datasources['res_letterbox_contact'][] = $stmt->fetch(PDO::FETCH_ASSOC); - -if ($datasources['res_letterbox_contact'][0]['contact_id'] <> '') { - // $datasources['contact'] = array(); - $stmt = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? and ca_id = ? ", array($datasources['res_letterbox_contact'][0]['contact_id'], $datasources['res_letterbox_contact'][0]['address_id'])); - $myContact = $stmt->fetch(PDO::FETCH_ASSOC); - $myContact['contact_title'] = $contacts->get_civility_contact($myContact['contact_title']); - $myContact['title'] = $contacts->get_civility_contact($myContact['title']); - $datasources['contact'][] = $myContact; - - // single Contact -} else if (isset($res_contact_id) && isset($res_address_id) && is_numeric($res_contact_id)) { - $stmt = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? and ca_id = ? ", array($res_contact_id, $res_address_id)); - $myContact = $stmt->fetch(PDO::FETCH_ASSOC); - $myContact['contact_title'] = $contacts->get_civility_contact($myContact['contact_title']); - $myContact['title'] = $contacts->get_civility_contact($myContact['title']); - $datasources['contact'][] = $myContact; - -} else if (!empty($res_contact_id) && !is_numeric($res_contact_id)) { - $stmt = $dbDatasource->query("SELECT firstname, lastname, user_id, mail, phone, initials FROM users WHERE user_id = ?", [$res_contact_id]); - $myContact = $stmt->fetch(PDO::FETCH_ASSOC); - $datasources['contact'][] = $myContact; - -} else { - $stmt = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? and ca_id = ?" , array($datasources['res_letterbox'][0]['contact_id'],$datasources['res_letterbox'][0]['address_id'])); - $myContact = $stmt->fetch(PDO::FETCH_ASSOC); - $myContact['contact_title'] = $contacts->get_civility_contact($myContact['contact_title']); - $myContact['title'] = $contacts->get_civility_contact($myContact['title']); - $datasources['contact'][] = $myContact; -} + //multicontact + $stmt = $dbDatasource->query("SELECT * FROM contacts_res WHERE res_id = ? AND contact_id = ? ", array($doc['res_id'], $res_contact_id)); + $datasources['res_letterbox_contact'][] = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($datasources['res_letterbox_contact'][0]['contact_id'] <> '') { + // $datasources['contact'] = array(); + $stmt = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? and ca_id = ? ", array($datasources['res_letterbox_contact'][0]['contact_id'], $datasources['res_letterbox_contact'][0]['address_id'])); + $myContact = $stmt->fetch(PDO::FETCH_ASSOC); + $myContact['contact_title'] = $contacts->get_civility_contact($myContact['contact_title']); + $myContact['title'] = $contacts->get_civility_contact($myContact['title']); + $datasources['contact'][] = $myContact; + + // single Contact + } else if (isset($res_contact_id) && isset($res_address_id) && is_numeric($res_contact_id)) { + $stmt = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? and ca_id = ? ", array($res_contact_id, $res_address_id)); + $myContact = $stmt->fetch(PDO::FETCH_ASSOC); + $myContact['contact_title'] = $contacts->get_civility_contact($myContact['contact_title']); + $myContact['title'] = $contacts->get_civility_contact($myContact['title']); + $datasources['contact'][] = $myContact; + + } else if (!empty($res_contact_id) && !is_numeric($res_contact_id)) { + $stmt = $dbDatasource->query("SELECT firstname, lastname, user_id, mail, phone, initials FROM users WHERE user_id = ?", [$res_contact_id]); + $myContact = $stmt->fetch(PDO::FETCH_ASSOC); + $datasources['contact'][] = $myContact; -if (isset($datasources['contact'][0]['title']) && $datasources['contact'][0]['title'] == '') - $datasources['contact'][0]['title'] = $datasources['contact'][0]['contact_title']; -if (isset($datasources['contact'][0]['firstname']) && $datasources['contact'][0]['firstname'] == '') - $datasources['contact'][0]['firstname'] = $datasources['contact'][0]['contact_firstname']; -if (isset($datasources['contact'][0]['lastname']) && $datasources['contact'][0]['lastname'] == '') - $datasources['contact'][0]['lastname'] = $datasources['contact'][0]['contact_lastname']; -if (isset($datasources['contact'][0]['function']) && $datasources['contact'][0]['function'] == '') - $datasources['contact'][0]['function'] = $datasources['contact'][0]['contact_function']; -if (isset($datasources['contact'][0]['other_data']) && $datasources['contact'][0]['other_data'] == '') - $datasources['contact'][0]['other_data'] = $datasources['contact'][0]['contact_other_data']; - -// Notes -$datasources['notes'] = array(); -$stmt = $dbDatasource->query("SELECT notes.*, users.firstname, users.lastname FROM notes left join users on notes.user_id = users.user_id WHERE coll_id = ? AND identifier = ?", array($coll_id, $res_id)); - -$countNote = 1; -while ($notes = $stmt->fetchObject()) { - $datasources['notes'][0]['note_text' . $countNote] = $notes->note_text; - $datasources['notes'][0]['date_note' . $countNote] = $notes->date_note; - $countNote++; -} + } else { + $stmt = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? and ca_id = ?" , array($datasources['res_letterbox'][0]['contact_id'],$datasources['res_letterbox'][0]['address_id'])); + $myContact = $stmt->fetch(PDO::FETCH_ASSOC); + $myContact['contact_title'] = $contacts->get_civility_contact($myContact['contact_title']); + $myContact['title'] = $contacts->get_civility_contact($myContact['title']); + $datasources['contact'][] = $myContact; + } + if (isset($datasources['contact'][0]['title']) && $datasources['contact'][0]['title'] == '') + $datasources['contact'][0]['title'] = $datasources['contact'][0]['contact_title']; + if (isset($datasources['contact'][0]['firstname']) && $datasources['contact'][0]['firstname'] == '') + $datasources['contact'][0]['firstname'] = $datasources['contact'][0]['contact_firstname']; + if (isset($datasources['contact'][0]['lastname']) && $datasources['contact'][0]['lastname'] == '') + $datasources['contact'][0]['lastname'] = $datasources['contact'][0]['contact_lastname']; + if (isset($datasources['contact'][0]['function']) && $datasources['contact'][0]['function'] == '') + $datasources['contact'][0]['function'] = $datasources['contact'][0]['contact_function']; + if (isset($datasources['contact'][0]['other_data']) && $datasources['contact'][0]['other_data'] == '') + $datasources['contact'][0]['other_data'] = $datasources['contact'][0]['contact_other_data']; + + // Notes + $datasources['notes'] = array(); + $stmt = $dbDatasource->query("SELECT notes.*, users.firstname, users.lastname FROM notes left join users on notes.user_id = users.user_id WHERE coll_id = ? AND identifier = ?", array($coll_id, $res_id)); + + $countNote = 1; + while ($notes = $stmt->fetchObject()) { + $datasources['notes'][0]['note_text' . $countNote] = $notes->note_text; + $datasources['notes'][0]['date_note' . $countNote] = $notes->date_note; + $countNote++; + } -$stmt = $dbDatasource->query("SELECT * FROM listinstance WHERE res_id = ? AND difflist_type = ? ORDER BY sequence ASC", [$doc['res_id'], 'VISA_CIRCUIT']); -$datasources['visa']= []; -$countVisa = 1; -while ($visa = $stmt->fetchObject()) { - $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$visa->item_id]); - $visaContact = $stmt2->fetchObject(); - $stmt3 = $dbDatasource->query("SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue WHERE ue.user_id = ? AND primary_entity = ? AND ue.entity_id = en.entity_id", [$visa->item_id, 'Y']); - $visaEntity = $stmt3->fetchObject(); - if ($visaContact) { - if ($visa->item_mode == 'sign') { - $datasources['visa'][0]['firstnameSign'] = $visaContact->firstname; - $datasources['visa'][0]['lastnameSign'] = $visaContact->lastname; - $datasources['visa'][0]['entitySign'] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); - } else { - $datasources['visa'][0]['firstname' . $countVisa] = $visaContact->firstname; - $datasources['visa'][0]['lastname' . $countVisa] = $visaContact->lastname; - $datasources['visa'][0]['entity' . $countVisa] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); - $countVisa++; + + $stmt = $dbDatasource->query("SELECT * FROM listinstance WHERE res_id = ? AND difflist_type = ? ORDER BY sequence ASC", [$doc['res_id'], 'VISA_CIRCUIT']); + $datasources['visa']= []; + $countVisa = 1; + while ($visa = $stmt->fetchObject()) { + $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$visa->item_id]); + $visaContact = $stmt2->fetchObject(); + $stmt3 = $dbDatasource->query("SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue WHERE ue.user_id = ? AND primary_entity = ? AND ue.entity_id = en.entity_id", [$visa->item_id, 'Y']); + $visaEntity = $stmt3->fetchObject(); + if ($visaContact) { + if ($visa->item_mode == 'sign') { + $datasources['visa'][0]['firstnameSign'] = $visaContact->firstname; + $datasources['visa'][0]['lastnameSign'] = $visaContact->lastname; + $datasources['visa'][0]['entitySign'] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); + } else { + $datasources['visa'][0]['firstname' . $countVisa] = $visaContact->firstname; + $datasources['visa'][0]['lastname' . $countVisa] = $visaContact->lastname; + $datasources['visa'][0]['entity' . $countVisa] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); + $countVisa++; + } } - } -} + } -//sleep(10); -// Attachments -$datasources['attachments'] = array(); -$myAttachment['chrono'] = $chronoAttachment; + //sleep(10); + // Attachments + $datasources['attachments'] = array(); + $myAttachment['chrono'] = $chronoAttachment; -//thirds -$stmt = $dbDatasource->query("SELECT * FROM contacts_res WHERE res_id = ? AND mode = ? ", [$doc['res_id'], 'third']); -$datasources['thirds']= []; -$countThird = 1; -while ($third = $stmt->fetchObject()) { - if (is_numeric($third->contact_id)) { - $stmt2 = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? ", [$third->contact_id]); - $thirdContact = $stmt2->fetchObject(); - if ($thirdContact) { - $datasources['thirds'][0]['firstname' . $countThird] = ($thirdContact->contact_firstname ?: $thirdContact->firstname); - $datasources['thirds'][0]['lastname' . $countThird] = ($thirdContact->contact_lastname ?: $thirdContact->lastname); - } - } else { - $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$third->contact_id]); - $thirdContact = $stmt2->fetchObject(); - if ($thirdContact) { - $datasources['thirds'][0]['firstname' . $countThird] = $thirdContact->firstname; - $datasources['thirds'][0]['lastname' . $countThird] = $thirdContact->lastname; + //thirds + $stmt = $dbDatasource->query("SELECT * FROM contacts_res WHERE res_id = ? AND mode = ? ", [$doc['res_id'], 'third']); + $datasources['thirds']= []; + $countThird = 1; + while ($third = $stmt->fetchObject()) { + if (is_numeric($third->contact_id)) { + $stmt2 = $dbDatasource->query("SELECT * FROM view_contacts WHERE contact_id = ? ", [$third->contact_id]); + $thirdContact = $stmt2->fetchObject(); + if ($thirdContact) { + $datasources['thirds'][0]['firstname' . $countThird] = ($thirdContact->contact_firstname ?: $thirdContact->firstname); + $datasources['thirds'][0]['lastname' . $countThird] = ($thirdContact->contact_lastname ?: $thirdContact->lastname); + } + } else { + $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$third->contact_id]); + $thirdContact = $stmt2->fetchObject(); + if ($thirdContact) { + $datasources['thirds'][0]['firstname' . $countThird] = $thirdContact->firstname; + $datasources['thirds'][0]['lastname' . $countThird] = $thirdContact->lastname; + } } + $countThird++; } - $countThird++; -} -//visa -$stmt = $dbDatasource->query("SELECT * FROM listinstance WHERE res_id = ? AND difflist_type = ? ORDER BY sequence ASC", [$doc['res_id'], 'VISA_CIRCUIT']); -$datasources['visa']= []; -$countVisa = 1; -while ($visa = $stmt->fetchObject()) { - $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$visa->item_id]); - $visaContact = $stmt2->fetchObject(); - $stmt3 = $dbDatasource->query("SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue WHERE ue.user_id = ? AND primary_entity = ? AND ue.entity_id = en.entity_id", [$visa->item_id, 'Y']); - $visaEntity = $stmt3->fetchObject(); - if ($visaContact) { - if ($visa->item_mode == 'sign') { - $datasources['visa'][0]['firstnameSign'] = $visaContact->firstname; - $datasources['visa'][0]['lastnameSign'] = $visaContact->lastname; - $datasources['visa'][0]['entitySign'] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); - } else { - $datasources['visa'][0]['firstname' . $countVisa] = $visaContact->firstname; - $datasources['visa'][0]['lastname' . $countVisa] = $visaContact->lastname; - $datasources['visa'][0]['entity' . $countVisa] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); - $countVisa++; + //visa + $stmt = $dbDatasource->query("SELECT * FROM listinstance WHERE res_id = ? AND difflist_type = ? ORDER BY sequence ASC", [$doc['res_id'], 'VISA_CIRCUIT']); + $datasources['visa']= []; + $countVisa = 1; + while ($visa = $stmt->fetchObject()) { + $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$visa->item_id]); + $visaContact = $stmt2->fetchObject(); + $stmt3 = $dbDatasource->query("SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue WHERE ue.user_id = ? AND primary_entity = ? AND ue.entity_id = en.entity_id", [$visa->item_id, 'Y']); + $visaEntity = $stmt3->fetchObject(); + if ($visaContact) { + if ($visa->item_mode == 'sign') { + $datasources['visa'][0]['firstnameSign'] = $visaContact->firstname; + $datasources['visa'][0]['lastnameSign'] = $visaContact->lastname; + $datasources['visa'][0]['entitySign'] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); + } else { + $datasources['visa'][0]['firstname' . $countVisa] = $visaContact->firstname; + $datasources['visa'][0]['lastname' . $countVisa] = $visaContact->lastname; + $datasources['visa'][0]['entity' . $countVisa] = str_replace($visaEntity->entity_id . ': ', '', $visaEntity->entity_label); + $countVisa++; + } } - } -} + } -//AVIS CICUIT -$stmt = $dbDatasource->query("SELECT * FROM listinstance WHERE res_id = ? AND difflist_type = ? ORDER BY sequence ASC", [$doc['res_id'], 'AVIS_CIRCUIT']); -$datasources['avis']= []; -$countVisa = 1; -$i = 1; -while ($avis = $stmt->fetchObject()) { - $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$avis->item_id]); - $avisContact = $stmt2->fetchObject(); - $stmt3 = $dbDatasource->query("SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue WHERE ue.user_id = ? AND primary_entity = ? AND ue.entity_id = en.entity_id", [$avis->item_id, 'Y']); - $stmt4 = $dbDatasource->query("SELECT note_text, date_note FROM notes WHERE user_id = ? AND identifier = ? AND note_text LIKE ? ORDER BY date_note ASC", [$avis->item_id, $doc['res_id'], '[Avis n°%']); - - $avisEntity = $stmt3->fetchObject(); - $avisContent = $stmt4->fetchObject(); - if ($avisContact) { - if ($avis->item_mode == 'avis') { - $datasources['avis'][0]['firstname'.$i] = $avisContact->firstname; - $datasources['avis'][0]['lastname'.$i] = $avisContact->lastname; - $datasources['avis'][0]['entity'.$i] = str_replace($avisEntity->entity_id . ': ', '', $avisEntity->entity_label); - if ($avisContent) { - $datasources['avis'][0]['note'.$i] = $avisContent->note_text; - $datasources['avis'][0]['date_note'.$i] = $avisContent->note_text; + //AVIS CICUIT + $stmt = $dbDatasource->query("SELECT * FROM listinstance WHERE res_id = ? AND difflist_type = ? ORDER BY sequence ASC", [$doc['res_id'], 'AVIS_CIRCUIT']); + $datasources['avis']= []; + $countVisa = 1; + $i = 1; + while ($avis = $stmt->fetchObject()) { + $stmt2 = $dbDatasource->query("SELECT * FROM users WHERE user_id = ? ", [$avis->item_id]); + $avisContact = $stmt2->fetchObject(); + $stmt3 = $dbDatasource->query("SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue WHERE ue.user_id = ? AND primary_entity = ? AND ue.entity_id = en.entity_id", [$avis->item_id, 'Y']); + $stmt4 = $dbDatasource->query("SELECT note_text, date_note FROM notes WHERE user_id = ? AND identifier = ? AND note_text LIKE ? ORDER BY date_note ASC", [$avis->item_id, $doc['res_id'], '[Avis n°%']); + + $avisEntity = $stmt3->fetchObject(); + $avisContent = $stmt4->fetchObject(); + if ($avisContact) { + if ($avis->item_mode == 'avis') { + $datasources['avis'][0]['firstname'.$i] = $avisContact->firstname; + $datasources['avis'][0]['lastname'.$i] = $avisContact->lastname; + $datasources['avis'][0]['entity'.$i] = str_replace($avisEntity->entity_id . ': ', '', $avisEntity->entity_label); + if ($avisContent) { + $datasources['avis'][0]['note'.$i] = $avisContent->note_text; + $datasources['avis'][0]['date_note'.$i] = $avisContent->note_text; + } + } - } + $i++; } - $i++; -} -// Transmissions -$datasources['transmissions'] = []; -if (isset($_SESSION['transmissionContacts'])) { - - if (isset($_SESSION['upfileTransmissionNumber']) && $_SESSION['transmissionContacts'][$_SESSION['upfileTransmissionNumber']]) { - $curNb = $_SESSION['upfileTransmissionNumber']; - foreach ($_SESSION['transmissionContacts'][$curNb] as $key => $value) { - if ($key == 'title') - $datasources['transmissions'][0]['currentContact_' . $key] = $contacts->get_civility_contact($value); - else - $datasources['transmissions'][0]['currentContact_' . $key] = $value; + // Transmissions + $datasources['transmissions'] = []; + if (isset($_SESSION['transmissionContacts'])) { + + if (isset($_SESSION['upfileTransmissionNumber']) && $_SESSION['transmissionContacts'][$_SESSION['upfileTransmissionNumber']]) { + $curNb = $_SESSION['upfileTransmissionNumber']; + foreach ($_SESSION['transmissionContacts'][$curNb] as $key => $value) { + if ($key == 'title') + $datasources['transmissions'][0]['currentContact_' . $key] = $contacts->get_civility_contact($value); + else + $datasources['transmissions'][0]['currentContact_' . $key] = $value; + } } - } - for ($nb = 1; $_SESSION['transmissionContacts'][$nb]; $nb++) { - foreach ($_SESSION['transmissionContacts'][$nb] as $key => $value) { - if ($key == 'title') - $datasources['transmissions'][0][$key . $nb] = $contacts->get_civility_contact($value); - else - $datasources['transmissions'][0][$key . $nb] = $value; + for ($nb = 1; $_SESSION['transmissionContacts'][$nb]; $nb++) { + foreach ($_SESSION['transmissionContacts'][$nb] as $key => $value) { + if ($key == 'title') + $datasources['transmissions'][0][$key . $nb] = $contacts->get_civility_contact($value); + else + $datasources['transmissions'][0][$key . $nb] = $value; + } } } } - $img_file_name = $_SESSION['config']['tmppath'].$_SESSION['user']['UserId'].time().rand()."_barcode_attachment.png"; require_once 'apps/maarch_entreprise/tools/pdfb/barcode/pi_barcode.php'; -- GitLab