Merge branch 'master' into AnrDaemon-fix-issue-549-v4

This commit is contained in:
Simon Wisselink
2022-07-19 22:51:27 +02:00
4 changed files with 42 additions and 34 deletions

View File

@@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- Fixed problems with smarty_mb_str_replace [#549](https://github.com/smarty-php/smarty/issues/549) - Fixed problems with smarty_mb_str_replace [#549](https://github.com/smarty-php/smarty/issues/549)
### Changed
- Updated HTML of the debug template [#599](https://github.com/smarty-php/smarty/pull/599)
## [4.1.1] - 2022-05-17 ## [4.1.1] - 2022-05-17
### Security ### Security

View File

@@ -1,9 +1,9 @@
{capture name='_smarty_debug' assign=debug_output} {capture name='_smarty_debug' assign=debug_output}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <html lang="en">
<head> <head>
<title>Smarty Debug Console</title> <title>Smarty Debug Console</title>
<style type="text/css"> <style>
{literal} {literal}
body, h1, h2, h3, td, th, p { body, h1, h2, h3, td, th, p {
font-family: sans-serif; font-family: sans-serif;
@@ -31,6 +31,7 @@
padding: 2px; padding: 2px;
border-top: 1px solid black; border-top: 1px solid black;
} }
h3 { h3 {
text-align: left; text-align: left;
font-weight: bold; font-weight: bold;
@@ -67,11 +68,11 @@
color: green; color: green;
} }
.odd { tr:nth-child(odd) {
background-color: #eeeeee; background-color: #eeeeee;
} }
.even { tr:nth-child(even) {
background-color: #fafafa; background-color: #fafafa;
} }
@@ -84,13 +85,16 @@
color: black; color: black;
font-weight: bold; font-weight: bold;
} }
#blue h3 { #blue h3 {
color: blue; color: blue;
} }
#normal div { #normal div {
color: black; color: black;
font-weight: normal; font-weight: normal;
} }
#table_assigned_vars th { #table_assigned_vars th {
color: blue; color: blue;
font-weight: bold; font-weight: bold;
@@ -99,7 +103,6 @@
#table_config_vars th { #table_config_vars th {
color: maroon; color: maroon;
} }
{/literal} {/literal}
</style> </style>
</head> </head>
@@ -112,11 +115,11 @@
<h2>included templates &amp; config files (load time in seconds)</h2> <h2>included templates &amp; config files (load time in seconds)</h2>
<div> <div>
{foreach $template_data as $template} {foreach $template_data as $template}
<font color=brown>{$template.name}</font> <span style="color: brown;">{$template.name}</span>
<br />&nbsp;&nbsp;<span class="exectime"> <br>&nbsp;&nbsp;<span class="exectime">
(compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"}) (compile {$template['compile_time']|string_format:"%.5f"}) (render {$template['render_time']|string_format:"%.5f"}) (cache {$template['cache_time']|string_format:"%.5f"})
</span> </span>
<br /> <br>
{/foreach} {/foreach}
</div> </div>
{/if} {/if}
@@ -125,13 +128,22 @@
<table id="table_assigned_vars"> <table id="table_assigned_vars">
{foreach $assigned_vars as $vars} {foreach $assigned_vars as $vars}
<tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}"> <tr>
<td><h3><font color=blue>${$vars@key}</font></h3> <td>
{if isset($vars['nocache'])}<b>Nocache</b><br />{/if} <h3 style="color: blue;">${$vars@key}</h3>
{if isset($vars['scope'])}<b>Origin:</b> {$vars['scope']|debug_print_var nofilter}{/if} {if isset($vars['nocache'])}<strong>Nocache</strong><br>{/if}
{if isset($vars['scope'])}<strong>Origin:</strong> {$vars['scope']|debug_print_var nofilter}{/if}
</td>
<td>
<h3>Value</h3>
{$vars['value']|debug_print_var:10:80 nofilter}
</td>
<td>
{if isset($vars['attributes'])}
<h3>Attributes</h3>
{$vars['attributes']|debug_print_var nofilter}
{/if}
</td> </td>
<td><h3>Value</h3>{$vars['value']|debug_print_var:10:80 nofilter}</td>
<td>{if isset($vars['attributes'])}<h3>Attributes</h3>{$vars['attributes']|debug_print_var nofilter} {/if}</td>
{/foreach} {/foreach}
</table> </table>
@@ -139,11 +151,14 @@
<table id="table_config_vars"> <table id="table_config_vars">
{foreach $config_vars as $vars} {foreach $config_vars as $vars}
<tr class="{if $vars@iteration % 2 eq 0}odd{else}even{/if}"> <tr>
<td><h3><font color=blue>#{$vars@key}#</font></h3> <td>
{if isset($vars['scope'])}<b>Origin:</b> {$vars['scope']|debug_print_var nofilter}{/if} <h3 style="color: blue;">#{$vars@key}#</h3>
{if isset($vars['scope'])}<strong>Origin:</strong> {$vars['scope']|debug_print_var nofilter}{/if}
</td>
<td>
{$vars['value']|debug_print_var:10:80 nofilter}
</td> </td>
<td>{$vars['value']|debug_print_var:10:80 nofilter}</td>
</tr> </tr>
{/foreach} {/foreach}

