2010-09-17 31 views
7

Tôi đang tạo tệp mẫu phần tử biểu mẫu trong PHPTAL. Tôi muốn để có thể tùy chọn vượt qua trong một thuộc tính id cho một lĩnh vực ...Làm cách nào để thêm điều kiện thuộc tính id vào TAL (PHPTAL) theo điều kiện?

Cho đến nay các mã trông như thế này:

<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> 

này hoạt động như quảng cáo. Những gì tôi muốn thêm là một cái gì đó, giống như

<input name="${name}" tal:attributes="id exists: id $id | $name" value="${field/value}" /> 

cho phép mình tùy chọn vượt qua trong một id từ cuộc gọi METAL ...

Tôi có nên làm nó khác nhau? Tôi đã thử sử dụng PHP: isset(id) ? $id : NULL và các biến thể của chúng, nhưng chỉ kết thúc với một số id="0" trong HTML kết quả.

Bất kỳ ý tưởng nào?

Trả lời

4

Trong trường hợp bất cứ ai khác cần nó, một câu trả lời làm việc là:

<xml> 
    <tal:block metal:define-macro="text"> 
    <label tal:condition="not: exists:hideLabel">${field/label}</label> 
    <input name="${name}" tal:attributes="id id | nothing" type="text" value="${field/value}" /> 
    <p tal:condition="exists:field/error">${field/error}</p> 
    </tal:block> 
</xml> 

đâu thông qua trong các biến là id, tên, một trường mảng được đặt tên, và hideLabel.

Lưu ý rằng tôi cũng đã quản lý để đơn giản hóa việc kiểm tra nhãn cho một thứ mà tôi tin là TAL thành ngữ hơn.

3

Set VAR tại một DIV chứa các yếu tố sớm để được sử dụng:

div class="" tal:define="VAR context.property" 
    div class="" tal:attributes="class python:'grid_8 omega' if VAR else 'grid_8 alpha'" 
0

trong PHP:

<div id="contentCenter" tal:attributes="id 

php:isset(variable)&&isset(variable.property)?'IDVALUE':NULL"> 
Các vấn đề liên quan