ดีลของแท็ก“ คำแนะนำ” ใน system.xml คืออะไร


12

ฉันพบการอ้างอิงทึบแสงถึง<hint/>แท็กในsystem.xmlไฟล์ การจัดการกับแท็กนี้คืออะไร มีการบันทึกการใช้งานทุกที่หรือไม่?


คุณมีตัวอย่างไหม ฉันหาไม่เจอใน Mage 1.8 หรือ 1.9
David Manners

@DavidManners ดูด้านล่าง - นี่เป็นคำถาม "ฉันต้องการเอกสาร Magento" มากขึ้นเพื่อตอบคำถามที่มีคนทวีตฉันมากกว่าคำถาม "ฉันมีปัญหา" ความรู้และบริบทของคนอื่นเป็นมากกว่าการต้อนรับ
Alan Storm

อ่าฉันรับคุณ แม้ว่าโมดูลใด ๆ จะใช้จริงหรือซ่อนอยู่?
David Manners

@DavidManners มันถูกซ่อนไว้และวิธีการตั้งค่า HTML ของระบบนั้นไม่ได้ผล ฉันคิดว่าคุณสมบัติคำใบ้ของการเรนเดอร์ฟิลด์อาจใช้ได้กับรูปแบบอื่น ๆ (การแก้ไขผลิตภัณฑ์ ฯลฯ ) แต่นั่นไม่ได้ขับเคลื่อนโดย system.xml ผู้สร้างโมดูลของ Marius มีความเกี่ยวข้องเช่นกัน alanstorm.com/magento_ultimate_module_creator_review
Alan Storm

คำตอบ:


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 สิ่งสุดท้ายที่ทำคือเพิ่มคำใบ้ใน div ที่ซ้อนกัน

#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
นักโบราณคดีคุณภาพเยี่ยมมาก่อน - ชอบมาก!
kalenjordan

1
ประทับใจกับสิ่งนี้ฉัน
philwinkle

โปรดทราบว่าคุณสามารถแทนที่ชุดรูปแบบผู้ดูแลระบบ Magentoเพื่อแสดงคำแนะนำตามค่าเริ่มต้น ฉันได้แก้ไขเพื่อเปลี่ยนแบบอักษรของกล่องข้อความเป็น Consolas เพื่อให้อ่านง่ายขึ้นและดีขึ้น
thdoan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.