Ergebnis 1 bis 22 von 22

Thema: Suchfunktion im Header

  1. #1
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard Suchfunktion im Header

    Wer kann mir eine funktionierende Suchfunktion (Headbereich) für contao 2.10 beschreiben. Ich habe bis jetzt nur Tutorials (hier im Forum oder google) zu contao 2.9 gefunden, teilweise ist das Suchfeld nur auf einer speziellen "Suchseite" und nicht im Headbereich, so dass das Suchergebnis auf der Suchseite ausgegeben wird und es funktioniert nicht immer oder fast nie. Weiss jemand Rat?

  2. #2
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Also im Prinzip hat sich da auch nichts zu 2.9 geändert. Von welchem Tutorial hast du denn Gebrauch gemacht? Dann kann ich versuchen anhand diesem etwaige Unterschiede zu erläutern.
    Kein Privat Support via PM.

  3. #3
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard

    http://de.contaowiki.org/Suchfunktion_integrieren

    Die Suchfunktion soll im Kopfbereich platziert und die Ausgabe der Suchergebnisse in der Hauptspalte ausgeben werden?
    1. Zunächst wird ein FE Modul vom Typ Suchmaschine erstellt.
    Im Modul habe ich auch weiter nichts definiert sondern nur abgespeichert. Weder Weiterleitung noch Referenzseite angeklickt!
    (Layout > Themes > Module > Neues Modul erstellen > Modultyp = Suchmaschine)
    2. Dann wird zuerst eine neue Seite in der Seitenstruktur angelegt, „Suche“ und unter den Experteneinstellungen die Option Im Menü verstecken angeklickt sowie die Option Veröffentlichung der Seite ausgewählt.
    Die Ausgabe der neuen Seite „Suche“ erfolgt in der Hauptspalte.
    3. Das Modul Suchmaschine wird in einen Artikel eingefügt.
    (Artikel „Suche“ > Artikel bearbeiten > Neues Inhaltselement > Elementtyp = Modul > Suchmaschine)
    4. Mit dem Formulargenerator wird ein einfaches Formular, z.B. Sucheingabe benannt, mit einem Textfeld und einem Absende-Button erstellt. (Inhalt > Formulargenerator > Neues Formular)
    o Experten-Einstellungen im Feld Formular-ID der Wert tl_search eingegeben und als Übertragungsmethode GET gewählt.
    o Als Weiterleitungsseite wird die Seite „Suche“ ausgewählt, die das Modul Suchmaschine beinhaltet und die Suchergebnisse anzeigt.
    5.Neues Formularfeld hinzugefügt, vom Typ Textfeld.
    Feldnamen für das Textfeld wird keywords benannt. Maximale Eingabelänge (100).
    Absendefläche hinzugefügt (‚Suche’)



    Für das Formular wird ein Modul (z.B. Sucheingabe benannt) erstellt, um es z.B. im Kopfbereich (#header) ausgeben zu können.
    (Layout > Themes > Module > Neues Modul erstellen > Modultyp = Formular > das Formular Sucheingabe ausgewählt.)
    5. Das Modul ‚Sucheingabe’ wird nun im Standard Seitenlayout eingefügt und diesem Modul wurde der Ausgabebereich Kopfzeile zugewiesen.
    (Layout > Themes > Seitenlayout > Seitenlayout bearbeiten)
    Somit kann die Sucheingabe in der Kopfzeile platziert und die Suchergebnisse in der Hauptspalte ausgeben werden.

    Hier das Ergebnis http://www.lombardo-communication.de....php/home.html

  4. #4
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard

    Ergänzung zu Punkt 1. Ich habe eine Referenz-("Pizzeria....") und Weiterleitungsseite ("Suche") hinzugefügt. Trotzdem funktioniert es nicht.

  5. #5
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard immer noch zu 1.

    ....Elemente pro Seite =3;
    Standardabfragetyp"Finde irgendein Wort" und "ungenaue Suche"
    Suchformularlayout "einfach".

  6. #6
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Schau mal in der Systemwartung ob überhaupt der Suchindex gebildet wurde, falls ja erneuere ihn doch.

    Auf der Weiterleitungsseite (Suche) hast du das Modul eingebunden? Lass mal die Referenzseite leer.
    Wenn du willst kannst du mir einen Backendaccount zur Verfügung stellen (per PM) und ich schau mir das ganze direkt in Contao an.
    Kein Privat Support via PM.

  7. #7
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Die Lösung des Problems:

    Es war eine Weiterleitungsseite in der Suchmaschine eingerichtet, genauere Information findet hat pmmueller in einem Blogartikel verfasst.
    Kein Privat Support via PM.

  8. #8
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard

    Vielen Dank für deine Hilfe, dann lag es also nur an diesem kleinen Fehler! Dann werde ich mal weitermachen und versuchen die SuFu zu positionieren. Wo finde ich eigentlich eine Übersicht der Bezeichnung der Elemente und Module wenn man Sie mit CSS ansprechen möchte. Die Suchfunktion im Header wird ja bsw. mit #header .mod_search geändert.

  9. #9
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Am einfachste installierst du dir Firebug für den Firefox. Dort kann du dann ganz bequem per Rechtsklick "Element untersuchen" herausfinden wie die ganzen Bezeichnungen lauten.
    Kein Privat Support via PM.

  10. #10
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard Firbeug installiert

    Wenn ich nun den Mauszeiger bsp. über dem Hauptmenü positioniere müsste ich css styles angezeigt bekommen. Das ist aber nicht der Fall.

  11. #11
    Gesperrt
    Registriert seit
    04.08.2011.
    Beiträge
    17

    Standard

    ok. Firefox musste neu gestartet werden.

  12. #12
    Contao-Fan Avatar von RainerG
    Registriert seit
    22.05.2011.
    Ort
    Hannover
    Beiträge
    848

    Standard

    In der Firebugiconleiste gibt es ein rechteckiges Symbol. Dieses anklicken, das Element aussuchen und mit Enter fixieren. Dann sollten rechts die relevanten CSS-Zeilen stehen.
    Rainer G. aus H.
    www.BunteReisebilder.de

  13. #13
    Contao-Fan
    Registriert seit
    02.08.2009.
    Ort
    Westfalen
    Beiträge
    639

    Frage

    Hallo zusammen,

    ich habe das Problem, dass die Suchfunktion bei mir in einer Seite eingebaut wurde, die eigentlich deutlich älter ist (vor 2.9). Nun läuft sie auf 3.5.24 und die Seitensuche funktioniert nicht mehr.
    Ich habe dabei ein Suchformular aus dem Formulargenerator als Modul im #header eingebunden (Anleitung habe ich damals hier von genommen: https://de.contaowiki.org/Suchfunktion_integrieren). Das keywords-Suchfeld leitet weiter auf die Seite Suche.html. Dort ist das Suchmodul eingebunden, welches keine Weiterleitungsseite mehr hat!

    Gebe ich nun einen Suchbegriff ein, erhalte ich nur eine weiße Seite. Zu sehen ist das Ganze hier: https://www.kgs-luettringhausen.de.

    Ich habe die wesentlichen Einstellungen als Screenshot angehängt. Ein gesondertes Template habe ich nicht definiert (nach wie vor "search_default").
    Wenn ich die Fehler einschalte, bekomme ich folgende Meldung:
    Code:
     Fatal error: Cannot use 'String' as class name as it is reserved in /www/htdocs/*****/system/modules/core/library/Contao/String.php on line 28
    Hat jemand von euich einen Tipp, woran es liegen könnte?

    Beste Grüße
    Alexander
    Angehängte Grafiken Angehängte Grafiken
    ‎"The basic drives of humans are few: to get enough food, to find shelter, and to keep debt off the balance sheet."

  14. #14
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Fatal error: Cannot use 'String' as class name
    Du benutzt PHP7 und die Stelle, die den Fehler verursacht verwendet die Klasse String (mittlerweile in Contao in StringUtil umbenannt). Wenn Du 3.5.24 verwendest, sollte das im Such-Modul bereits erledigt sein. Verwendest Du vielleicht ein angepasstes Template, in dem auf (eine Methode von) String zugegriffen wird? Oder ist auf der Suche-seite noch ein anderes Modul eingebaut, das diesen Fehler verursachen könnte? Was steht denn sonst noch im error.log?
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  15. #15
    Contao-Fan
    Registriert seit
    02.08.2009.
    Ort
    Westfalen
    Beiträge
    639

    Standard

    Servus fiedsch,

    das error.log sagt an dieser Stelle auch nur bei jedem Versuch folgendes:
    Code:
    [05-Feb-2017 11:47:37 Europe/Berlin] PHP Fatal error:  Cannot use 'String' as class name as it is reserved in /www/htdocs/*****/system/modules/core/library/Contao/String.php on line 28
    [05-Feb-2017 12:01:23 Europe/Berlin] PHP Fatal error:  Cannot use 'String' as class name as it is reserved in /www/htdocs/*****/system/modules/core/library/Contao/String.php on line 28
    [05-Feb-2017 12:10:04 Europe/Berlin] PHP Fatal error:  Cannot use 'String' as class name as it is reserved in /www/htdocs/*****/system/modules/core/library/Contao/String.php on line 28
    [05-Feb-2017 12:14:53 Europe/Berlin] PHP Fatal error:  Cannot use 'String' as class name as it is reserved in /www/htdocs/*****/system/modules/core/library/Contao/String.php on line 28
    Ich nutze das "search_default". Auf der Seite selbst sind nur eine Überschrift und das Modul eingebunden. Es verwendet auch dasselbe Seitenlayout wie alle weiteren Seiten, in diesen gibt es kein Modul, was eine String-Eingabe erwarten würde m. E.

    In der Datenbank kommen die Suchbegriffe auch an (also die Suchanfragen), die Ausgabe bleibt jedoch leider weiß.

    Beste Grüße
    Alexander
    ‎"The basic drives of humans are few: to get enough food, to find shelter, and to keep debt off the balance sheet."

  16. #16
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.081
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der Fehler passiert wohl bei der Ausgabe der Suchergebnisse, denn wenn kein Ergebnis gefunden wird, dann kommt auch keine weisse Seite, sondern die normals Ausgabe. Also würde ich empfehlen, die für die Ausgabe der Suchergebnisse benutzten Templates durchzugehen, ob da vielleicht ein altes oder geändertes Ausgabetemplate verwendet wird, das die String-Klase benutzt. Andernfalls mal mit dem Contao-Check die Installation prüfen.

  17. #17
    Contao-Fan
    Registriert seit
    02.08.2009.
    Ort
    Westfalen
    Beiträge
    639

    Standard

    Hi,

    das einzige Template, was auf dieser und nicht auf anderen Seiten benutzt wird, ist das standard "search_default" für das Suchmaschinenmodul. Hier der Inhalt:

    PHP-Code:
    <div class="<?= $this->class ?>">

      <h3><a href="<?= $this->href ?>" title="<?= $this->title ?>"><?= $this->link ?></a> <span class="relevance">[<?= $this->relevance ?>]</span></h3>

      <?php if ($this->context): ?>
        <p class="context"><?= $this->context ?></p>
      <?php endif; ?>

      <p class="url"><?= $this->url ?><span class="filesize"> - <?= $this->filesize ?> kB</span></p>

    </div>
    Beste Grüße
    Alexander
    ‎"The basic drives of humans are few: to get enough food, to find shelter, and to keep debt off the balance sheet."

  18. #18
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.081
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ok, wenn das benutzt wird, wird es daran wohl nicht liegen. Was sagt der Check (Installation prüfen)? Sind eventuell nicht PHP 7 kompatible Erweiterungen installiert (Probier es mal im abgesicherten Modus)? Irgendwo her muss die Benutzung der String-Klasse ja kommen.

  19. #19
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Code:
    [05-Feb-2017 11:47:37 Europe/Berlin] PHP Fatal error:  Cannot use 'String' as class name as it is reserved in /www/htdocs/*****/system/modules/core/library/Contao/String.php on line 28
    Die Klasse String sollte in Contao 3.5.24 gar nicht mehr vorhanden sein. Das ist wahrscheinlich ein Überrest, der nach einem Update geblieben ist.
    In system/modules/core/library/Contao/ sollte neben dem veralteten String.php auch die aktuelle StringUtil.php liegen die diese ersetzt.

    Wenn Du die String.php löscht -- die ohnehin "weg kann" -- bekommst Du vielleicht eine hilfreichere Fehlermeldung, die uns sagt, wer daran scheitert, sie zu verwenden. Die so gefundene Stelle wäre dann der Grund für Deine Fehler.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  20. #20
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.163
    Partner-ID
    10107

    Standard

    Durchsuche die gesamte Installation mal nach "String::" und "import('String')" und "import("String")".

  21. #21
    Contao-Fan
    Registriert seit
    02.08.2009.
    Ort
    Westfalen
    Beiträge
    639

    Daumen hoch

    Hallo zusammen,

    der Contao-Check ist ohne Probleme auf grün in allen Belangen für 3.x-Versionen.
    Als ersten Tipp habe ich danach die String.php gelöscht.
    Hier bekomme ich in der error.log nun folgende Meldung:
    Code:
    [06-Feb-2017 20:53:34 Europe/Berlin] PHP Fatal error: Uncaught exception 'Error' with message 'Class 'String' not found' thrown in /www/htdocs/*****/system/modules/core/library/Contao/System.php on line 140
    #0 /www/htdocs/*****/system/modules/om_searchkeys/modules/ModuleOmSearch.php(269): Contao\System->import('String')
    #1 /www/htdocs/*****/system/modules/core/modules/Module.php(287): ModuleOmSearch->compile()
    #2 /www/htdocs/*****/system/modules/core/modules/ModuleSearch.php(50): Contao\Module->generate()
    #3 /www/htdocs/*****/system/modules/om_searchkeys/modules/ModuleOmSearch.php(36): Contao\ModuleSearch->generate()
    #4 /www/htdocs/*****/system/modules/core/elements/ContentModule.php(59): ModuleOmSearch->generate()
    #5 /www/htdocs/*****/system/modules/core/library/Contao/Controller.php(484): Contao\ContentModule->generate()
    #6 /www/htdocs/*****/system/modules/core/modules/ModuleArticle.php(213): Contao\Controller::getContentElement(Object(Contao\ContentModel), 'main')
    #7 /www/htdocs/*****/system/modules/core/modules/Module.php(287): Contao\ModuleArticle->compile()
    #8 /www/htdocs/*****/system/modules/core/modules/ModuleArticle.php(67): Contao\Module->generate()
    #9 /www/htdocs/*****/system/modules/core/library/Contao/Controller.php(417): Contao\ModuleArticle->generate(false)
    #10 /www/htdocs/*****/system/modules/core/library/Contao/Controller.php(277): Contao\Controller::getArticle(Object(Contao\ArticleModel), false, false, 'main')
    #11 /www/htdocs/*****/system/modules/core/pages/PageRegular.php(133): Contao\Controller::getFrontendModule('0', 'main')
    #12 /www/htdocs/*****/system/modules/core/controllers/FrontendIndex.php(285): Contao\PageRegular->generate(Object(Contao\PageModel), true)
    #13 /www/htdocs/*****/index.php(20): Contao\FrontendIndex->run()
    #14 {main}
    Es lag also an der Erweiterung om_searchkeys. Ich hätte nicht gedacht, dass diese direkt beim Suchvorgang augerufen wird, eher, dass sie beim Aufruf im Backend die Statistik erst erzeugt. Na ja, diese habe ich deaktiviert und nun klappt die Suche.

    Vielen Dank an euch! Ohne den Hinweis auf die String-Problematik hätte ich den Fehler nicht gefunden.

    Viele Grüße
    Alexander
    ‎"The basic drives of humans are few: to get enough food, to find shelter, and to keep debt off the balance sheet."

  22. #22
    Contao-Nutzer
    Registriert seit
    10.08.2016.
    Ort
    München
    Beiträge
    38

    Standard

    Liebe Mitglieder,

    der Thread-Start von paulchenpanther ist ja schon einige Jahre her.

    Ich kämpfte mich gerade durch die Suchfunktion bei meiner ersten Contao-Seite. Leider muss ich sagen, dass bezüglich der Suchfunktion die Contao-Dokumentation und sonstige Literatur für Anfänger sehr schwierig und mittlerweile sehr verwirrend ist (Mal mit Weiterleitungsseite, mal ohne, mal gibt es eine individuelle Suchfunktion (Stichwort:Formulargenerator) mal wird die Standardvorgabe verwendet (aber dann Anzeige der Ergebnisse z. B. nicht im Hauptbereich, sondern im Kopfbereich, falls dort das Standard-Suchformular implimentiert wurde).

    Können wir noch einmal die individuelle Suchfunktion als Anleitung hier zusammenfassen, sodass andere Suchende einen aktuellen und guten Weg zum Ziel finden?
    - Die Standardsuche funktioniert wie von Contao in der Dokumentation vorgegeben.
    - Bei der individuellen Suche, Suchformular z. B. im Kopfbereich, Ergebnisse sollen aber im Hauptbereich angezeigt werden, klaffen - wie mir aktuell erscheint - einige, vielleicht veraltete Herangehensweisen oder Tipps zu Bugs oder zu behobenen Bugs, auseinander.

    Ich habe hier folgendes verfasst, ist mein Vorgehen richtig? Ich beobachte nämlich nach diesem Vorgehen folgendes Problem:
    Leider - ich weiß allerdings nicht ob dies Contao so vorsieht - erhalte ich, bei der Suchergebnisdarstellung nicht nur die Suchergebnisse, sondern zusätzlich noch einmal das Suchformular, welches ich im Kopfbereich bedient habe.
    Ich benötige bei dieser Lösung allerdings eine Weiterleitungsseite, ohne Weiterleitung, werden mir keine Ergebnisse angezeigt.


    Suchen

    Orientierungsquellen:
    https://de.contaowiki.org/Suchfunktion_integrieren
    https://www.pergamon-interactive.de/...in-contao.html
    https://www.contao-cms-tutorials.de/...-suchfunktion/
    https://community.contao.org/de/show...=suchfeld%20br

    Individuelle Suchfunktion
    Ziel: Suchfunktion im Kopf-/Header-Bereich
    Contao-Version: 3.5.24

    Vorgehen:

    1. Ein Modul vom Typ "Suchmaschine" anlegen.
    (Layout -> Themes -> Module -> Neues Modul erstellen)
    Titel: Bsp."Suchfunktion"
    Typ: Suchmaschine


    2. Das erstellte Modul "Suchfunktion" wird in einen neuen, noch zu erstellenden, Artikel eingefügt.
    (Layout -> Seitenstruktur -> Neue Seite anlegen)
    Titel: "Suchen";
    Nicht durchsuchen;
    Experteneinstellungen: Im Menü verstecken, Seite veröffentlichen
    Dann:
    (Inhalte -> Artikel bearbeiten -> Neues Element)
    Elementtyp: Modul -> "Suchfunktion" (wie benannt in Punkt 1) zuweisen.


    3. Weiterleitungsseite auf die das Suchergebnis angezeigt werden soll für Punkt 4 erstellen.
    (Layout->Seitenstruktur->Neue Seite)
    Titel: Suchergebnis
    Seitentyp: Reguläre Seite
    Nicht durchsuchen
    Im Menü verstecken
    Seite veröffentlichen
    Dem Artikel Suchergebnis das Modul Suchfunktion zuweisen, damit Suchergebnisse auf dieser Seite angezeigt werden können
    (Inhalte -> Artikel -> Artikel Suchergebnis bearbeiten -> Neues Element)
    Elementtyp: Modul
    Modul: "Suchfunktion"

    4. Mit dem Formulargenerator ein Formular "Sucheingabe" erstellen.
    (Inhalte -> Formulargenerator -> Neues Formular)
    Titel: Sucheingabe
    Weiterleitungsseite: Unter Punkt 3 erstellte Seite "Suchergebnis" auswählen.
    Tabellenloses Layout
    Übertragungsmethode: GET
    Formular-ID: tl_search (WICHTIG!)


    Elemente des Formulars hinzufügen -> Neues Feld:
    Feldtyp: Textfeld
    Feldname: keywords (WICHTIG!)
    Eingabeüberprüfung: Erweiterte alphanumerische Zeichen
    Absende-Schaltfläche hinzufügen; Titel "Suchen"

    4. Modul erstellen um Formular in Layoutbereichen der Seite ausgeben zu können.
    (Layout->Themes->Frontend-Module bearbeiten -> Neues Modul)
    Titel: "Sucheingabe"
    Modultyp: Formular -> "Sucheingabe"-Formular auswählen


    5. Modul Sucheingabe im Seitenlayout hinzufügen und Position (Kopfzeile etc.) zuweisen.
    (Layout-> Themes -> Seitenlayouts bearbeiten->)
    Modul "Sucheingabe" in gewünschten (Hier Kopfzeile) einbinden.


    6. Damit Suchformular in der Ergenisseite nicht mehr angezeigt wird.
    Der Suchergebnisseite (Layout->Seitenstruktur-> Bearbeiten der jeweiligen Seite-> Experten-Einstellungen-> CSS-Klasse)
    ein eigenes CSS-DIV zuweisen.
    Z.B. DIV-Name: suchergebnis
    Anschließend kann in einer z.B. eingebundenen CSS-Datei kann das Form-Element der Ergebnisseite angesprochen und ausgeblendet werden.

    #suchergebnis > .mod_search.block > form {
    display: none;
    }

    Geändert von seamuc (08.02.2017 um 07:33 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •