it-swarm.com.de

Platzhalter / Hilfetext zum Filter "Ansichten anzeigen" hinzufügen?

Der Titel sagt so ziemlich alles. Ich suche nach einer Möglichkeit, einem exponierten Filter Platzhalter/Hilfetext hinzuzufügen. Dies ist Text, der im Filter (in diesem Fall im Suchfeld) angezeigt wird, bevor der Benutzer einen Wert eingibt, und der dann verschwindet, wenn auf das Feld geklickt wird oder wenn Text eingegeben wird.

6
Mrweiner

Sie können dies mit Vorverarbeitungsfunktionen tun. Hier ist ein Tutorial dazu für das Standardsuchfeld ; Sie können exponierte Filter auf ähnliche Weise anzeigen.

Möglicherweise können Sie dazu auch das Modul Compact Forms verwenden, obwohl ich nicht weiß, ob es mit Views-exponierten Filtern kompatibel ist.

Außerdem gibt es ein Modul zum Anzeigen von Hilfetext unter einem Feld: Better Exposed Filters

Um es einzurichten, aktivieren Sie einfach das Modul und navigieren Sie dann zu Ihrer Ansichtsbearbeitungsseite. Klicken Sie unter Exposed Form neben Exposed Form (Basic = - === -) auf Basic style und ändere es in Better Exposed Filters. Dann nach Bedarf einstellen.

Dieses Modul blendet den Text jedoch bei der Eingabe nicht automatisch aus.

6
Patrick Kenny

Ich habe danach gesucht und könnte auf diese Weise Platzhalter hinzufügen:

  1. Öffnen Sie die Datei template.php Ihres Themas (falls nicht vorhanden, erstellen Sie eine).
  2. Fügen Sie den folgenden Code zu Ihrer template.php-Datei hinzu:

(Lesen Sie die Hinweise unter dem Code.)

function mmsearchresults_form_alter(&$form, &$form_state, $form_id){
  if($form_id == "views_exposed_form"){
    dsm($form); // print $form array on the top of the page
    if (isset($form['title'])) {
            $form['title']['#attributes'] = array('placeholder' => array(t('Gemeente...')));
    }
  }
}


Hinweis 1: Wenn die Funktion form_alter bereits vorhanden ist, fügen Sie sie nicht erneut hinzu. Kopieren Sie einfach den Teil if($form_id=...) und fügen Sie ihn ein.

Hinweis 2: Ändern Sie den Titel, unabhängig davon, welches Element Sie als Platzhalter hinzufügen möchten.

Hinweis 3: Wenn Sie keine Beschriftung anzeigen möchten, können Sie dies durch CSS (Anzeige: keine) oder durch Hinzufügen von unset($form['title']['#title']); innerhalb des obigen Codes tun.

5
herci

Verwenden eines spezifischeren Ansatzes mit hook_form_FORM_ID_alter:

<?php
/**
 * Implements hook_form_FORM_ID_alter() for views_exposed_form().
*/
function hook_form_views_exposed_form_alter(&$form, &$form_state) {
    $form['form_name']['#attributes']['placeholder'] = t('Placeholder text here');
}
1
frazras

Ich hatte das gleiche Problem beim Platzieren eines Platzhalters auf einer exponierten Filtereingabe. Deshalb verwende ich jQuery-Code für ein "diplay: none". Block.

<script src="http://code.jquery.com/jquery-latest.min.js"></script>

<script>

    $(function($){
        var Elm = $("#id-of-the-input");
        Elm.val(Elm.attr('name'));
        Elm.focus(function(event){
            event.preventDefault();
            if(Elm.val() == Elm.attr('name')){
                Elm.val('');
            }
        });
        Elm.focusout(function(event){
            event.preventDefault();
            if(Elm.val() == ""){
                Elm.val(Elm.attr('name'));
            }
        });
    });

    </script>
1
C. Khalifa