Ich habe einen undurchsichtigen Verweis auf ein <hint/>
Tag in system.xml
Dateien gefunden. Was ist der Deal mit diesem Tag? Ist seine Verwendung irgendwo dokumentiert?
Ich habe einen undurchsichtigen Verweis auf ein <hint/>
Tag in system.xml
Dateien gefunden. Was ist der Deal mit diesem Tag? Ist seine Verwendung irgendwo dokumentiert?
Antworten:
Ich bin mir bei EE nicht sicher, aber in CE ist dies ein Überbleibsel eines nie abgeschlossenen Hilfesystems. Die Absicht scheint gewesen zu sein, jedem Formularfeld im Abschnitt Systemkonfiguration einen kleinen "Hinweis" oder Hilfetext zu geben.
Der Hilfetext wird hinzugefügt, wenn das Feldelement erstellt wird
#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),
));
Diese erste Zeile liest den Wert von a <hint/>
in system.xml
.
Wenn Magento das Feld als HTML rendert, wird als letztes der Hinweis in ein verschachteltes Div eingefügt.
#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>';
Schließlich gibt es ein kleines bisschen Javascript, das beim Laden einer Admin-Seite aufgerufen wird.
#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()
});
});
}
Dieses Javascript richtet Ereignishandler so ein, dass sie angezeigt werden, wenn der Hilfetext mit der Maus ein- oder ausgeblendet wird. Die Absicht, dieser "Hinweis" zu sein, würde den Benutzern helfen, zu verstehen, was jedes Feld tut.
Das Problem? Das HTML / CSS im Backend macht den Hinweis td
ein Pixel breit. Dies verhindert, dass jemand mit der Maus über den Hinweis fährt, um ihn anzuzeigen. Versuchen Sie, Ihrer Feldkonfiguration einen Hinweis hinzuzufügen, und führen Sie dann die folgenden Schritte in der Javascript-Konsole Ihres Browsers aus
$$('.hint').each(function(el){
el.down().show();
});
Sie werden so etwas sehen.
( Dies ist ein Hinweistext ).
Ich habe dies immer als eines der "Best Laid Plans" bezeichnet, die nach dem Start von Magento fallengelassen wurden.