2017-02-02 1 views
0

zu verhindern Ich bin Platzhalter hinzugefügt Form wie folgt zu:Wie Drupal 7 von Umwandlung und zu &

$form['search_block_form']['#attributes']['placeholder'] = ' Search'; 

Aber Problem ist, dass Drupal & Zeichen als & so in HTML-Ausgabe für Platzhalter Attribut Druck statt:

placeholder=" Search" 

ich erhalte:

placeholder=" Search" 

Wie verhindert man dieses Verhalten oder gibt es eine andere Möglichkeit, dieses Zeichen mit seinem Hexadezimalwert zu drucken? Versucht mit:

[] und decode_entities('') und einige andere Funktionen, aber keine von ihnen geholfen.

Antwort

1

Ich denke, Sie waren in der Nähe von decode_entities(), aber Sie könnten die PHP-Funktion html_entity_decode() versuchen.

Wenn jedoch das Feld, dem Sie den Platzhalter hinzufügen möchten, 'search_block_form' genannt wird, ist das Konstrukt falsch.

Wenn Sie dies tun, ist ein hook_form_alter() (was Sie sein sollten, wenn Sie es so schreiben) und das Feld, dem Sie den Platzhalter hinzufügen möchten, heißt "my_text_field", dann sollte die Funktion wie aussehen erinnern

function custom_module_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == 'custom_form') { 
    $form['my_text_field']['#attributes']['placeholder'] = html_entity_decode(' Search'); 
    } 
} 

einfach zu ersetzen ‚custom_form‘ mit der realen ID des Formulars und ‚my_text_field‘ mit dem Namen Ihres Feldes, das Sie ändern wollen: dies.

/**** EDIT ****/

schließlich verstanden, was Sie zu tun versuchen. diese Arbeit auf meiner Website zu bekommen ich so musste meine Form Artikel auslegen:

$form['test'] = array(
    '#type' => 'textfield', 
    '#attributes' => array(
     'placeholder' => html_entity_decode(''), 
     'style' => array('font-family: Arial, FontAwesome;'), 
    ), 
); 

Das Wichtigste hinzuzufügen, ist der Stil-Attribut Schriftfamilie und stellen Sie sicher, es enthält FontAwesome. So das obige Beispiel für Dich würde:

function custom_module_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == 'custom_form') { 
    $form['my_text_field']['#attributes']['placeholder'] = html_entity_decode(' Search'); 
    $form['my_text_field']['#attributes']['style'] = 'font-family: Arial, FontAwesome;'; 
    } 
} 

nicht sicher, wie Sie die JS für Font Ehrfürchtig hinzugefügt haben, aber ich hinzugefügt, um es in einer Seite ändern drupal_add_js() verwendet, so dass ich sicher, könnte es nur bekommen geladen auf den Seiten ist es erforderlich.

Lassen Sie mich wissen, wie das für Sie funktioniert, und vergessen Sie nicht, die Caches auch zu spülen!

+0

Nein, funktioniert nicht. In der Seitenquelle anstelle von & # xf002; Ich bekomme nur ein leeres Rechteckzeichen. – MilanG

+0

Ist dieser Code für ein tolles Symbol? Wenn ja, haben Sie das Javascript für die Bibliothek hinzugefügt? –

+0

Ja ist es. Und wenn es fest codiert ist, funktioniert es gut. Aber wenn ich es hinzufüge, wie ich es in meinen Fragen beschrieben habe, konvertiert drupal dieses & sign in & und es funktioniert nicht so. – MilanG