Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Anpasspare und "handlebare" Suche

Eingetragen von A. Winter (88)
am 03.02.2015 - 11:53 Uhr in
  • Module
  • Drupal 7.x

Hallo zusammen,

aktuell bin ich gerade dabei, die momentan verwendete Suche (Core search module) an einigen Punkten zu verbessern.
Mir ist bereits aufgefallen, dass die Standard-Suche nur begrenzt konfigurierbar ist.

Folgende Punkte sind mir bei der Suchfunktion sehr wichtig:

  • Verwendung sowohl auf einer Seite als auch mithilfe eines Blocks
  • Festlegung, welche Bereiche durchsucht werden sollen
  • Optimal auch für Seiten/Übersichten, die mittels View generiert werden
  • Möglichkeit zur Anpassung (Templates)
  • Anpassung des Suchpfades/der URL (statt node/search/begriff z. B. einfach suche/begriff)
  • Schöne/aussagekräftige Breadcrumbs. Aktuell leider folgendes: Startseite / Suche / Inhalt / Inhalt (als Theme verwende ich Zen)
  • Highlighting der Fundstellen

Wichtig, aber nicht zwingend erforderlich:

  • Ausgabe der Anzahl der Treffer
  • Highlighting der Fundstellen, sowohl im Title als auch im Body bzw. Teaser
  • Feinere Einstellung, wie genau durchsucht werden soll. Z. B., ob Teilbegriffe gefunden werden sollen oder nicht.
  • Verwendung von Placeholdern statt Labels

Mit der Standardsuche könnte ich fast leben, wenn es mir nur irgendwie möglich wäre, sowohl die URL als auch die Breadcrumbs anzupassen.

Ich habe bis jetzt schon folgende drei Möglichkeiten ausprobiert:

  1. Verwendung des Custom Search
  2. Erstellung einer Suchseite mit Views und dem Search API-Modul mit dieser Anleitung
  3. Anpassung der Core-Funktionalität über ein eigenes Modul, Anleitung gefunden auf dieser Seite

Custom Search: Damit hatte ich leider keinen Erfolg. Man konnte prinzipiell einige Einstellungen vornehmen, aber die Suche hat bei mir anschließend nicht mehr funktioniert (Die Seite "suche/suchbegriff" konnte nicht gefunden werden)

Views, Search API: Es sah anfangs ganz gut aus, aber mir war es ehrlich gesagt etwas zu "überdimensioniert" und kompliziert.

Eigenes Modul: Hiermit war es möglich, den Suchpfad/URL anzupassen und automatisch auch die Breadcrumbs, allerdings funktionierte die Suche auch nicht mehr, sobald ich den Pfad searchpath in suche geändert hatte.
Hier ist der Code, den ich innerhalb des Moduls verwende:

<?php

// Custom search path alias
function search_path_alias_form_search_form_alter(&$form, &$form_state, $form_id) {
  $form['#action'] = 'searchpath';
  $form_state['action'] = 'searchpath';
  $form['#submit'][] = '_search_path_alias_search_form_submit';
}

function search_path_alias_form_search_block_form_alter(&$form, &$form_state, $form_id) {
  $form['#submit'][] = '_search_path_alias_search_form_submit';
}

function _search_path_alias_search_form_submit(&$form, &$form_state) {
  $form_state['redirect'] = 'searchpath/'.$form_state['values']['search_block_form'];
}

// Add searchpath to available paths
function search_path_alias_menu_alter(&$items) {
  $path = 'searchpath';
  $items[$path] = array(
    'title' => t('Search'),
    'page callback' => 'search_view',
    'page arguments' => array('node', 1),
    'access callback' => '_search_menu_access',
    'access arguments' => array('node'),
    'type' => MENU_LOCAL_TASK,
    'file' => drupal_get_path('module', 'search') . '/search.pages.inc',
    'weight' => -10, //Don't know what is it for
  );
  $items["$path/%menu_tail"] = array(
    'title' => t('Search'),
    'load arguments' => array('%map', '%index'),
    'page callback' => 'search_view',
    'page arguments' => array('node', 1),
    'access callback' => '_search_menu_access',
    'access arguments' => array('node'),

    // The default local task points to its parent, but this item points to
    // where it should so it should not be changed.
    'type' => MENU_LOCAL_TASK,
    'file' => drupal_get_path('module', 'search') . '/search.pages.inc',
    'weight' => 0,

    // These tabs are not subtabs.
    'tab_root' => 'searchpath/%',

    // These tabs need to display at the same level.
    'tab_parent' => 'searchpath',
  );
}

