2012-11-01 12 views
5

Czy jest możliwe dodanie prostego linku html w etykiecie/tytule pola wyboru? Próbowałem następujący kod:Drupal 7: Etykieta Checkbox z linkami w nim

<?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') 
) 
); 
?> 

Ale produkuje etykiety follwing (znaczniki HTML nie jest "tłumaczone"):

"Musisz zaakceptować naszą < a href ="/node/6" > warunki obsługi </a> a < sekcję „/ węzeł/7”> legals </a> *”

(i dodanych spacji po wspornikach otwór tak, że nie będzie on przeprowadza się w link chcę mieć)

Czy to nie po Czy można robić takie rzeczy? Jestem nowy w drupalu. Być może ktoś może mi pomóc ... Dzięki!

Odpowiedz

6

To się dzieje, zanim zmusisz tekst do wydrukowania jako zwykły tekst.

<?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') 
) 
); 
?> 

Należy pamiętać, że używana jest funkcja t(), która działa inaczej na prefiks zamiennika. Jeśli umieścisz @tos, zostanie ono uruchomione przez check_plain(), więc HTML nigdy nie będzie przetwarzany przez przeglądarkę podczas kodowania encji HTML.

!tos zezwala na znaczniki HTML, ponieważ nie będzie to check_plain() 'd.

+0

Dziękuję za pomocną odpowiedź! Szukałem czegoś takiego przez cały czas, ale nie miałem szczęścia. Powinienem był uważniej przeczytać dokumentację dotyczącą funkcji t(). – mAtZ

1

Zamiast tego można spróbować użyć #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') 
) 
); 

Mam nadzieję, że to działa ... Muhammad.

+0

To nie pomaga. Ale jestem zdezorientowany, że to nadal nie drukuje HTML, mimo że Form API Reference mówi, że ... – mAtZ

+1

-1. To jest całkowicie błędne. FAPI pozwala na znaczniki HTML, ale @tos wymusza na text check_plain(). –

+0

Big thx Ayesh. To mi pomogło! Bez elementów zastępczych wszystko działa dobrze. – mAtZ

Powiązane problemy