From 7fa3dfb91d662dfd196e1699e29e86aa2f0a85a6 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Thu, 21 Feb 2019 21:29:58 +0100 Subject: [PATCH] FIX #9663 merge data does not work in email templates --- .../class/templates_controler_Abstract.php | 2 +- .../templates/datasources/letterbox_attachment.php | 10 ++++++++-- .../templates/templates_ajax_content_for_mails.php | 14 +++++++------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/modules/templates/class/templates_controler_Abstract.php b/modules/templates/class/templates_controler_Abstract.php index 7d5d9428224..bf27752ec6c 100755 --- a/modules/templates/class/templates_controler_Abstract.php +++ b/modules/templates/class/templates_controler_Abstract.php @@ -898,7 +898,7 @@ abstract class templates_controler_Abstract extends ObjectControler implements O * @param string $outputType : save to 'file', retrieve 'content' * @return merged content or path to file */ - public function merge($templateId, $params = array(), $outputType) + public function merge($templateId, $params = array(), $outputType, $context = '') { include_once 'core/class/class_functions.php'; include_once 'modules/templates/templates_tables_definition.php'; diff --git a/modules/templates/datasources/letterbox_attachment.php b/modules/templates/datasources/letterbox_attachment.php index 9f8119fd2de..1036d7410c8 100755 --- a/modules/templates/datasources/letterbox_attachment.php +++ b/modules/templates/datasources/letterbox_attachment.php @@ -84,7 +84,7 @@ if (!empty($res_id)) { $myContact['title'] = $contacts->get_civility_contact($myContact['title']); $datasources['contact'][] = $myContact; - // single Contact + // single Contact } elseif (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); @@ -96,6 +96,13 @@ if (!empty($res_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; + } elseif (!empty($context)) { + $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['postal_address'] = \Contact\controllers\ContactController::formatContactAddressAfnor($myContact); + $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'] == '') { @@ -236,7 +243,6 @@ if (!empty($res_id)) { $copiesContact = false; $copiesEntity = false; if ($copies->item_type == 'user_id') { - $stmt2 = $dbDatasource->query('SELECT * FROM users WHERE user_id = ?', [$copies->item_id]); $copiesContact = $stmt2->fetchObject(); $stmt3 = $dbDatasource->query('SELECT en.entity_id, en.entity_label FROM entities en, users_entities ue ' diff --git a/modules/templates/templates_ajax_content_for_mails.php b/modules/templates/templates_ajax_content_for_mails.php index bed42750e24..3b8de783bae 100755 --- a/modules/templates/templates_ajax_content_for_mails.php +++ b/modules/templates/templates_ajax_content_for_mails.php @@ -33,23 +33,23 @@ $sec = new security(); $res_view = $sec->retrieve_view_from_coll_id('letterbox_coll'); $params = array( - 'res_id' => $_GET['id'], - 'coll_id'=> "letterbox_coll", - 'res_view'=> $res_view - ); + 'res_id' => $_GET['id'], + 'coll_id'=> "letterbox_coll", + 'res_view'=> $res_view + ); $template = $templateController->get($_REQUEST['templateId']); -$template->template_content = $templateController->merge($_REQUEST['templateId'], $params, 'content'); +$template->template_content = $templateController->merge($_REQUEST['templateId'], $params, 'content', 'email'); $template->template_content = str_replace("\r\n", "\n", $template->template_content); $template->template_content = str_replace("\r", "\n", $template->template_content); $template->template_content = str_replace("\n", "\\n ", $template->template_content); $template->template_content = str_replace("''", "'", $template->template_content); -if($_REQUEST['mode'] == 'raw'){ +if ($_REQUEST['mode'] == 'raw') { $template->template_content = str_replace("<br>", "\\n", $template->template_content); $template->template_content = str_replace("<br />", "\\n", $template->template_content); $template->template_content = strip_tags($template->template_content); } echo "{status : 0, content : '" . addslashes($template->template_content) . "'}"; -exit(); \ No newline at end of file +exit(); -- GitLab