Ist es denn bei Drupal so schwierig, eine vernünftige Suche zu realisieren, ohne immensen Mehraufwand in Kauf zu nehmen?

Ich habe leider auch auf drupalcenter noch keine gute passende Erklärung/Lösung gefunden.

Deshalb hoffe ich, dass mir jemand auf die Sprünge helfen kann :)

‹ [gelöst]Zugriff auf Pfad für interne Tools gewähren (Image API Optimize) Anpasspare und "handlebare" Suche ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Search API ist definitiv empfehlenswert

Eingetragen von C_Logemann (823)
am 03.02.2015 - 13:23 Uhr

Ich habe die Anforderungen nur kurz überflogen und sofort an Search API gedacht. Und dann das gelesen.

Zitat:

Views, Search API: Es sah anfangs ganz gut aus, aber mir war es ehrlich gesagt etwas zu "überdimensioniert" und kompliziert.

Das Argument wird dann auch gerne insgesamt eggen Drupal in Stellung gebracht. Flexibilität bringt aber logischerweise auch Komplexität mit.
Dazu kommt, daß die Core-Suche sehr rudimentär und nicht sehr performant ist. Langsamer ist dann nur eine Volltext-Suche direkt auf der SQL-Datenbank, wie man das mit Views alleine machen machen, obwohl man damit etwas Flexibilität bekommt. Die Search API-Lösung lässt sich dann auch mit Apache Solr erweitern, mit dem dann eine professionelle und äußerst performante Suche möglich wird.

# DrupalCenter-Moderator # Mitglied im Drupal e.V. # https://www.drupal.org/u/c_logemann
# CTO der Nodegard GmbH: CMS Security & Availability Management

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke Carsten für deinen

Eingetragen von A. Winter (88)
am 03.02.2015 - 17:30 Uhr

Danke Carsten für deinen Tipp.

Ich habe es mit hauptsächlich diesen beiden Anleitungen endlich geschafft, eine Suche zu bauen, so wie ich sie mir vorstelle und eigentlich auch so, wie man es gewohnt ist.

http://webwash.net/tutorials/add-keyword-highlighting-using-search-api-d...
http://webwash.net/tutorials/intro-search-api-part-1-how-create-search-p...

Sogar mit Highlighting und es wird nur in den "Bereichen" gesucht, die ich ausgewählt habe.

Jetzt bin ich nur noch EINEN Schritt davon entfernt, dass ich das Kapitel abhaken kann und glücklich bin.

Im Header soll es zusätzlich das Such-Eingabefeld geben, sodass man auf jeder Seite nach einem Begriff suchen kann - und nicht erst auf die spezielle Suchseite navigieren muss.
Eigentlich so, wie es auch bei der Core-Suche möglich ist, über einen Block, der auf die Suchergebnisse-Seite weiterleitet.

Also dachte ich, als Anzeige lediglich einen Block hinzufügen (alles außer des exposed Filters entfernen) und den Block wie gewohnt in eine Region schieben.
Aber wie ich feststellen musste, werden die Filter in einem "Views-Block" nicht angezeigt.

Also habe ich versucht, über die Better Exposed Filter den Filter "auszulagern", was prinzipiell auch funktioniert. Allerdings wird der Filterbereich dann NUR noch im entsprechenden Block
angezeigt und nicht mehr auf der eigentlichen "Views-Suche-Seite".

Ich brauche aber beides, die Suche-Seite MIT Eingabefeld (Filter) UND eben ein Suchfeld in einem Block, das ständig angezeigt wird.

Das muss doch irgendwie gehen.

BITTE BITTE helft mir bei diesem kleinen Schritt. Ich krieg' bald die Krise :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

"Hervorgehobenes Formular in Block"

Eingetragen von C_Logemann (823)
am 04.02.2015 - 00:04 Uhr

Für eine Views-Page kann ein exposed Filter (der hier ja auf einen Search API index sucht) auch als Block bereit gestellt werden.

Edit: OK, das läuft schon, aber das Problem ist der "doppelte" Block dann auf der eigentlichen Suchseite. Da gibt es garantiert auch eine Lösung für, nur müsste ich da jetzt auch nach suchen. Aber diese Suche kann unabhängig von Search API erfolgen. Es geht nur darum Exposed Filter "doppelt" im Einsatz zu haben.

# DrupalCenter-Moderator # Mitglied im Drupal e.V. # https://www.drupal.org/u/c_logemann
# CTO der Nodegard GmbH: CMS Security & Availability Management

  • Anmelden oder Registrieren um Kommentare zu schreiben

