Выполните функцию MD5 в Smarty Template Engine - PullRequest
4 голосов
/ 05 октября 2011

В шаблонной теме Smarty я хотел бы реализовать MD5 в шаблоне, чтобы получить уникальный хеш на основе строки и соли.(Не иметь доступа к PHP, вызывающему шаблон, или это будет тривиально).Smarty, похоже, не имеет встроенной функции MD5.Я думал, что смогу создать хеш на основе длины строки и некоторой другой уникальной информации об учетной записи и с помощью функции Smarty Math , но надеялся, что есть лучший способ сделать это, что яс видомУ кого-нибудь есть мысли или идеи по этому поводу?Спасибо!

Ответы [ 2 ]

7 голосов
/ 05 октября 2011

Если вы просто используете стоковую функцию md5, вы можете использовать ее в качестве модификатора.

{$string|md5}

Из документации:

Все php-функции могут быть неявно использованы в качестве модификаторов, как показано в примере выше. Однако использование php-функций в качестве модификаторов имеет две небольшие ловушки:

  • Во-первых, иногда порядок параметров-функций не является желательным. Форматирование $ foo с помощью {"% 2.f" | sprintf: $ foo} на самом деле работает, но требует более интуитивно понятного, например {$ foo | string_format: "% 2.f"}, предоставляемого дистрибутивом Smarty.

  • Во-вторых - если включен $ security, все php-функции, которые должны использоваться в качестве модификаторов, должны быть объявлены доверенными в элементе MODIFIER_FUNCS массива $ security_settings.

Source v2
Source v3

0 голосов
/ 05 октября 2011

Это может сработать.Не проверял:

{assign var="string_to_hash" value="$string:$salt"}
{$string_to_hash|md5}
...