Saya telah menemukan referensi buram ke <hint/>
tag di system.xml
file. Apa masalahnya dengan tag ini? Apakah penggunaannya didokumentasikan di mana saja?
Saya telah menemukan referensi buram ke <hint/>
tag di system.xml
file. Apa masalahnya dengan tag ini? Apakah penggunaannya didokumentasikan di mana saja?
Jawaban:
Saya tidak yakin tentang EE, tetapi di CE ini adalah tag peninggalan dari sistem bantuan yang tidak pernah selesai. Maksudnya tampaknya memberi setiap bidang formulir di bagian Konfigurasi sistem "petunjuk" kecil, atau teks bantuan.
Teks bantuan ditambahkan saat elemen bidang dibuat
#File: app/code/core/Mage/Adminhtml/Block/System/Config/Form.php
$hint = (string)$element->hint ? Mage::helper($helperName)->__((string)$element->hint) : '';
//...
$field = $fieldset->addField($id, $fieldType, array(
'name' => $name,
'label' => $label,
'comment' => $comment,
'tooltip' => $tooltip,
'hint' => $hint,
'value' => $data,
'inherit' => $inherit,
'class' => $element->frontend_class . $sharedClass . $requiresClass,
'field_config' => $element,
'scope' => $this->getScope(),
'scope_id' => $this->getScopeId(),
'scope_label' => $this->getScopeLabel($element),
'can_use_default_value' => $this->canUseDefaultValue((int)$element->show_in_default),
'can_use_website_value' => $this->canUseWebsiteValue((int)$element->show_in_website),
));
Baris pertama itu membaca nilai a <hint/>
in system.xml
.
Selanjutnya, ketika Magento merender bidang sebagai HTML, hal terakhir yang dilakukannya adalah menambahkan petunjuk di div bersarang.
#File: app/code/core/Mage/Adminhtml/Block/System/Config/Form/Field.php
$html.= '<td class="">';
if ($element->getHint()) {
$html.= '<div class="hint" >';
$html.= '<div style="display: none;">' . $element->getHint() . '</div>';
$html.= '</div>';
}
$html.= '</td>';
Akhirnya, ada sedikit javascript yang dipanggil di halaman admin.
#File: app/design/adminhtml/default/default/template/system/config/js.phtml
function showHint() {
$$('.hint').each(function(element){
Event.observe(element, 'mouseover', function(){
element.down().show()
});
Event.observe(element, 'mouseout', function(){
element.down().hide()
});
});
}
Javascript ini mengatur event handler sehingga membuat mousing masuk atau keluar dari teks bantuan akan membuatnya muncul. Maksudnya adalah "petunjuk" ini akan membantu pengguna memahami apa yang dilakukan masing-masing bidang.
Masalah? HTML / CSS di backend membuat petunjuk td
lebar satu piksel. Ini mencegah siapa pun yang mousing atas petunjuk untuk melihatnya Coba tambahkan petunjuk untuk konfigurasi bidang Anda dan kemudian jalankan yang berikut dari konsol javascript browser Anda
$$('.hint').each(function(el){
el.down().show();
});
Anda akan melihat sesuatu seperti ini.
( ini adalah teks petunjuk ).
Saya selalu menganggap ini sebagai salah satu dari "Paket Laid Terbaik" yang jatuh begitu Magento diluncurkan.