Multiblock

Eingetragen von C_Logemann (823)
am 04.02.2015 - 00:22 Uhr

Vllt. gibt es einen Views-Ansatz, der die Standard-Filter nicht komplett abschaltet, wenn sie in ein Block verschoben werden. Das würde mich auch interessieren.
Aber ohne so einen eleganteren Weg kann man das auch nur auf Block-Ebene betrachten, den wir wieder verwenden möchten. Da gibt es zwar ein paar Code-Snipits im Netz, weil das erstmal nicht vorgehen ist, zumindest noch in D7 (bei D8 weiß ich es nicht). Das Modul "Multiblock" macht dies auch mit dem Exposed-Filter Block, wie ich gerade mal rudimentär getestet habe.

# DrupalCenter-Moderator # Mitglied im Drupal e.V. # https://www.drupal.org/u/c_logemann
# CTO der Nodegard GmbH: CMS Security & Availability Management

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nochmal danke für das Feedback

Eingetragen von A. Winter (88)
am 04.02.2015 - 09:29 Uhr

Okay, also wie ich sehe, ist die Verwendung sowohl einer globalen Suche, als auch einer Suchseite so nicht wirklich vorgesehen.

Wobei ich es irgendwie seltsam finde, dass es für dieses Szenario keinen Ansatz bzw. keine elegante Lösung gibt.

Es ist doch eigentlich "normal", dass es auf einer größeren Seite ein Suchfeld gibt, das in irgendeiner Sidebar, im Header oder
Footer fest vorhanden und ständig zu verwenden ist?
Mich würde wirklich interessieren, wie das auf anderen Drupal-Seiten umgesetzt ist.

Ich habe vorübergehend eine Lösung gefunden, die nicht wirklich elegant und professionell ist, aber funktioniert:

Alles, was ich getan habe, ist, den HTML-Code des Suchfelds einfach zu kopieren und ihn in einem Block zu speichern.
Natürlich habe ich nicht benötigte Tags und IDs entfernt. Anschließend den Block in den Header schieben, fertig!
Starte ich nun darüber eine Suche, werde ich mittels der korrekten URL auf die Views-Seite geleitet und die Ergebnisse
werden wie gewohnt dargestellt.

Ich denke, ich kann erst mal mit meiner "Lösung" leben, obwohl ich lieber eine "Block-Suche" hätte, die mit der eigentlichen
Suche verknüpft ist.

Ach und, falls es jemanden interessiert, um diese Seite geht es, damit man sich ein besseres Bild machen kann:
http://landfrauen-rheinhessen.de.dedi2168.your-server.de/

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Drupal 8/9 SEO-Beratung/Coaching
  • Hilfe zu Views und Filter?
  • Variable aus dem inkludierten Partial Template auslesen
  • Probleme beim Versand von Mails via Drupal 9
  • Drupal 9: Wie kommt der Inhalt eines selbst erstellten Feldes in page-title.html.twig
  • Drupal DACH Meetup - Donnerstag 4. März 2021, 19 Uhr
  • Layout-Builder hängt
  • Sollte das Forum vielleicht lieber offline gehen?
  • Cronjob für Multisite
  • Drupal oder Symfony Web Entwickler (m/w/i*) in Hamburg
  • Problem mit Verschlüsselungsmodul Real AES: PHP-encryption library via Composer
  • [gelöst] nodeone Tutorials nicht mehr online?
Weiter

Neue Kommentare

  • manarak schrieb Ich konnte
    vor 1 Stunde 28 Minuten
  • Geschafft!
    vor 2 Stunden 43 Minuten
  • montviso schrieb Bist Du auf
    vor 3 Stunden 43 Minuten
  • bewerben Sie sich bitte wie
    vor 8 Stunden 5 Minuten
  • Dann per persönlicher
    vor 8 Stunden 39 Minuten
  • da es sich um eine
    vor 8 Stunden 47 Minuten
  • Danke AliGerne möchte ich
    vor 8 Stunden 47 Minuten
  • Danke für den Tipp! Ich werde
    vor 8 Stunden 51 Minuten
  • Um welche Seite gehts denn?
    vor 9 Stunden 1 Minute
  • Hallo, wir sind ein junges
    vor 1 Tag 4 Stunden

Statistik

Beiträge im Forum: 246072
Registrierte User: 18884

Neue User:

  • uniquename
  • xapizm
  • maklko

» Alle User anzeigen

User nach Punkten sortiert:
wla9015
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3917
ronald3831
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 6 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association