From b7b0573e61aaa936fd799c0c74556d66f98256a4 Mon Sep 17 00:00:00 2001 From: Repellent Date: Sun, 9 Nov 2025 14:45:12 +0500 Subject: [PATCH] +++ fix for Smarty 5 --- forms/class/forms.php | 22 +++++----- forms/templates/dialog.tpl | 82 +++++++++++++++++++------------------- 2 files changed, 53 insertions(+), 51 deletions(-) diff --git a/forms/class/forms.php b/forms/class/forms.php index cd851a1..737aded 100644 --- a/forms/class/forms.php +++ b/forms/class/forms.php @@ -1660,18 +1660,18 @@ function _cleanvar($var) if (!empty($request_author)) $history['dialog']['request'] = array_merge($history['dialog']['request'], $request_author); - // ответы - foreach ($history['dialog']['response'] as &$response) - { - $response_author = $AVE_DB->Query(" - SELECT user_name, firstname, lastname - FROM " . PREFIX . "_users - WHERE Id = '" . $response['user_id'] . "' - ")->FetchAssocArray(); +// ответы +foreach ($history['dialog']['response'] ?? [] as &$response) +{ + $response_author = $AVE_DB->Query(" + SELECT user_name, firstname, lastname + FROM " . PREFIX . "_users + WHERE Id = '" . $response['user_id'] . "' + ")->FetchAssocArray(); - if (!empty($response_author)) - $response = array_merge($response, $response_author); - } + if (!empty($response_author)) + $response = array_merge($response, $response_author); +} // форма ответа if (empty($history['dialog']['response_draft'])) diff --git a/forms/templates/dialog.tpl b/forms/templates/dialog.tpl index ad8751f..a025853 100644 --- a/forms/templates/dialog.tpl +++ b/forms/templates/dialog.tpl @@ -37,8 +37,8 @@ $fid = parseInt('{$fid}'); $sess = '{$sess}'; $smarty = new Array; -$smarty['start_alert'] = '{$alert.text}'; -$smarty['start_alert_theme'] = '{$alert.theme}'; +$smarty['start_alert'] = '{$alert.text|default:''}'; +$smarty['start_alert_theme'] = '{$alert.theme|default:''}';
@@ -91,38 +91,38 @@ $smarty['start_alert_theme'] = '{$alert.theme}'; {/if} - {if $dialog.response} - -
{if $dialog.response|@count == 1}{#response#}{else}{#responses#}{/if}
- - {foreach from=$dialog.response item=item} - - - {if $item.user_name} - [{$item.user_name}] {if $item.firstname || $item.lastname}{$item.firstname} {$item.lastname}{/if}
- {/if} - {#from#} {$item.from_email} <{$item.from_name|escape}>
- {$item.date|date_format:$TIME_FORMAT|pretty_date} - - - {if $item.format=='text'} -
{$item.body}
- {else} - {$item.body} - {/if} - - - {/foreach} - {else} - - - {if $status!=='replied'}{#set_replied#} - {else} - {#marked_replied#} - {/if} - - +{if !empty($dialog.response)} + +
{if $dialog.response|@count == 1}{#response#}{else}{#responses#}{/if}
+ + {foreach from=$dialog.response item=item} + + + {if $item.user_name|default:false} <-- ИСПРАВЛЕНИЕ: Проверяем user_name безопасно + [{$item.user_name}] {if $item.firstname|default:false || $item.lastname|default:false}{$item.firstname|default:''} {$item.lastname|default:''}{/if}
{/if} + {#from#} {$item.from_email} <{$item.from_name|escape}>
+ {$item.date|date_format:$TIME_FORMAT|pretty_date} + + + {if $item.format=='text'} +
{$item.body}
+ {else} + {$item.body} + {/if} + + + {/foreach} +{else} + + + {if $status!=='replied'}{#set_replied#} + {else} + {#marked_replied#} + {/if} + + +{/if}
@@ -148,16 +148,18 @@ $smarty['start_alert_theme'] = '{$alert.theme}'; {#mfld_subject#}: - + {#format#}: - - - - - - + + + + + + {#body#}