Ошибка, которую вы описываете, не может быть вызвана данным кодом. Я предполагаю, что вы пытаетесь создать строку "de.admin.canEditMyClass" для использования в качестве переменной {$builtString.foo}
. Вот где возникает ошибка, потому что smarty не преобразует магически вашу строку в ссылку на переменную.
Если вы используете Smarty2:
{assign var=objectName value="myClass"}
{assign var=objectNameUpper value=$objectName|ucfirst}
{assign var=editPerm value="canEdit"|cat:$objectNameUpper}
{$de.admin.$editPerm.foo}
Если вы используете Smarty3:
{$de.admin.{"canEdit"|cat:{"myClass"|ucfirst}}.foo}