标签: template-tal

如何用TAL创建zebra-stripe CSS?

如何使用Chameleon或Zope页面模板轻松创建CSS斑马条纹?我想为表中的每一行添加oddeven类,但是使用条件repeat/name/odd或者repeat/name/even看起来相当冗长,即使使用条件表达式:

<table>
   <tr tal:repeat="row rows" 
       tal:attributes="class python:repeat['row'].odd and 'odd' or 'even'">
       <td tal:repeat="col row" tal:content="col">column text text</td>
   </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

如果您有多个要计算的类,这将变得特别繁琐.

css zope zpt chameleon template-tal

50
推荐指数
1
解决办法
2795
查看次数

如何在TAL(PHPTAL)中有条件地添加id属性?

我正在PHPTAL中创建一个表单元素模板文件.我希望能够OPTIONALLY传入一个字段的id属性...

到目前为止代码看起来像这样:

<xml>
  <tal:block metal:define-macro="text">
    <label tal:condition="php: !isset(hideLabel) || isset(hideLabel) && !hideLabel">${field/label}</label>
    <input name="${name}" type="text" value="${field/value}" />
    <p tal:condition="exists:field/error">${field/error}</p>
  </tal:block>
</xml>
Run Code Online (Sandbox Code Playgroud)

这与广告一样有效.我想添加的内容就像是

<input name="${name}" tal:attributes="id exists: id $id | $name" value="${field/value}" />
Run Code Online (Sandbox Code Playgroud)

允许我从METAL调用中选择传入一个id ...

我应该采用不同的方式吗?我已经尝试过使用PHP: isset(id) ? $id : NULL它们的变体,但最后id="0"得到的结果是HTML.

有任何想法吗?

conditional phptal template-tal

8
推荐指数
1
解决办法
3582
查看次数

仅覆盖Plone标准内容类型的Description字段

我想只删除Plone标准内容类型(Document,Folder,blabla)的经典"描述字段"的"视图",因为我需要用结构化文本"结构化"该字段的文本,如:

This is my description<br/>
with many lines<br/>
bla bla<br/>
Run Code Online (Sandbox Code Playgroud)

plone archetypes zpt template-tal template-metal

7
推荐指数
1
解决办法
878
查看次数

我的变色龙模板如何接受来自金字塔框架的消息?

我正在学习金字塔,似乎他们试图让人们使用变色龙而不是mako,所以我想我会给变色龙一个机会.到目前为止我喜欢它,我可以在模板中做基本的事情,比如if和for循环,但我不知道如何让消息闪烁出现.

在金字塔教程中,他们在todo列表中执行此操作,但在wiki示例中他们没有.根据有关会话说明和使用todolist教程作为示例,我已经能够让我的应用程序创建消息,但我无法在我的模板中收到它们.简而言之,我想知道变色龙是否有相当于这个mako代码:

  % if request.session.peek_flash():
  <div id="flash">
    <% flash = request.session.pop_flash() %>
    % for message in flash:
    ${message}<br>
    % endfor
  </div>
  % endif
Run Code Online (Sandbox Code Playgroud)

python pyramid chameleon template-tal

7
推荐指数
1
解决办法
812
查看次数

什么时候在我的tal:条件上使用nocall?

我知道为了性能,最好nocall在a 上使用<tal:condition>以避免调用对象.会欣赏(链接)一些背景,因为这对我来说听起来有点模糊:-)

所以你什么时候使用nocall?把它放在我所有的条件下会不会受伤?

谢谢 !

performance zope plone zpt template-tal

6
推荐指数
2
解决办法
904
查看次数

金字塔和变色龙ZPT

我是网络开发的新手,我正在尝试使用Pyramid在python中创建一个简单的网页.当谈到使用Chameleon制作模板文件时,我遇到了一些麻烦.我现在要做的事情很简单.view callable返回一个字典列表(所有字典都有相同的键只是不同的值).我想通过循环遍历列表中的每个条目将这些值放入表中.

我在查找如何在Chameleon中进行循环时遇到了很多麻烦.有了字典后,我知道如何获取给定键的值.如果有人知道一个好的教程或者只是给出一个快速的例子,那将非常感激.

python pyramid chameleon template-tal

4
推荐指数
1
解决办法
2057
查看次数

金字塔,变色龙和模板渲染

我使用模板引擎'chameleon'开始了一个使用Python web框架'Pyramid'的项目.

我是这个框架的初学者,但我必须将它用于客户.

