2012-11-01 37 views
5

là có thể thêm liên kết html đơn giản vào nhãn/tiêu đề của hộp kiểm không? Tôi đã thử các mã sau:Drupal 7: Nhãn hộp kiểm có liên kết trong đó

<?php 
$form['legal']['#type'] = 'checkbox'; 
$form['legal']['#required'] = TRUE; 
$form['legal']['#title'] = t(
    'You must accept our @tos and @legals', 
    array(
    '@tos' => l(t('terms of service'), 'node/6'), 
    '@legals' => l(t('legals'), 'node/7') 
) 
); 
?> 

Nhưng điều đó tạo ra nhãn follwing (đánh dấu html không phải là "dịch"):

"Bạn phải chấp nhận của chúng tôi < a href ="/node/6" > Điều khoản dịch vụ </a> và < a href = "/ node/7"> legals </a> * "

(Tôi đã thêm dấu cách sau dấu ngoặc mở để nó sẽ không được chuyển đổi thành liên kết tôi muốn có)

Nó không phải là po ssible để làm những việc như vậy? Tôi mới đến drupal. Có lẽ ai đó có thể giúp tôi ... Cảm ơn!

Trả lời

6

Điều này xảy ra trước khi bạn buộc văn bản phải được in dưới dạng văn bản thuần túy.

<?php 
$form['legal']['#type'] = 'checkbox'; 
$form['legal']['#required'] = TRUE; 
$form['legal']['#title'] = t(
    'You must accept our !tos and !legals', 
    array(
    '!tos' => l(t('terms of service'), 'node/6'), 
    '!legals' => l(t('legals'), 'node/7') 
) 
); 
?> 

Lưu ý rằng bạn đang sử dụng chức năng t(), hoạt động khác nhau trên tiền tố thay thế. Nếu bạn đặt @tos, nó sẽ được chạy qua check_plain() để HTML sẽ không bao giờ được xử lý bởi trình duyệt vì nó mã hóa các thực thể HTML.

!tos cho phép đánh dấu HTML vì nó sẽ không là check_plain() 'd.

+0

Cảm ơn bạn đã trả lời hữu ích này! Tôi đã tìm kiếm một cái gì đó như thế này tất cả các thời gian, nhưng không may mắn. Tôi nên đọc tài liệu về hàm t() cẩn thận hơn. – mAtZ

1

Thay vào đó bạn có thể thử sử dụng #prefix.

$form['legal']['#prefix'] = t(
    'You must accept our @tos and @legals', 
    array(
    '@tos' => l(t('terms of service'), 'node/6'), 
    '@legals' => l(t('legals'), 'node/7') 
) 
); 

Hy vọng công trình này ... Muhammad.

+0

Điều này không hữu ích. Nhưng tôi nhầm lẫn rằng điều này vẫn không in HTML mặc dù tham chiếu API biểu mẫu nói rằng ... – mAtZ

+1

-1. Điều này hoàn toàn sai. FAPI cho phép đánh dấu HTML nhưng @tos buộc văn bản phải là check_plain(). –

+0

Big thx Ayesh. Điều đó đã giúp tôi! Nếu không có trình giữ chỗ, mọi thứ đều hoạt động tốt. – mAtZ

Các vấn đề liên quan