Dosyalardaki bir <hint/>
etikete opak referans buldum system.xml
. Bu etiketle anlaşma nedir? Kullanımı herhangi bir yerde belgelenmiş mi?
Dosyalardaki bir <hint/>
etikete opak referans buldum system.xml
. Bu etiketle anlaşma nedir? Kullanımı herhangi bir yerde belgelenmiş mi?
Yanıtlar:
Enerji Verimliliği konusunda emin değilim, ancak CE'de bu hiç tamamlanmamış bir yardım sisteminden alınan bir etiket. Amaç, Sistem yapılandırması bölümündeki her form alanına küçük bir "ipucu" veya yardım metni vermek gibi görünüyor.
Alan metni oluşturulduğunda yardım metni eklenir
#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),
));
Bu ilk satır bir <hint/>
in değerini okur system.xml
.
Daha sonra, Magento alanı HTML olarak oluşturduğunda, yaptığı son şey ipucunu iç içe bir div'a eklemek.
#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>';
Son olarak, yönetici sayfası yüklemesinde çağrılan küçük bir javascript var.
#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()
});
});
}
Bu javascript, olay işleyicilerini yardım metninin içine veya dışına farenin görünmesini sağlayacak şekilde ayarlar. Bu "ipucu" olma amacı, kullanıcıların her alanın ne yaptığını anlamalarına yardımcı olur.
Sorun? Arka uçtaki HTML / CSS ipucunu td
tek bir piksel genişliğinde yapar. Bu, ipucunun üzerinde farenin görmesini engeller. Alan yapılandırmanıza bir ipucu eklemeyi ve ardından tarayıcınızın javascript konsolundan aşağıdakileri çalıştırmayı deneyin
$$('.hint').each(function(el){
el.down().show();
});
Böyle bir şey göreceksiniz.
( Bu bir ipucu metnidir).
Bunu her zaman Magento piyasaya sürüldükten sonra atılan "En İyi İş Planları" ndan biri olarak ilan ettim.