Smarty отображает данные, созданные PHP.Если вам нужны гибкие дизайны, все, что строго связано с отображением значений / объекта, должно быть в шаблоне.Поэтому, если вы измените способ отображения вещей, PHP не будет выполнять ненужные вычисления.Итак, подведем итог: перенос связанных с отображением вещей в код PHP - плохая идея.
Хорошая новость заключается в том, что существуют способы не включать необработанный код PHP в шаблоны.Вы можете создавать пользовательские функции, модификаторы или даже элементы управления , специально предназначенные для различных задач.Если это имеет смысл (кажется многоразовым), вы также можете передавать объекты, которые отображают связанные функции.
Обновление : обратите внимание, что этот ответ отличается от других, он не предлагает перемещатьэти функции в PHP.Делайте это только в том случае, если это не имеет никакого отношения к отображению данных и должно выполняться независимо от того, как вы структурируете свой макет и какое представление вы выбираете для отображения ваших данных.