Qual è il problema con il tag "Suggerimento" in system.xml?


12

Ho trovato un riferimento opaco a un <hint/>tag nei system.xmlfile. Qual è il problema con questo tag? Il suo uso è documentato ovunque?


Hai un esempio. Non ne ho trovato uno nel Mage 1.8 o 1.9
David Manners,

@DavidManners Vedi sotto - questa era una domanda più "Voglio documentare Magento" in risposta a una domanda che qualcuno mi ha twittato di una domanda "Ho un problema". La conoscenza e il contesto delle altre persone sono più che benvenuti.
Alan Storm,

Ah, ti capisco. Anche se alcuni moduli lo usano effettivamente o sono nascosti?
David Manners,

@DavidManners È nascosto e il modo in cui è configurato l'HTML di configurazione del sistema non funziona nemmeno. Penso che la funzione di suggerimento del rendering sul campo potrebbe funzionare su altri moduli (modifica del prodotto, ecc.), Ma non è guidato da system.xml. Anche rilevante, il creatore di moduli di Marius ha la sua funzione di aiuto / suggerimento. alanstorm.com/magento_ultimate_module_creator_review
Alan Storm

Risposte:


16

Non sono sicuro di EE, ma in CE questo è un tag rudimentale di un sistema di aiuto mai completato. L'intento sembra essere stato quello di dare un piccolo "suggerimento" a ciascun campo del modulo nella sezione Configurazione di sistema, o testo di aiuto.

Il testo della guida viene aggiunto quando viene creato l'elemento campo

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

Quella prima riga legge il valore di un <hint/>in system.xml.

Successivamente, quando Magento esegue il rendering del campo come HTML, l'ultima cosa che fa è aggiungere il suggerimento in un div nidificato.

#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>';

Infine, c'è un po 'di javascript che viene chiamato al caricamento della pagina di amministrazione.

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

Questo javascript imposta i gestori di eventi in modo tale da far apparire il mouse all'interno o all'esterno del testo di aiuto. L'intento di questo "suggerimento" aiuterebbe gli utenti a capire cosa fa ogni campo.

Il problema? L'HTML / CSS sul backend rende il suggerimento tdlargo un singolo pixel. Questo impedisce a chiunque di passare il mouse sopra il suggerimento per visualizzarlo. Prova ad aggiungere un suggerimento alla configurazione del tuo campo e quindi esegui quanto segue dalla console javascript del tuo browser

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

Vedrai qualcosa del genere.

inserisci qui la descrizione dell'immagine

(il testo Questo è un suggerimento ).

L'ho sempre definito come una di quelle cose "I migliori piani previsti" che sono state abbandonate una volta lanciato Magento.


6
Splendido pezzo di archeologia del Magento: adoralo!
Kalenjordan,

1
Sono impressionato da questo, lo sono.
Filwinkle,

Si noti che è possibile ignorare il tema dell'amministratore di Magento per mostrare i suggerimenti per impostazione predefinita. L'ho anche modificato per cambiare il carattere della casella di testo in Consolas per una migliore leggibilità, ecc.
thdoan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.