Saya ingin menampilkan tabel sederhana di bawah bidang formulir sebagai bagian dari teks bantuan untuk bidang itu (bidang file tepatnya). Apakah saya benar-benar mental atau benar-benar tidak ada cara mudah untuk mengubah tag html diizinkan untuk area teks ini? Saat ini saya telah menampilkan:
Instructions to present to the user below this field on the editing form.
Allowed HTML tags: a b big code del em i ins pre q small span strong sub sup tt ol ul li p br img
Jika tidak ada cara mudah, apa cara termudah berikutnya untuk melakukannya?
MEMPERBARUI:
Clive datang dengan cara hebat untuk melakukannya di bawah ini dengan modul khusus. Anda juga dapat menambahkan ini menggunakan ctools untuk membuat teks bantuan dilipat sebagai berikut:
// Implement hook_field_widget_form_alter()
function MYMODULE_field_widget_form_alter(&$element, &$form_state, &$context) {
// If some condition is matched based on the element provided...
if (isset($element[0]) && $element[0]['#field_name'] == 'field_test') {
// Alter the description using your more permissive set of tags
$reworked = filter_xss($context['instance']['description'], _MYMODULE_field_filter_xss_allowed_tags());
$element[0]['#description'] = theme('ctools_collapsible', array('handle' => 'Help text', 'content' => $reworked, 'collapsed' => TRUE));
}
}
// Provide a more permissive set of tags to be used with filter_xss()
function _MYMODULE_field_filter_xss_allowed_tags() {
// Merge the new set of allowed tags with the less permissive defaults
$new_tags = array('table', 'thead', 'tbody', 'tfoot', 'tr', 'th', 'td');
return array_merge(_field_filter_xss_allowed_tags(), $new_tags);
}
theming
input-formats
7 keajaiban
sumber
sumber
Jawaban:
Tidak ada cara mudah untuk melakukannya, daftar tag yang diizinkan dikodekan ke dalam
_field_filter_xss_allowed_tags()
fungsinya .Ini pada gilirannya dipanggil oleh
field_filter_xss()
, bukan ketika data disimpan ke database melainkan ketika itu ditampilkan difield_default_form()
.Untungnya ada cara tetapi akan membutuhkan modul khusus kecil untuk melakukannya. Pada dasarnya Anda ingin menerapkan kait perubahan bentuk untuk formulir widget bidang dan mengatur deskripsi elemen untuk digunakan
filter_xss()
dengan serangkaian tag yang lebih permisif.Sesuatu di sepanjang garis ini:
Itu didasarkan pada premis bahwa Anda hanya ingin mengizinkan tag baru untuk elemen yang disebut
field_test
, jelas jika Anda ingin melakukan hal yang sama untuk bidang lain Anda harus mengubahnya agar sesuai dengan kondisi yang berbeda. Saya menyarankan menggunakandpm()
fungsi luar biasa yang termasuk dalamDevel module
untuk memeriksa objek di fungsi alter formulir Anda.Saya baru saja menguji yang di atas dan berfungsi (saya sekarang memiliki tabel di mana deskripsi bidang file saya biasanya), rasanya agak seperti peretasan meskipun secara teknis berpegang pada aturan tetapi mudah-mudahan itu akan membawa Anda pada cara.
sumber
Jika Anda menggunakan D6, Anda dapat menavigasi ke / admin / pengaturan / filter. Di sana Anda perlu mengklik opsi "configure" dari "HTML Filtered". Kemudian klik pada tab configure. Anda akan disajikan dengan kotak teks berlabel "Tag HTML yang Diizinkan". Masukkan tag html yang perlu Anda gunakan di sana.
Dalam hal D7 pergi ke admin / config / content / format / filtered_html. Di bawah Pengaturan Filter, klik pada tab "Limit tag HTML diizinkan". Masukkan tag HTML yang ingin Anda gunakan di kotak teks.
sumber