问题标签 [smarty3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
include - Smarty3 块附加在包含的模板中
我有一些用 Smarty 3 编写的模板:
- 布局页面
- 索引页
- 包含页面
布局.tpl:
索引.tpl:
包括.tpl
但我得到了一个编译器异常:
致命错误:未捕获的异常 'SmartyCompilerException' 带有消息 'Syntax Error in template include.tpl {block "js" prepend} 太多速记属性
块追加是否在包含的模板中不可用,即使它包含在子模板中?
我认为如果我可以像这样使用块追加会非常有帮助,或者可能有其他方法可以做到这一点?谢谢!
smarty - smarty v3,从 smarty 中获取价值
如何从 smarty v3 获取变量?在 Smarty v2 中,我使用这个函数:get_template_vars,但在 v3 中这不起作用。
php - Smarty 获取文件扩展名
Smarty 有没有办法获取字符串的文件扩展名。我一直在寻找爆炸等价物,但似乎找不到任何东西。
我想根据文件类型显示不同的图标,例如。文档,docx,pdf
php - Smarty 是否有 i18n/翻译解决方案?
我正在开发一个需要国际化 (i18n) 支持的基于 PHP 的应用程序。
我使用 Smarty 3 作为模板解决方案(并使用 TinyMVC 作为框架),虽然我之前一直将它用于小型项目(早在 Smarty 2.x 时代),但我并不知道任何简单的- 使用 i18n 插件。Smarty 3.x 是否有这样的插件/扩展可以为我完成这项工作?我不介意后端是否有点难以设置,这很好,我只需要一种在模板中实现它的好方法。
我需要将这个应用程序翻译成多种语言,所以我需要找到一种方法让 Smarty 支持它。有吗?谢谢。
php - Smarty allow_php_tag 报告“未定义的属性:Smarty::$allow_php_tag”
所以我有一个使用旧版本 smarty 的旧网站,因为今天我想升级到最新版本,它给我一个错误:
即使我把 Smarty 3.0.8 我得到同样的错误......因为如果网站充满{php}
标签,删除不是一个选项。我能做些什么?
好的,按照@Pekka 的说明,我发现了 Smarty Security Next 问题:
喊道:
现在出了什么问题...$my_security_policy->php_functions = array();
允许所有php函数..
php - 将 smarty 模板返回到 html 文本框
我想使用 smarty 将一些 html 返回到我网站后端的文本框中。我已经在使用 smarty 来渲染后端本身。
最好的方法是什么?
我以通常的方式将单个数组分配给 smarty,但不确定如何返回模板。
php - 如何在 Smarty 中合并两个字符串?
为什么这在 Smarty 中不起作用?
它显示以下错误:
php - smarty/codeigniter 中的 eval
我正在尝试将 CodeIgniter 函数之一与 smarty 一起使用,其变量名为 Dynamic。
通常该函数是这样调用的:
但在我的代码中 aaa 被替换为动态值
第一部分很简单:
但我不知道如何在这种情况下在 smarty 中使用 eval 。
它应该使用循环调用函数(例如使用以下输入/变量)
编辑:我忘了说 PHP 的本机eval
函数在 smarty 中不起作用 .. 它显示以下错误:
arrays - codeigniter 2 和 smarty 3:返回的 stdClass 结果的多数组 - 我如何在 smarty 中显示这些
我的 Sql 函数 getLive_projects 有这个查询 -
$query = "SELECT p.* FROM projects p WHERE p.live = 1 ORDER BY client_name ASC";
$response = $this->db->query($query)->result();
My Controller :
// 获取实时项目
$data['live_projects'] = $this->projects->get_live_projects();
// 使用数据加载项目
$this->parser->parse("projects.tpl", $data);
当我使用 {$live_projects|print_r} 时,模板中的数据如下所示
)
我怎样才能在我的模板中输出这个?我尝试了 {foreach from=$live_projects item=$project} 然后尝试使用 {$project->client_name} 但这没有用。当我遍历数组时,该对象是否对我不可用?我错过了什么明显的东西吗?我是否以正确的方式解决这个问题?我只想遍历返回的结果并将每个结果显示为模板中的一行。
我已经搜索了论坛,但无法找到解决我问题的答案 - 任何帮助将不胜感激。有一些关于使用 $live_projects[0]->id 的示例,但是如何将其合并到 smarty 的输出中,结果集中返回了许多项目。
smarty - 需要技巧在 nocache 部分使用缓存值
我想遍历单个数组并仅对某些元素禁用缓存。所以我的想法是在 nocache 部分保留key
和获取元素。key
不幸的是,我没有发现任何可能性:
分配缓存$rec@key
在 nocache 部分,
或将变量key
定义保留在缓存部分中。
有什么办法(无需修改聪明的代码)吗?这是我的test.tpl:
和 test.php:
(当然我会将它用于比文本显示更复杂的事情:))我尝试了很多技巧,我自己认为这是不可能的,请告诉我我错了:)