System.xml में "संकेत" टैग के साथ सौदा क्या है?


12

मुझे फ़ाइलों <hint/>में टैग के लिए अपारदर्शी संदर्भ मिला है system.xml। इस टैग के साथ क्या सौदा है? क्या इसका उपयोग कहीं भी प्रलेखित है?


क्या आपको एक उदाहरण मिला है। मुझे मेज़ 1.8 या 1.9 में एक नहीं मिला
डेविड मैनर्स

@DavidManners नीचे देखें - यह एक "मैं मैगेंटो को दस्तावेज देना चाहता हूं" एक सवाल के जवाब में किसी ने मुझे "मेरे पास एक समस्या है" सवाल से ट्वीट किया था। अन्य लोगों का ज्ञान और संदर्भ हालांकि स्वागत से अधिक है।
एलन स्ट्रॉम

आह मैं तुम्हें मिल गया। हालांकि कोई भी मॉड्यूल वास्तव में इसका उपयोग करता है या इसे छिपाता है?
डेविड मैनर्स

@DavidManners यह छिपा हुआ है, और जिस तरह से सिस्टम कॉन्फ़िगरेशन HTML सेटअप है वह भी काम नहीं करता है। मुझे लगता है कि फील्ड रेंडरिंग का संकेत अन्य रूपों (उत्पाद संपादन, आदि) पर काम कर सकता है, लेकिन यह system.xml द्वारा संचालित नहीं है। इसके अलावा प्रासंगिक, मारियस के मॉड्यूल निर्माता की अपनी सहायता / संकेत सुविधा है। alanstorm.com/magento_ultimate_module_creator_review
एलन स्टॉर्म

जवाबों:


16

मैं 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();
});

आप कुछ इस तरह देखेंगे।

यहाँ छवि विवरण दर्ज करें

( यह एक संकेत पाठ है)।

मैंने हमेशा इसे उन "बेस्ट लाइड प्लान्स" चीज़ों में से एक के रूप में चाक किया है जो एक बार मैगनेटो लॉन्च होने के बाद गिर गए।


6
Magento के पुरातत्व का सुंदर सा - यह प्यार करता हूँ!
कालेंजर्डन

1
इससे प्रभावित होकर, मैं।
फिलिंक करें

ध्यान दें कि आप डिफ़ॉल्ट रूप से संकेत दिखाने के लिए Magento के व्यवस्थापक विषय को ओवरराइड कर सकते हैं । मैंने इसे बेहतर सुपाठ्यता के लिए टेक्स्टबॉक्स फ़ॉन्ट को
कॉनसोल में
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.