есть ли в Smarty способ получить расширение файла для строки.Я искал эквивалент взрыва, хотя не могу ничего найти.
Я хочу отобразить другой значок в зависимости от типа файла, например.док, докс, pdf
Поскольку вы можете использовать функции php в качестве модификаторов, вы можете использовать функцию pathinfo()
pathinfo()
Все функции php могут использоваться неявно, как модификаторы, как показано впример выше.Однако использование php-функций в качестве модификаторов имеет две небольшие ловушки: Во-первых, иногда порядок параметров-функций не желателен.Форматирование $ foo с помощью {"% 2.f" | sprintf: $ foo} на самом деле работает, но требует более интуитивно понятного, например {$ foo | string_format: "% 2.f"}, предоставляемого дистрибутивом Smarty. Во-вторых - если включена защита, все php-функции, которые должны использоваться в качестве модификаторов, должны быть объявлены доверенными в свойстве $ modifiers политики securty.Подробнее смотрите в разделе «Безопасность». Источник
Все функции php могут использоваться неявно, как модификаторы, как показано впример выше.Однако использование php-функций в качестве модификаторов имеет две небольшие ловушки:
Во-первых, иногда порядок параметров-функций не желателен.Форматирование $ foo с помощью {"% 2.f" | sprintf: $ foo} на самом деле работает, но требует более интуитивно понятного, например {$ foo | string_format: "% 2.f"}, предоставляемого дистрибутивом Smarty.
Во-вторых - если включена защита, все php-функции, которые должны использоваться в качестве модификаторов, должны быть объявлены доверенными в свойстве $ modifiers политики securty.Подробнее смотрите в разделе «Безопасность». Источник
<?php $smarty->assign('filename', 'foo\bar.txt'); ?> {* template *} {$filename|pathinfo:$smarty.const.PATHINFO_EXTENSION} {* outputs 'txt' *}
Вы можете использовать regex_replace для удаления части файла, например, как это:
{$ файл | regex_replace: "/.*./": ""}
Что удаляет все от начала до последней точки.
посмотрите на http://www.smarty.net/docs/en/language.modifier.regex.replace.tpl для получения дополнительной информации.