我按照步骤安装框架,然后我开始编码,仅用于培训目的!

我的第一个应用程序是一个愚蠢的,简单的CRUD应用程序.

我在做的是:

在我__init__.py的每个视图中,我有以下代码:

config.add_view( 'myenglishdictionary.views.modify',ROUTE_NAME = 'modify_route',渲染= '模板/ base.pt')

base.pt是带有页眉和页脚的主模板,以及带有以下代码的div:

<div>${body}</div>
Run Code Online (Sandbox Code Playgroud)

在我的文件view.py中,每个视图都有2行,如下所示:

body = render('templates/list.pt',{'list':list ,'project':'myProject'}, request=request)
return {'body':body}
Run Code Online (Sandbox Code Playgroud)

在我的list.pt中有内容将嵌入base.pt.

一切似乎都很好.但是在更新库之后,现在我无法正确地看到我的模板.

相反,实际的html代码有html实体:

 &lt;div class="clear"&gt;&lt;/div&gt;
Run Code Online (Sandbox Code Playgroud)

所以,显然页面看起来不太好.

问题似乎出现在render方法中,因为base.pt模板的html正确显示.

python pyramid chameleon template-tal

4
推荐指数
1
解决办法
1644
查看次数

如何使用Chameleon有条件地将类添加到重复循环内的块项目中

我刚刚开始使用金字塔和变色龙模板.

我有以下代码示例呈现网站菜单.

<li tal:repeat="menu view.site_menu">
    <tal:block tal:condition="menu.current">
        <span>${menu.title}</span>
    </tal:block>
    <tal:block tal:condition="not menu.current">
        <span><a href="/${menu.href}">${menu.title}</a></span>
    </tal:block>
</li>
Run Code Online (Sandbox Code Playgroud)

它通过不使其成为链接来突出显示当前页面菜单项.我正在尝试使用bootstrap药丸导航.我需要有条件地将class ="active" <li>添加到活动页面的标记中.

我尝试在<li>标签中添加tal:条件:

 <li tal:repeat="menu view.site_menu" tal:condition="menu.current" class="active">
    <a href="/${menu.href}">${menu.title}</a>
 </li>
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

builtins.NameError
NameError: menu

 - Expression: "menu.current"
 - Filename:   H:\eta\eta\eta\templates\global_layout.pt
 - Location:   (line 38: col 57)
 - Source:     ... .site_menu" tal:condition="menu.current" class="active">
                                              ^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

在这里我最好的猜测是,menu仅可里面tal:repeat标签.

什么是实现我需要的最好方法.

python pyramid chameleon template-tal

4
推荐指数
1
解决办法
1371
查看次数

如何使用TALES为tal:attributes中的同一属性设置多个值

我正在尝试在一个元素上设置多个css类.

不幸的是,这不起作用,因为它返回: LanguageError: Duplicate attribute name in attributes.

<ul>
    <li tal:repeat="item mainnav"
        tal:attributes="class 'first' if repeat.item.start else nothing; 
                        class 'last' if repeat.item.end else nothing;
                        class 'active' if item.active else nothing">
        <a tal:attributes="href item.href" tal:content="item.title">title</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

将这3个案例组合成一个表达式会使其变得非常复杂,因为有6种不同的css状态:

  • 第一个+活跃的
  • 第一
  • 最后+活跃
  • 持续
  • 活性
  • (没有)

我能想到两种可能的解决方案:

- >检查内联的每个组合:

<ul>
    <li tal:repeat="item mainnav" 
        tal:attributes="
            class 'first active' if (repeat.item.start and item.active) else
                  'first'        if repeat.item.start else
                  'last active'  if (repeat.item.end and item.active) else
                  'last'         if repeat.item.end else
                  'active'       if item.active else …
Run Code Online (Sandbox Code Playgroud)

templates chameleon template-tal

3
推荐指数
1
解决办法
3362
查看次数

Tal条件,在同一行定义多个条件

除了我下面所做的之外,还有其他选择吗:

...
<div class="abc" tal:condition="this/condition1">
    <div class="abc2" tal:condition="this/condition2">
    ...
    </div>
</div>
...
Run Code Online (Sandbox Code Playgroud)

例如 :

...
<div class="abc" tal:condition="this/condition1 AND this/condition2">
...
</div>
...
Run Code Online (Sandbox Code Playgroud)

php phptal template-tal

3
推荐指数
1
解决办法
4012
查看次数