我有一些字符串,我从数据库中提取出来,我想在它们上使用Template Toolkit,但我似乎无法弄清楚如何使用字符串作为TT输入.有小费吗?
谢谢!
-fREW
如何仅BLOCK在模板中呈现特定内容?
假设我有这样BLOCK的text.tt,一个模板工具包文件:
[% BLOCK someblock %] some block test blah blah blah [% END %]
Run Code Online (Sandbox Code Playgroud)
我希望能够process()用来处理那部分:
$tt->process("text.tt/someblock", {...}, {...});
Run Code Online (Sandbox Code Playgroud)
这是处理这个问题的正确方法吗?
[% IF OrgType.id == Organization.org_type_id %]selected="selected"[% END %]
Run Code Online (Sandbox Code Playgroud)
即使它们都评估相同的数字也不起作用.
[% IF OrgType.id == 3 %]selected="selected"[% END %]
Run Code Online (Sandbox Code Playgroud)
(即用于测试目的的硬编码)确实有效.
[% OrgType.id %] and [% Organization.org_type_id %]
Run Code Online (Sandbox Code Playgroud)
两者都在页面上打印"3".
你有没有逃过模板工具包中的单引号来获取必要的javascript处理程序?如果是这样,你怎么做.
[% SET s = "A'B'C" %]
<a href="/abc.html" onclick="popup('[% s | html_entity %]')">ABC</a>
Run Code Online (Sandbox Code Playgroud)
html_entity显然不起作用,因为它只处理双引号.你是怎么做到的?
假设我使用Catalyst在Perl中工作.我为一个变量分配了一个哈希数组,即:
my @array = ($some_hash);
$c->stash->{foo}->{bar} = \@array;
Run Code Online (Sandbox Code Playgroud)
如何在Template Toolkit中从$ some_hash中选择元素,例如'id' ?在Perl我可以通过$c->stash->{foo}->{bar}->[0]->id... 访问它
非常感谢所有的帮助,我有点像Perl newb,所以如果有什么不合适的地方,请告诉我.提前致谢...
是否存在某种类型的钩子,当我包含模板并且我可以在其中更改模板的路径时将执行该钩子?
例如
[% INCLUDE test %]
Run Code Online (Sandbox Code Playgroud)
我想的路径更改为"测试"是像"AE/test.tt"或"FR/test.tt".
我们的想法是更改模板的路径,而不更改包含所在的模板.
我在一个基于Web的教育网站上工作,我们使用Perl,MySQL 5,Apache和Template Toolkit.我们计划在我们的网站上介绍对多语言的支持.
我们做了什么
如果我们的模板文件中有一个Tab类名称,如Courses Main Page <\ h1>,我们已将其转换为
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<h1>[% glossary.$language.courses_main_page %]<\h1>
Run Code Online (Sandbox Code Playgroud)
其中$ language获取用户登录时选择的值.
我们有一个表来在Mysql DB中维护这些数据:
CREATE TABLE
translation(englishvarchar(255)NOT NULL,
languagevarchar(255)NOT NULL,translationvarchar(2000)NOT NULL,)ENGINE = InnoDB DEFAULT CHARSET = utf8 COMMENT ='将元素文本翻译为外语'

在MySQL的连接功能中,我提供'SET character_set_results = NULL'.我尝试使用utf8,但是局限于某些标签的问题增加了很多部分.
因此,只要用户登录系统,我们就会获取所有转换并将其存储在PERL哈希中并对其进行缓存.我们将此哈希传递给模板文件,该文件将替换该值.
问题:á和é等急性重音字符会被一些不同的字符集符号取代.
例如:在前端,我们看到了CursosPágina校长的"CursosPágina校长".
它与htmlentities和é(急性)中给出的解决方案非常相似
任何人都可以告诉我如何在Perl中实现相同的目标.
这个问题是关于Template :: Toolkit(Perl)中宏的用法
我没有编写宏并将它们放入一个单独的文件中,以便在其他几个模板文件中使用它们.
我的宏位于名为macros.tt的单独模板文件中:
----- file macros.tt ------
[% MACRO decorateStatus(status) BLOCK -%]
[% ico = 'status_unknown' -%]
[% IF status == "New" -%][% ico = 'status_waiting' -%]
[% ELSIF status == "Working" -%][% ico = 'status_work' -%]
[% ELSIF status == "Deleted" -%][% ico = 'status_deleted' -%]
[% END -%]
[% status %] <img src="[% c.uri_for('/images/ico/' _ ico _ '.png') %]" text="[% status %]">
[% END-%]
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试在另一个模板中使用此宏 - 但是由于宏未展开而失败:
----- file demo.tt -------
[% INCLUDE macros.tt %]
…. …Run Code Online (Sandbox Code Playgroud) 我正在考虑使用perl6和Cro来构建一个包含文本内容的网站.是否有关于使用模板工具包(如TT2)和代码示例使用Cro的最佳实践/指导?
Perl 模板工具包 - 如何连接/连接多个变量(合并为一个),例如在 html 选择字段/组合中选择所选元素时需要它。
我在这里找到了问题https://www.perlmonks.org/?displaytype=print;replies=1;node_id=880584,但似乎没有得到正确答复。
点、空格或加号对连接变量没有帮助。
编辑:以前我设法通过在字符串内使用插值来解决这个问题
[% var = "$var1-$var2-$var3" %]
Run Code Online (Sandbox Code Playgroud)