问题标签 [smarty2]

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.

0 投票
2 回答
2652 浏览

php - Smarty PHP 模板引擎 - 文件权限错误和缺少模板

我对 Smarty PHP 模板引擎 - 版本 2.6.0 (smarty.net) 感到很头疼

我在 error_log 中不断出现的错误是

PHP 致命错误:Smarty 错误:无法写入 $compile_dir '/var/www/vhosts/domain/library/templates/compiled'。确保 $compile_dir 对 Web 服务器用户是可写的。在 /var/www/vhosts/domain/library/Smarty-2.6.0/libs/Smarty.class.php 第 1088 行

我已将文件夹和文件设为可写,权限设置为 777,但此错误仍在发生。

它使更新模板文件成为一场噩梦,因为目前我正在两个地方更新代码 - >模板文件夹和编译文件夹。就像没有编译发生,所以编辑已经编译的文件是我可以对站点进行更改的唯一方法。

但是,我有一个模板文件被包含在另一个模板文件中,而这不在编译目录中。在此文件中进行简单的文本更改后,现在已完全删除了该站点的该部分,并且该页面刚刚中断了该部分应该出现的内容。

我完全被这个难住了,我希望你们中的一些有 Smarty 经验的人能够帮助我。

先感谢您。

0 投票
1 回答
1416 浏览

php - Smarty 中的 PHP 函数和变量范围

我在Smarty 2.6.27中工作。有一些东西会阻止 PHP 函数访问全局变量:

但是变量$a永远不会进入函数。我也这样做了:

但同样,$a它没有进入 PHP 全局变量列表。这似乎是因为 Smarty 在一些奇怪的上下文中运行 PHP ——例如,文档中提到了这一点:

要访问 {php} 块中的 PHP 变量,您需要使用 PHP 全局关键字。

我真的不需要访问其他 PHP 全局变量,我也不特别希望这里创建的变量范围更广,我只需要弄清楚如何使用函数函数之外定义的变量。这些变量会有很多,因此将它们作为参数传递是不切实际的。

0 投票
3 回答
2644 浏览

php - 使用 Smarty 2 在一行上分配变量值

我正在使用 Smarty 2,想知道是否有更好/更整洁的方法来assign设置evenRow一行的值,而不是下面的 5 行。

考虑到 Smarty 在某些地方可以与 PHP 紧密结合,我很惊讶这在网上不容易找到,因为在 PHP 中做这样的事情会很简单。

0 投票
1 回答
609 浏览

php - 带有 php 变量的配置文件 smarty

在我的 php 文件中发送电子邮件我想使用 smarty 配置变量但是目前我必须削减它们

这是 PHP 文件的一部分:

PHP

目前我正在创建不同的 smarty 配置变量,如下所示:

我可以以某种方式一次完成所有事情吗(在 smarty 配置文件中包含 php vars)

所以: $messagecontent =$smarty->getConfigVariable('welcomemail');

{#welcomemail#} 将如何包含这些内容?例如welcomemail="??"

0 投票
1 回答
4100 浏览

smarty - 如何使用 Smarty 删除数组上的重复值

我有一个包含重复值的数组,我只想打印一次该值,无论它在数组上存在多少次。

这是我拥有的代码:

这是正确打印的:

这就是我要打印的

有没有办法只使用 Smarty 模板来实现这一点?或者我可以在 .tpl 文件上使用的任何方式?

提前致谢

0 投票
1 回答
367 浏览

foreach - 如何在 smarty2 模板中停止 foreach div 类

这是我的代码,我需要永久停止最后一个 ul 和 tab-content 我使用 smarty 2 我已经尝试了一切,但我无法解决它。

我试过这个但不工作

0 投票
1 回答
828 浏览

string - 如何在通过 smarty 中的 foreach 循环打印每个字符串后添加逗号分隔符?

我遵循逻辑来打印字符串。现在字符串正在打印,但它们没有用逗号分隔。我想在打印每个字符串后插入逗号分隔符。逗号不应在最后一个字符串后打印。如何做到这一点?我几乎尝试了所有事情,但没有得到想要的结果。那么在这方面可以很好地控制smarty的人帮助我吗?提前致谢。

0 投票
1 回答
292 浏览

smarty - smarty 修饰符返回的引用数组值

有人可以告诉我如何从 smarty 修饰符返回的数组中引用值吗

我有一个返回数组的修饰符

当我尝试使用下面的代码访问模板中的返回值时,它只是说 Array

我已经尝试了很多不同的方法,如果我使用{$member|user_display:"name"|@print_r}它会显示数组结构和值,所以那里的信息只需要得到它

0 投票
1 回答
1218 浏览

php - Smarty 2.6.14 和 PHP 5.4.9 无法识别 {literal} 标签

我有一个带有 php smarty 标签的 html 页面。问题是{literal}标签,需要转义 javascript 和 css 代码块。在许多其他 php 版本中,如 php 5.3 或 5.5 工作正常,但在 php 5.4.9 中不起作用

当我使用{literal}转义 javascript 时,如下所示:

我得到一个"Fatal error: Smarty error: [in login.html line 70]: syntax error: unrecognized tag: php' . str_repeat(" ", substr_count('{literal (Smarty_Compiler.class.php, line 446) in /var/www/library/smarty/Smarty.class.php on line 1095",第 70 行是代码{literal}

但是,如果我删除{literal}标签并使用它{ldelim}{rdelim}这可以正常工作,例如:

当我有相同的项目在其他 php 版本中正常工作并且当我有很多页面转义 javascript 和 css 时,我不认为{literal}将项目中的所有标签更改为{ldelim}{rdelim}{literal}

0 投票
3 回答
31390 浏览

php - smarty 将字符串转换为数字

我需要做划分:

如何在 Smarty 中准确地将字符串转换为数字,因为我无法访问 CMS 的专有代码?谢谢!

UPD:Smarty 版本:2.6.18