From d5099d1abb1e2955dbe9c9142d1c77442b572c2b Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Mon, 22 May 2017 12:15:57 +0200 Subject: [PATCH] FEAT #5527 add user complementary info --- .../class/templates_controler_Abstract.php | 182 +++++++----------- .../datasources/letterbox_attachment.php | 21 +- 2 files changed, 91 insertions(+), 112 deletions(-) diff --git a/modules/templates/class/templates_controler_Abstract.php b/modules/templates/class/templates_controler_Abstract.php index b8f120abc12..e642873647d 100755 --- a/modules/templates/class/templates_controler_Abstract.php +++ b/modules/templates/class/templates_controler_Abstract.php @@ -1,33 +1,11 @@ <?php - -/* -* Copyright 2008-2016 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 controler of template object -* (create, save, modify, etc...) -* -* -* @file -* @author Laurent Giovannoni -* @date $date$ -* @version $Revision$ +* Copyright Maarch since 2008 under licence GPLv3. +* See LICENCE.txt file at the root folder for more details. +* This file is part of Maarch software. + +* @brief templates_controler_Abstract +* @author dev <dev@maarch.org> * @ingroup templates */ @@ -36,11 +14,11 @@ $_ENV['DEBUG'] = false; // Loads the required class try { - require_once ('modules/templates/class/templates.php'); - require_once ('modules/templates/templates_tables_definition.php'); - require_once ('core/class/ObjectControlerAbstract.php'); - require_once ('core/class/ObjectControlerIF.php'); - require_once ('core/class/SecurityControler.php'); + include_once 'modules/templates/class/templates.php'; + include_once 'modules/templates/templates_tables_definition.php'; + include_once 'core/class/ObjectControlerAbstract.php'; + include_once 'core/class/ObjectControlerIF.php'; + include_once 'core/class/SecurityControler.php'; } catch (Exception $e) { functions::xecho($e->getMessage()) . ' // '; } @@ -171,21 +149,12 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $sec = new SecurityControler(); $error = ''; - - // $template->template_label = $f->protect_string_db( - // $f->wash($template->template_label, 'no', _TEMPLATE_LABEL.' ', 'yes', 0, 255) - // ); - // $template->template_comment = $f->protect_string_db( - // $f->wash($template->template_comment, 'no', _TEMPLATE_COMMENT.' ', 'yes', 0, 255) - // ); - - $template->template_label = $f->wash($template->template_label, 'no', _TEMPLATE_LABEL.' ', 'yes', 0, 255); $template->template_comment = $f->wash($template->template_comment, 'no', _TEMPLATE_COMMENT.' ', 'yes', 0, 255); - $template->template_content = str_replace(';', '###', $template->template_content); - $template->template_content = str_replace('--', '___', $template->template_content); + $template->template_content = str_replace(';', '###', $template->template_content); + $template->template_content = str_replace('--', '___', $template->template_content); $allowedTags = '<html><head><body><title>'; //Structure $allowedTags .= '<h1><h2><h3><h4><h5><h6><b><i><tt><u><strike><blockquote><pre><blink><font><big><small><sup><sub><strong><em>'; // Text formatting $allowedTags .='<p><br><hr><center><div><span>'; // Text position @@ -220,10 +189,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O ); } else { if ($template->template_type == 'OFFICE') { - if ( - $mode == 'add' - && !$_SESSION['m_admin']['templates']['applet'] - ) { + if ($mode == 'add' && !$_SESSION['m_admin']['templates']['applet']) { $return = array( 'status' => 'ko', 'value' => $template, @@ -231,8 +197,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O ); return $return; } - if ( - ($mode == 'up' || $mode == 'add') + if (($mode == 'up' || $mode == 'add') && $_SESSION['m_admin']['templates']['applet'] ) { $storeInfos = array(); @@ -389,7 +354,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O 'value' => $template->template_id, ); if ($_SESSION['history']['templatedel'] == 'true') { - require_once('core/class/class_history.php'); + include_once 'core/class/class_history.php'; $history = new history(); $history->add( _TEMPLATES_TABLE_NAME, $template->template_id, 'DEL', 'templatedel', @@ -452,7 +417,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O */ public function templateExists($template_id) { - if (!isset ($template_id) || empty ($template_id)) { + if (!isset($template_id) || empty($template_id)) { return false; } $db = new Database(); @@ -571,9 +536,10 @@ abstract class templates_controler_Abstract extends ObjectControler implements O public function getAllTemplatesForProcess($entityId) { $db = new Database(); - $stmt = $db->query('select * from ' . _TEMPLATES_TABLE_NAME . ' t, ' . _TEMPLATES_ASSOCIATION_TABLE_NAME . ' ta ' - . 'where t.template_id = ta.template_id and ta.what = ? and ta.value_field = ? ORDER BY t.template_label', - ['destination', $entityId] + $stmt = $db->query( + 'select * from ' . _TEMPLATES_TABLE_NAME . ' t, ' . _TEMPLATES_ASSOCIATION_TABLE_NAME . ' ta ' + . 'where t.template_id = ta.template_id and ta.what = ? and ta.value_field = ? ORDER BY t.template_label', + ['destination', $entityId] ); $templates = []; while ($res = $stmt->fetchObject()) { @@ -592,17 +558,17 @@ abstract class templates_controler_Abstract extends ObjectControler implements O public function updateTemplateEntityAssociation($templateId) { - $db = new Database(); - $db->query("delete from " . _TEMPLATES_ASSOCIATION_TABLE_NAME + $db->query( + "delete from " . _TEMPLATES_ASSOCIATION_TABLE_NAME . " where template_id = ? and what = 'destination' ", array($templateId) ); for ($i=0;$i<count($_SESSION['m_admin']['templatesEntitiesSelected']);$i++) { - $db->query("insert into " . _TEMPLATES_ASSOCIATION_TABLE_NAME + $db->query( + "insert into " . _TEMPLATES_ASSOCIATION_TABLE_NAME . " (template_id, what, value_field, maarch_module) VALUES (?, 'destination', ? , 'entities')", array($templateId, $_SESSION['m_admin']['templatesEntitiesSelected'][$i]) - ); } } @@ -615,7 +581,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O return $items; } if (empty($field)) { - $stmt = $db->query("select distinct what from " + $stmt = $db->query( + "select distinct what from " . _TEMPLATES_ASSOCIATION_TABLE_NAME . " where template_id = ? ", array($templateId) ); @@ -623,10 +590,11 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $items[$res->what] = array(); } foreach (array_keys($items) as $key) { - $stmt = $db->query("select value_field from " + $stmt = $db->query( + "select value_field from " . _TEMPLATES_ASSOCIATION_TABLE_NAME . " where template_id = ? and what = ? ", array($templateId, $key) - ); + ); $items[$key] = array(); while ($res = $stmt->fetchObject()) { array_push($items[$key], $res->value_field); @@ -634,7 +602,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O } } else { $items[$field] = array(); - $stmt = $db->query("select value_field from " + $stmt = $db->query( + "select value_field from " . _TEMPLATES_ASSOCIATION_TABLE_NAME . " where template_id = ? and what = ? ", array($templateId, $field) ); @@ -676,9 +645,9 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $datasources = array(); //Browse all files of the style template dir $xmlcontent = simplexml_load_file($configXml); - foreach($xmlcontent->datasource as $datasource) { + foreach ($xmlcontent->datasource as $datasource) { //<id> <label> <script> - if(@constant((string) $datasource->label)) { + if (@constant((string) $datasource->label)) { $label = constant((string)$datasource->label); } else { $label = (string) $datasource->label; @@ -742,17 +711,19 @@ abstract class templates_controler_Abstract extends ObjectControler implements O } //returns file ext - function extractFileExt($sFullPath) { + function extractFileExt($sFullPath) + { $sName = $sFullPath; if (strpos($sName, '.')==0) { $ExtractFileExt = ''; } else { - $ExtractFileExt = explode ('.', $sName); + $ExtractFileExt = explode('.', $sName); } return end($ExtractFileExt); } - function storeTemplateFile() { + function storeTemplateFile() + { if (!$_SESSION['m_admin']['templates']['applet']) { $tmpFileName = 'cm_tmp_file_' . $_SESSION['user']['UserId'] . '_' . rand() . '.' @@ -762,11 +733,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O ) ); $tmpFilePath = $_SESSION['config']['tmppath'] . $tmpFileName; - if (!copy( - $_SESSION['m_admin']['templates']['current_style'], - $tmpFilePath - ) - ) { + if (!copy($_SESSION['m_admin']['templates']['current_style'], $tmpFilePath)) { + $_SESSION['error'] = _PB_TO_COPY_STYLE_ON_TMP . ' ' . $tmpFilePath; return false; } else { @@ -800,12 +768,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O 'templates', $fileTemplateInfos ); - if (!file_exists( - $storeInfos['path_template'] - . str_replace("#", DIRECTORY_SEPARATOR, $storeInfos['destination_dir']) - . $storeInfos['file_destination_name'] - ) - ) { + if (!file_exists($storeInfos['path_template'] . str_replace("#", DIRECTORY_SEPARATOR, $storeInfos['destination_dir']) . $storeInfos['file_destination_name'])) { + $_SESSION['error'] = $storeInfos['error']; return false; } @@ -831,7 +795,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $fileNameOnTmp = $_SESSION['config']['tmppath'] . 'tmp_template_' . $_SESSION['user']['UserId'] . '_' . rand() . '.' . $fileExtension; $handle = fopen($fileNameOnTmp, 'w'); - if (fwrite($handle, $templateObj->template_content) === FALSE) { + if (fwrite($handle, $templateObj->template_content) === false) { return false; } fclose($handle); @@ -841,7 +805,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $fileNameOnTmp = $_SESSION['config']['tmppath'] . 'tmp_template_' . $_SESSION['user']['UserId'] . '_' . rand() . '.' . $fileExtension; $handle = fopen($fileNameOnTmp, 'w'); - if (fwrite($handle, $templateObj->template_content) === FALSE) { + if (fwrite($handle, $templateObj->template_content) === false) { return false; } fclose($handle); @@ -853,7 +817,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $stmt = $dbTemplate->query($query); $resDs = $stmt->fetchObject(); $pathToDs = $resDs->path_template; - $pathToTemplateOnDs = $pathToDs . str_replace( + $pathToTemplateOnDs = $pathToDs + . str_replace( "#", DIRECTORY_SEPARATOR, $templateObj->template_path @@ -870,13 +835,14 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $xmlfile = 'modules/templates/xml/datasources.xml'; $xmlfileCustom = $_SESSION['config']['corepath'] . 'custom/' . $_SESSION['custom_override_id'] . '/' . $xmlfile; - if (file_exists($xmlfileCustom)) { + + if (file_exists($xmlfileCustom)) { $xmlfile = $xmlfileCustom; } $fulllist = array(); $fulllist = $this->getTemplatesDatasources($xmlfile); foreach ($fulllist as $ds) { - if ($datasourceId == $ds['id']){ + if ($datasourceId == $ds['id']) { return (object)$ds; } } @@ -884,7 +850,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O return null; } - protected function getBaseDatasources() { + protected function getBaseDatasources() + { $datasources = array(); // Date and time @@ -893,32 +860,32 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $datasources['datetime'][0]['timestamp'] = time(); // Session - if(isset($_SESSION)) { + if (isset($_SESSION)) { // Config (!!! database) - if(count($_SESSION['config']) > 0) { + if (count($_SESSION['config']) > 0) { $datasources['config'][0] = $_SESSION['config']; $datasources['config'][0]['linktoapp'] = $_SESSION['config']['businessappurl']."index.php"; } // Current basket - if(count($_SESSION['current_basket']) > 0) { - foreach($_SESSION['current_basket'] as $name => $value) { - if(!is_array($value)) { + if (count($_SESSION['current_basket']) > 0) { + foreach ($_SESSION['current_basket'] as $name => $value) { + if (!is_array($value)) { $datasources['basket'][0][$name] = $value; } } } // User - if(count($_SESSION['user']) > 0) { - foreach($_SESSION['user'] as $name => $value) { - if(!is_array($value)) { + if (count($_SESSION['user']) > 0) { + foreach ($_SESSION['user'] as $name => $value) { + if (!is_array($value)) { $datasources['user'][0][strtolower($name)] = $value; } } - if(count($_SESSION['user']['entities']) > 0) { - foreach($_SESSION['user']['entities'] as $entity) { - if($entity['ENTITY_ID'] === $_SESSION['user']['primaryentity']['id']) { + if (count($_SESSION['user']['entities']) > 0) { + foreach ($_SESSION['user']['entities'] as $entity) { + if ($entity['ENTITY_ID'] === $_SESSION['user']['primaryentity']['id']) { $datasources['user'][0]['entity'] = $_SESSION['user']['entities'][0]['ENTITY_LABEL']; $datasources['user'][0]['role'] = $_SESSION['user']['entities'][0]['ROLE']; } @@ -927,7 +894,6 @@ abstract class templates_controler_Abstract extends ObjectControler implements O } } - return $datasources; } @@ -941,8 +907,8 @@ abstract class templates_controler_Abstract extends ObjectControler implements O */ public function merge($templateId, $params=array(), $outputType) { - require_once 'core/class/class_functions.php'; - require_once 'modules/templates/templates_tables_definition.php'; + include_once 'core/class/class_functions.php'; + include_once 'modules/templates/templates_tables_definition.php'; include_once 'apps/maarch_entreprise/tools/tbs/tbs_class_php5.php'; include_once 'apps/maarch_entreprise/tools/tbs/tbs_plugin_opentbs.php'; @@ -953,19 +919,19 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $datasources = $this->getBaseDatasources(); // Make params array for datasrouce script - foreach($params as $paramName => $paramValue) { + foreach ($params as $paramName => $paramValue) { $$paramName = $paramValue; } //Retrieve script for datasources $datasourceObj = $this->getDatasourceScript($templateObj->template_datasource); - if($datasourceObj->script) { - require $datasourceObj->script; + if ($datasourceObj->script) { + include $datasourceObj->script; } // Merge with TBS $TBS = new clsTinyButStrong; $TBS->NoErr = true; - if($templateObj->template_type == 'OFFICE') { + if ($templateObj->template_type == 'OFFICE') { $TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); $TBS->LoadTemplate($pathToTemplate, OPENTBS_ALREADY_UTF8); } else { @@ -974,7 +940,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O foreach ($datasources as $name => $datasource) { // Scalar values or arrays ? - if(!is_array($datasource)) { + if (!is_array($datasource)) { $TBS->MergeField($name, $datasource); } else { $TBS->MergeBlock($name, 'array', $datasource); @@ -989,7 +955,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O foreach ($datasources as $name => $datasource) { // Scalar values or arrays ? - if(!is_array($datasource)) { + if (!is_array($datasource)) { $TBS->MergeField($name, $datasource); } else { $TBS->MergeBlock($name, 'array', $datasource); @@ -1000,7 +966,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $TBS->LoadTemplate('#word/footer1.xml'); foreach ($datasources as $name => $datasource) { // Scalar values or arrays ? - if(!is_array($datasource)) { + if (!is_array($datasource)) { $TBS->MergeField($name, $datasource); } else { $TBS->MergeBlock($name, 'array', $datasource); @@ -1013,7 +979,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O switch($outputType) { case 'content': - if($templateObj->template_type == 'OFFICE') { + if ($templateObj->template_type == 'OFFICE') { $TBS->Show(OPENTBS_STRING); } else { $TBS->Show(TBS_NOTHING); @@ -1027,7 +993,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O $fileNameOnTmp = 'tmp_file_' . $_SESSION['user']['UserId'] . '_' . rand() . '.' . $fileExtension; $myFile = $_SESSION['config']['tmppath'] . $fileNameOnTmp; - if($templateObj->template_type == 'OFFICE') { + if ($templateObj->template_type == 'OFFICE') { $TBS->Show(OPENTBS_FILE, $myFile); } else { $TBS->Show(TBS_NOTHING); diff --git a/modules/templates/datasources/letterbox_attachment.php b/modules/templates/datasources/letterbox_attachment.php index a483d9ed539..56b1e40ef95 100644 --- a/modules/templates/datasources/letterbox_attachment.php +++ b/modules/templates/datasources/letterbox_attachment.php @@ -31,6 +31,8 @@ $doc['category_id'] = html_entity_decode($_SESSION['coll_categories']['letterbox $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); @@ -40,8 +42,19 @@ if (!empty($initiator)) { $doc['initiator_'.$column] = $value; } } + $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); + +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)); @@ -196,7 +209,7 @@ while ($avis = $stmt->fetchObject()) { $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){ + if ($avisContent) { $datasources['avis'][0]['note'.$i] = $avisContent->note_text; $datasources['avis'][0]['date_note'.$i] = $avisContent->note_text; } @@ -212,7 +225,7 @@ if (isset($_SESSION['transmissionContacts'])) { if (isset($_SESSION['upfileTransmissionNumber']) && $_SESSION['transmissionContacts'][$_SESSION['upfileTransmissionNumber']]) { $curNb = $_SESSION['upfileTransmissionNumber']; - foreach($_SESSION['transmissionContacts'][$curNb] as $key => $value) { + foreach ($_SESSION['transmissionContacts'][$curNb] as $key => $value) { if ($key == 'title') $datasources['transmissions'][0]['currentContact_' . $key] = $contacts->get_civility_contact($value); else @@ -221,7 +234,7 @@ if (isset($_SESSION['transmissionContacts'])) { } for ($nb = 1; $_SESSION['transmissionContacts'][$nb]; $nb++) { - foreach($_SESSION['transmissionContacts'][$nb] as $key => $value) { + foreach ($_SESSION['transmissionContacts'][$nb] as $key => $value) { if ($key == 'title') $datasources['transmissions'][0][$key . $nb] = $contacts->get_civility_contact($value); else @@ -232,7 +245,7 @@ if (isset($_SESSION['transmissionContacts'])) { $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'); +require_once 'apps/maarch_entreprise/tools/pdfb/barcode/pi_barcode.php'; $objCode = new pi_barcode(); $objCode->setCode($chronoAttachment); -- GitLab