View File

@@ -29,12 +29,7 @@ class Smarty_Internal_Runtime_WriteFile
{ {
$_error_reporting = error_reporting(); $_error_reporting = error_reporting();
error_reporting($_error_reporting & ~E_NOTICE & ~E_WARNING); error_reporting($_error_reporting & ~E_NOTICE & ~E_WARNING);
$_file_perms = property_exists($smarty, '_file_perms') ? $smarty->_file_perms : 0644; $old_umask = umask(0);
$_dir_perms =
property_exists($smarty, '_dir_perms') ? (isset($smarty->_dir_perms) ? $smarty->_dir_perms : 0777) : 0771;
if ($_file_perms !== null) {
$old_umask = umask(0);
}
$_dirpath = dirname($_filepath); $_dirpath = dirname($_filepath);
// if subdirs, create dir structure // if subdirs, create dir structure
if ($_dirpath !== '.') { if ($_dirpath !== '.') {
@@ -42,7 +37,7 @@ class Smarty_Internal_Runtime_WriteFile
// loop if concurrency problem occurs // loop if concurrency problem occurs
// see https://bugs.php.net/bug.php?id=35326 // see https://bugs.php.net/bug.php?id=35326
while (!is_dir($_dirpath)) { while (!is_dir($_dirpath)) {
if (@mkdir($_dirpath, $_dir_perms, true)) { if (@mkdir($_dirpath, 0771, true)) {
break; break;
} }
clearstatcache(); clearstatcache();
@@ -89,11 +84,9 @@ class Smarty_Internal_Runtime_WriteFile
error_reporting($_error_reporting); error_reporting($_error_reporting);
throw new SmartyException("unable to write file {$_filepath}"); throw new SmartyException("unable to write file {$_filepath}");
} }
if ($_file_perms !== null) { // set file permissions
// set file permissions chmod($_filepath, 0644);
chmod($_filepath, $_file_perms); umask($old_umask);
umask($old_umask);
}
error_reporting($_error_reporting); error_reporting($_error_reporting);
return true; return true;
} }

View File

@@ -422,9 +422,6 @@ abstract class Smarty_Internal_TemplateCompilerBase
try { try {
// save template object in compiler class // save template object in compiler class
$this->template = $template; $this->template = $template;
if (property_exists($this->template->smarty, 'plugin_search_order')) {
$this->plugin_search_order = $this->template->smarty->plugin_search_order;
}
if ($this->smarty->debugging) { if ($this->smarty->debugging) {
if (!isset($this->smarty->_debug)) { if (!isset($this->smarty->_debug)) {
$this->smarty->_debug = new Smarty_Internal_Debug(); $this->smarty->_debug = new Smarty_Internal_Debug();