मुझे फ़ाइलों <hint/>
में टैग के लिए अपारदर्शी संदर्भ मिला है system.xml
। इस टैग के साथ क्या सौदा है? क्या इसका उपयोग कहीं भी प्रलेखित है?
मुझे फ़ाइलों <hint/>
में टैग के लिए अपारदर्शी संदर्भ मिला है system.xml
। इस टैग के साथ क्या सौदा है? क्या इसका उपयोग कहीं भी प्रलेखित है?
जवाबों:
मैं EE के बारे में निश्चित नहीं हूं, लेकिन CE में यह कभी पूरा नहीं होने वाले हेल्प सिस्टम से एक शाब्दिक टैग है। ऐसा प्रतीत होता है कि सिस्टम कॉन्फ़िगरेशन अनुभाग में प्रत्येक प्रपत्र फ़ील्ड को एक छोटा "संकेत" या पाठ की मदद करने के लिए दिया गया है।
जब फ़ील्ड एलीमेंट बनाया जाता है तो हेल्प टेक्स्ट जोड़ा जाता है
#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),
));
वह पहली पंक्ति एक के मान को पढ़ता <hint/>
है system.xml
।
अगला, जब Magento HTML के रूप में फ़ील्ड को प्रस्तुत करता है, तो आखिरी काम यह करता है कि नेस्टेड डिव में संकेत को जोड़ा जाए।
#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>';
अंत में, जावास्क्रिप्ट का एक छोटा सा हिस्सा है जिसे एक व्यवस्थापक पृष्ठ लोड पर कहा जाता है।
#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()
});
});
}
यह जावास्क्रिप्ट ईवेंट हैंडलर सेट करता है जैसे कि मदद पाठ में या उसके बाहर मूसिंग से यह दिखाई देगा। यह "संकेत" होने का इरादा उपयोगकर्ताओं को यह समझने में मदद करेगा कि प्रत्येक क्षेत्र क्या करता है।
समस्या? बैकएंड पर HTML / CSS संकेत को td
एक एकल पिक्सेल चौड़ा बनाता है । यह संकेत पर किसी को भी इसे देखने से रोकता है। अपने फ़ील्ड कॉन्फ़िगरेशन में एक संकेत जोड़ने का प्रयास करें और फिर अपने ब्राउज़र की जावास्क्रिप्ट कंसोल से निम्नलिखित को चलाएं
$$('.hint').each(function(el){
el.down().show();
});
आप कुछ इस तरह देखेंगे।
( यह एक संकेत पाठ है)।
मैंने हमेशा इसे उन "बेस्ट लाइड प्लान्स" चीज़ों में से एक के रूप में चाक किया है जो एक बार मैगनेटो लॉन्च होने के बाद गिर गए।