O co chodzi z tagiem „Podpowiedź” w pliku system.xml?


12

<hint/>W system.xmlplikach znalazłem nieprzejrzyste odniesienie do znacznika . O co chodzi z tym tagiem? Czy jego stosowanie jest gdziekolwiek udokumentowane?


Masz przykład? Nie mogłem go znaleźć w Maga 1.8 lub 1.9
— David Manners

@DavidManners Zobacz poniżej - było to bardziej pytanie „Chcę dokumentować Magento” w odpowiedzi na pytanie, które ktoś napisał na Twitterze, niż pytanie „Mam problem”. Wiedza i kontekst innych ludzi są jednak mile widziane.
— Alan Storm,

Ach, rozumiem cię. Chociaż jakieś moduły faktycznie go używają lub są ukryte?
— David Manners,

@DavidManners Jest ukryty, a sposób konfiguracji systemu HTML w konfiguracji nie działa. Myślę, że funkcja podpowiedzi renderowania w polu może działać w innych formularzach (edycja produktu itp.), Ale nie jest obsługiwana przez system.xml. Również istotne, twórca modułu Mariusa ma własną funkcję pomocy / podpowiedzi. alanstorm.com/magento_ultimate_module_creator_review
— Alan Storm

Odpowiedzi:


16

Nie jestem pewien co do EE, ale w CE jest to szczątkowa metka z nigdy nieukończonego systemu pomocy. Wydaje się, że celem było nadanie każdemu polu formularza w sekcji konfiguracji systemu małej „podpowiedzi” lub tekstu pomocy.

Tekst pomocy jest dodawany podczas tworzenia elementu pola

#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),
));

Że pierwsza linia odczytuje wartość <hint/>IN system.xml.

Następnie, gdy Magento renderuje pole jako HTML, ostatnią rzeczą, jaką robi, jest dodanie podpowiedzi w zagnieżdżonym 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>';

Na koniec jest trochę kodu JavaScript, który jest wywoływany podczas ładowania strony administratora.

#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()
        });
    });
}

W tym javascript konfiguruje się programy obsługi zdarzeń, dzięki którym pojawia się przesunięcie do lub z tekstu pomocy. Celem tego „podpowiedzi” byłoby pomóc użytkownikom zrozumieć, co robi każde pole.

Problem? HTML / CSS na backendzie sprawia, że ​​podpowiedź tdma szerokość jednego piksela. Dzięki temu nikt nie przesunie myszy nad wskazówką, aby ją wyświetlić. Spróbuj dodać podpowiedź do konfiguracji pola, a następnie uruchom następujące polecenie z konsoli javascript w przeglądarce

$$('.hint').each(function(el){
    el.down().show();
});

Zobaczysz coś takiego.

wprowadź opis zdjęcia tutaj

( To jest podpowiedź ).

Zawsze opisywałem to jako jedną z tych „najlepszych rozłożonych planów”, które zostały porzucone po uruchomieniu Magento.


6
Piękny kawałek archeologii Magento - uwielbiam to!
— kalenjordan

1
Jestem pod wrażeniem tego.
— philwinkle

Pamiętaj, że możesz zastąpić motyw administratora Magento, aby domyślnie wyświetlać podpowiedzi. Zmodyfikowałem go również, aby zmienić czcionkę pola tekstowego na Consolas dla lepszej czytelności itp.
— thdoan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.