Tôi đã tìm thấy tài liệu tham khảo mờ cho một <hint/>
thẻ trong system.xml
các tập tin. Thỏa thuận với thẻ này là gì? Là sử dụng của nó được ghi nhận ở bất cứ đâu?
Tôi đã tìm thấy tài liệu tham khảo mờ cho một <hint/>
thẻ trong system.xml
các tập tin. Thỏa thuận với thẻ này là gì? Là sử dụng của nó được ghi nhận ở bất cứ đâu?
Câu trả lời:
Tôi không chắc chắn về EE, nhưng trong CE đây là thẻ tiền đình từ một hệ thống trợ giúp chưa bao giờ hoàn thành. Mục đích dường như là cung cấp cho mỗi trường mẫu trong phần cấu hình hệ thống một "gợi ý" nhỏ hoặc văn bản trợ giúp.
Văn bản trợ giúp được thêm khi phần tử trường được tạo
#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),
));
Dòng đầu tiên đọc giá trị của một <hint/>
trong system.xml
.
Tiếp theo, khi Magento biểu diễn trường dưới dạng HTML, điều cuối cùng nó làm là thêm gợi ý trong một div lồng nhau.
#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>';
Cuối cùng, có một chút javascript được gọi khi tải trang quản trị.
#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 này thiết lập các trình xử lý sự kiện sao cho nhập vào hoặc ra khỏi văn bản trợ giúp sẽ làm cho nó xuất hiện. Mục đích là "gợi ý" này sẽ giúp người dùng hiểu từng lĩnh vực làm gì.
Vấn đề? HTML / CSS trên phụ trợ làm cho gợi ý rộng td
một pixel. Điều này ngăn chặn bất cứ ai di chuyển qua gợi ý để xem nó. Hãy thử thêm một gợi ý vào cấu hình trường của bạn và sau đó chạy phần sau từ bảng điều khiển javascript của trình duyệt của bạn
$$('.hint').each(function(el){
el.down().show();
});
Bạn sẽ thấy một cái gì đó như thế này.
( Đây là một văn bản gợi ý ).
Tôi đã luôn nhấn mạnh điều này như là một trong những "Kế hoạch được trả tiền tốt nhất" đã bị loại bỏ sau khi Magento ra mắt.