Compare commits

..

7 Commits

Author SHA1 Message Date
Simon Wisselink 4bb044ad73 Resolve comment by extracting method 2022-09-22 23:49:12 +02:00
Simon Wisselink d5178e3cb4 Limit max length to 127 and add changelog 2022-09-22 23:44:35 +02:00
Simon Wisselink 801fab18d1 Merge branch 'master' into bugfix/underscore_in_template_name 2022-09-22 23:40:58 +02:00
Simon Wisselink 293fb0573d Merge branch 'master' into bugfix/underscore_in_template_name 2022-09-22 23:40:38 +02:00
Alec Smecher 0fb29024e7 #155 Adapt Smarty upper/lower functions to be codesafe (e.g. for Turkish locale) (#586)
* Implemented locale safe strotoupper, strolower and ucfirst functions for translating user string to filenames etc.

Fixes #155

Co-Authored-By: Alexkurd <7689609+Alexkurd@users.noreply.github.com>
2022-09-22 23:32:55 +02:00
Scott Newton 1961ba70dd Increased the maximum template name length to 255 characters when using a custom resource 2020-04-13 10:07:16 -04:00
Scott Newton 951c7a4d86 Corrected bug #578, where underscore characters were being stripped from template names when using a custom resource 2020-04-13 10:06:32 -04:00
2 changed files with 14 additions and 2 deletions
+1
View File
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed PHP8.1 deprecation notices for strftime [#672](https://github.com/smarty-php/smarty/issues/672)
- Fixed PHP8.1 deprecation errors passing null to parameter in trim [#807](https://github.com/smarty-php/smarty/pull/807)
- Adapt Smarty upper/lower functions to be codesafe (e.g. for Turkish locale) [#586](https://github.com/smarty-php/smarty/pull/586)
- Bug fix for underscore and limited length in template name in custom resources [#581](https://github.com/smarty-php/smarty/pull/581)
## [4.2.1] - 2022-09-14
+13 -2
View File
@@ -47,7 +47,7 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource
*/
public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
{
$source->filepath = $source->type . ':' . substr(preg_replace('/[^A-Za-z0-9.]/', '', $source->name), 0, 25);
$source->filepath = $source->type . ':' . $this->generateSafeName($source->name);
$source->uid = sha1($source->type . ':' . $source->name);
$mtime = $this->fetchTimestamp($source->name);
if ($mtime !== null) {
@@ -88,6 +88,17 @@ abstract class Smarty_Resource_Custom extends Smarty_Resource
*/
public function getBasename(Smarty_Template_Source $source)
{
return basename(substr(preg_replace('/[^A-Za-z0-9.]/', '', $source->name), 0, 25));
return basename($this->generateSafeName($source->name));
}
/**
* Removes special characters from $name and limits its length to 127 characters.
*
* @param $name
*
* @return string
*/
private function generateSafeName($name): string {
return substr(preg_replace('/[^A-Za-z0-9._]/', '', (string) $name), 0, 127);
}
}