He encontrado referencias opacas a una <hint/>
etiqueta en los system.xml
archivos. ¿Cuál es el trato con esta etiqueta? ¿Está documentado su uso en alguna parte?
He encontrado referencias opacas a una <hint/>
etiqueta en los system.xml
archivos. ¿Cuál es el trato con esta etiqueta? ¿Está documentado su uso en alguna parte?
Respuestas:
No estoy seguro acerca de EE, pero en CE esta es una etiqueta de vestigio de un sistema de ayuda nunca completado. La intención parece haber sido dar a cada campo de formulario en la sección Configuración del sistema una pequeña "pista" o texto de ayuda.
El texto de ayuda se agrega cuando se crea el elemento de campo
#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),
));
Esa primera línea se lee el valor de una <hint/>
en system.xml
.
Luego, cuando Magento representa el campo como HTML, lo último que hace es agregar la pista en un div anidado.
#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>';
Finalmente, hay un pequeño fragmento de javascript que se llama en una carga de la página de administración.
#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()
});
});
}
Este javascript configura controladores de eventos para que aparezca o desaparezca del texto de ayuda. La intención de esta "pista" ayudaría a los usuarios a comprender lo que hace cada campo.
¿El problema? El HTML / CSS en el backend hace que la pista tenga td
un solo píxel de ancho. Esto evita que alguien pase el mouse sobre la pista para verlo. Intente agregar una pista a la configuración de su campo y luego ejecute lo siguiente desde la consola de JavaScript de su navegador
$$('.hint').each(function(el){
el.down().show();
});
Verás algo como esto.
( Este es un texto de pista ).
Siempre lo atribuí a uno de esos "Mejores planes establecidos" que se eliminó una vez que se lanzó Magento.