He encontrado referencias opacas a una <hint/>etiqueta en los system.xmlarchivos. ¿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.xmlarchivos. ¿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 tdun 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.