Apa Kesepakatan dengan Tag "Petunjuk" di system.xml?

12

Saya telah menemukan referensi buram ke <hint/>tag di system.xmlfile. Apa masalahnya dengan tag ini? Apakah penggunaannya didokumentasikan di mana saja?

Alan Storm
sumber
Apakah Anda punya contoh? Saya tidak dapat menemukan satu di Mage 1.8 atau 1.9
David Manners
@DavidManners Lihat di bawah - ini adalah pertanyaan "Saya ingin mendokumentasikan Magento" sebagai jawaban atas pertanyaan seseorang yang men-tweet saya daripada pertanyaan "Saya punya masalah". Pengetahuan dan konteks orang lain lebih dari disambut.
Alan Storm
Ah, aku mengerti. Padahal apakah ada modul yang benar-benar menggunakannya atau disembunyikan?
David Manners
@ Davidvider Tersembunyi, dan cara konfigurasi sistem HTML pengaturannya bahkan tidak berfungsi. Saya pikir fitur petunjuk rendering bidang mungkin berfungsi pada formulir lain (pengeditan produk, dll), tapi itu tidak didorong oleh system.xml. Juga relevan, pembuat modul Marius memiliki fitur bantuan / petunjuknya sendiri. alanstorm.com/magento_ultimate_module_creator_review
Alan Storm

Jawaban:

16

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

masukkan deskripsi gambar di sini

( ini adalah teks petunjuk ).

Saya selalu menganggap ini sebagai salah satu dari "Paket Laid Terbaik" yang jatuh begitu Magento diluncurkan.

Alan Storm
sumber
6
Sedikit indah arkeologi Magento - menyukainya!
kalenjordan
1
Terkesan dengan ini, saya.
philwinkle
Perhatikan bahwa Anda dapat mengganti tema admin Magento untuk menampilkan petunjuk secara default. Saya juga memodifikasinya untuk mengubah font kotak teks ke Consolas untuk keterbacaan yang lebih baik, dll.
thdoan