Suchfunktion - Autocomplete

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • mv_alex
    Contao-Fan
    • 19.06.2009
    • 681

    #31
    JavaScript Error

    Hallo zusammen,

    zuerst vielen Dank für diese Extension! Diese Funktionalität hab ich lange in TL vermisst.

    Ich hab allerdings kleinere Probleme damit, z.B. auf einer zweisprachigen Seite:

    http://www.bloodyrain.de/suche.html klappt
    http://www.bloodyrain.de/search_en.html klappt nicht

    Dabei ist es die gleiche Installation, Version etc. Habe auch das Modul neu angelegt, den Suchindex neu aufgebaut - jetzt weiß ich nicht weiter.

    Der IE8 meldet einen JS-Error, ist aber leider nicht sehr aussagekräftig.

    Dabei funktionieren sogar die Mini-Suchboxen, wo ich eher Probleme erwartet hätte.

    Also hab ich die Extension noch in einer anderen 2.7.2-Installation ausprobiert: http://www.sauberes-rommerskirchen.de/suche.html

    Und da rührt sich gar nichts, auch kein JS-Error.

    Bin etwas ratlos ...

    Vielleicht könnt Ihr ja mal einen Blick riskieren und mir sagen, was ich hier übersehen hab.

    Danke&Gruß Alex

    Kommentar

    • mv_alex
      Contao-Fan
      • 19.06.2009
      • 681

      #32
      Zitat von leo.unglaub
      In diesem BSP hast du den AC irgend wie tod konfiguriert, da er ein leeres Ergebnis zurückliefert. Bitte prüfe den Suchindex und dann lege das Modul neu an und lasse die experten Optionen mal auf Standard.
      Hab das Modul komplett neu angelegt und die Experteneinstellungen nicht angerührt. Auch der Suchindex ist neu aufgebaut. Kein Unterschied.

      Gruß Alex

      Kommentar

      • xchs
        Administrator
        • 19.06.2009
        • 14682

        #33
        Zitat von leo.unglaub
        Ich habe es bei mir probiert und konnte die Werte ohne Probleme in das Textfeld rein schreiben. Beachte bitte dass die Werte beim Speichern sortiert werden.
        Leo
        Ja, eingeben kann ich die Wörter auch (und diese werden auch sortiert), allerdings erhalte ich bei Eingabe von bspw. "über" ein "�ber" (jedenfalls lokal unter XAMPP)
        Zitat von leo.unglaub
        Das stimmt, denn intern wird der Wert in kleinschreibung weiterverarbeitet wird. Das liegt daran, dass TL den Suchindex generell nur kleingeschrieben anlegt. Daher wandle ich alle Eingaben in die Kleinschreibweiße um, damit die Treffer trotzdem gefunden werden.
        Leo
        Ja, das war mir schon bekannt, dass im TL-Index die Wörter nicht casesensitiv gespeichert werden und dass der AC Suchwörter in Kleinbuchstaben umwandelt. Mir geht es darum, dass in der Trefferliste im einen Fall der Treffer markiert wird und im anderen Fall nicht.
        Beispiel: Im TL-Index gibt es ein Wort "ajax", dann liefert mir eine AC-Suche nach "ajax" den Treffer und markiert mir den in der Trefferliste. Eine Suche nach "Ajax" zeigt mir dieselbe Trefferliste an, markiert mir allerdings nicht den betreffenden Suchtreffer.
        Zitat von leo.unglaub
        Persöhnliche Meinung: Ich verstehe so oder so nicht warum Leute im Internet bei der Suche groß und kleinschreibung mit angeben. Weder Google noch sonst irgend einen Dienst interessiert das.
        Leo
        Das ist schon klar, dass das für die Suchmaschinen irrelevant ist...
        Zitat von leo.unglaub
        Das macht die TL-Suche doch eh schon automatisch.
        Leo
        Mir geht es im speziellen um die vom EFG bereitgestellte Funktion "Formulardaten speichern", mit der ich dann im TL-Backend Einsicht in die Suchanfragen habe.
        Contao Community Administrator

        [Unterstützungsmöglichkeiten]
        sigpic

        Kommentar

        • xchs
          Administrator
          • 19.06.2009
          • 14682

          #34
          Hallo Leo,

          bin grad dabei, meine Seite etwas zu optimieren. Das PageSpeed Firebug-Addon meldet mir u.a. dass man die Anzahl der JavaScript-Dateien möglichst gering halten bzw. kombinieren sollte, um die nötigen Requests zu minimieren.
          Nachdem nun die AutoCompleter-Erweiterung gleich vier JavaScripts in die Seite einbindet, wollte ich Dich fragen, ob man diesbezüglich einige kombinieren könnte?
          Soweit ich bspw. gesehen habe, wird die Datei "AutoCompleter.Local.js" nicht unbedingt benötigt oder?
          Contao Community Administrator

          [Unterstützungsmöglichkeiten]
          sigpic

          Kommentar

          • minstyle
            Contao-Fan
            • 26.06.2009
            • 266

            #35
            Tolle Erweiterung.

            Allerdings habe ich da noch zwei Änderungswünsche:

            Ich möchte nicht, dass der Suchbutton "Suchen" heisst. Wäre schön, wenn man dies individuell anpassen könnte und man zudem ein "value"-Wert für das Suchfeld eingeben könnte.

            Auch eine Kombination mit der Erweiterung [cleardefault] Standard-Wert leeren wäre klasse...
            Zuletzt geändert von minstyle; 14.09.2009, 01:12.
            www.min-style.de

            Kommentar

            • xchs
              Administrator
              • 19.06.2009
              • 14682

              #36
              Hallo Leo,
              Zitat von leo.unglaub
              Aber ich kann mir nicht vorstellen, dass der AC die Seite sooo viel langsammer macht, da xtra und ich die .js-files ja nur reinladen, wenn auf einer Seite ein Suchmodul verfügbar ist. Des weiteren sollten die Files auch gecached werden. Ich habe es bie mir auch so laufen und meine Seiten sind in 0,4 bis 0,6 Sekunden geladen.
              Ich verwende den AC bei allen Suchmasken auf der Webseite d.h. bei der TL-Suchmaschine und auch als Suchmodul in der Seitenspalte der Webseite und von daher stehen die JavaScripts dann im Prinzip bei allen Seiten im Quelltext mit drin.
              Und nein, so viel langsamer macht der AC die Seite nun auch wieder nicht.
              Es meckert eben nur das PageSpeed-Modul, dass man da an der Optimierungsschraube noch etwas drehen könnte (indem man z.B. mehrere JS-Skripte in einem einzigen kombiniert usw.)
              Weißt Du vielleicht, ob die "Autocompleter.Local.js" unbedingt mitgeladen werden muss?
              Contao Community Administrator

              [Unterstützungsmöglichkeiten]
              sigpic

              Kommentar

              • xchs
                Administrator
                • 19.06.2009
                • 14682

                #37
                Hallo minstyle,
                Zitat von minstyle Beitrag anzeigen
                Allerdings habe ich da noch zwei Änderungswünsche:

                Ich möchte nicht, dass der Suchbutton "Suchen" heisst. Wäre schön, wenn man dies individuell anpassen könnte und man zudem ein "value"-Wert für das Suchfeld eingeben könnte.

                Auch eine Kombination mit der Erweiterung [cleardefault] Standard-Wert leeren wäre klasse...
                Habe ich beides gemacht - allerdings musste ich das "händisch" im Formulargenerator mit Hilfe des HTML-Feldtyps machen. So konnte ich als Absendebutton ein Lupe und auch die ClearDefault-Funktionalität mit einbinden.

                Funktioniert soweit ganz gut.
                Contao Community Administrator

                [Unterstützungsmöglichkeiten]
                sigpic

                Kommentar

                • minstyle
                  Contao-Fan
                  • 26.06.2009
                  • 266

                  #38
                  Zitat von xchs Beitrag anzeigen
                  Hallo minstyle,

                  Habe ich beides gemacht - allerdings musste ich das "händisch" im Formulargenerator mit Hilfe des HTML-Feldtyps machen. So konnte ich als Absendebutton ein Lupe und auch die ClearDefault-Funktionalität mit einbinden.

                  Funktioniert soweit ganz gut.
                  Hört sich gut an. Und wie genau hast du das realisiert?
                  www.min-style.de

                  Kommentar

                  • xchs
                    Administrator
                    • 19.06.2009
                    • 14682

                    #39
                    Zitat von minstyle Beitrag anzeigen
                    Hört sich gut an. Und wie genau hast du das realisiert?
                    ...da muss man ein wenig tricksen.

                    Ich hab's vorerst mal so gelöst (vielleicht nicht besonders elegant aber vorläufig funktioniert es):
                    1. AutoCompleter Suchmodul mit allen bevorzugten Einstellungen anlegen und als Klasse "invisible" zuweisen (Datensatz ID des Moduls merken - siehe weiter unten)
                    2. Wenn das Suchfeld (so wie bei mir) in der Seitenspalte der Webseite platziert werden soll, dann das AC Suchmodul im Seitenlayout an entsprechender Stelle einbinden.
                    3. Anschließend im Formulargenerator ein neues Formular mit Formular-ID "tl_search" anlegen und diesem einen Feldtyp vom Typ "HTML" hinzufügen. Dort dann den gewünschten Code für das Suchfeld bzw. den Absendebutton einfügen und - sofern gewünscht - auch die ClearDefault-Vorbelegungstexte eintragen. Ich hab das beispielsweise so gemacht:
                      HTML-Code:
                      <div class="type-text">
                      <input type="text" name="keywords" id="ac_keywords142" class="text cleardefault" title="Geben Sie hier Ihre Suchbegriffe ein" value="Suchbegriff(e) eingeben..." accesskey="f" style="" onblur="if (this.value=='') { this.value='Suchbegriff(e) eingeben...'; this.addClass('cleardefault'); }" onfocus="if (this.value=='Suchbegriff(e) eingeben...') { this.value=''; this.removeClass('cleardefault'); this.select(); }" />
                      </div>
                      <div class="type-button submit_container">
                      <input type="image" src="tl_files/images/search.png" class="submit" title="Suche starten" alt="Suche" value="Suche" />
                      </div>
                      Die ID (in meinem Bsp. "ac_keywords142") muss dabei natürlich an jene Deines AC-Suchmoduls angepasst werden.
                    4. Anschließend noch das Formular im Seitenlayout an der gewünschten Stelle einbinden und dann sollte eigentlich schon alles funktionieren.
                    Contao Community Administrator

                    [Unterstützungsmöglichkeiten]
                    sigpic

                    Kommentar

                    • minstyle
                      Contao-Fan
                      • 26.06.2009
                      • 266

                      #40
                      Hey Leo,

                      das mit dem Template war ein guter Tipp!

                      Woher kommt dieser value-Wert?

                      HTML-Code:
                      <input type="submit" class="submit" value="<?php echo $this->search; ?>" />
                      Also wo kann man den in Typolight eingeben? Oder muss ich diese Zeile händisch im Template abändern in:
                      HTML-Code:
                      <input type="submit" class="submit" value="go" />
                      @xchs
                      Vielen Dank. Ich habe das Template derzeit folgendermaßen abgeändert und so funktioniert es auch:

                      PHP-Code:
                      <!-- indexer::stop -->
                      <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
                      <?php if ($this->headline): ?>
                      <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
                      <?php endif; ?>
                      <form action="<?php echo $this->action; ?>" method="get">
                      <div class="formbody"><?php if ($this->id): ?> 
                      <input type="hidden" value="<?php echo $this->id; ?>" /><?php endif; ?> 
                      <input type="text" name="keywords" id="<?php echo $this->ac_scriptid; ?>" class="ac_keywords text cleardefault" value="Suchbegriff eingeben …" onblur="if (this.value=='') { this.value='Suchbegriff eingeben …'; this.addClass('cleardefault'); }" onfocus="if (this.value=='Suchbegriff eingeben …') { this.value=''; this.removeClass('cleardefault'); this.select(); }" />
                      <input type="submit" class="submit" value="<?php echo $this->search; ?>" />
                      </div>
                      </form>
                      <?php if ($this->header): ?>
                      <p class="header"><?php echo $this->header; ?> (<?php echo $this->duration; ?>)</p>
                      <?php endif; ?>
                      <?php echo $this->results . $this->pagination; ?>
                      </div>
                      <!-- indexer::continue -->
                      Zuletzt geändert von minstyle; 14.09.2009, 01:44.
                      www.min-style.de

                      Kommentar

                      • xchs
                        Administrator
                        • 19.06.2009
                        • 14682

                        #41
                        Der Grund, warum ich den Weg über den Formulargenerator gemacht habe, war u.a. auch der, da ich so z.T. von einigen Funktionen des EFG profitieren kann, so z.B. die Funktion "Formular-Daten speichern", welche mir dann im Backend in einem eigenen Modul die von den Benutzern eingegebenen Suchbegriffe mit Datum/Zeit/IP usw. anzeigt...
                        Contao Community Administrator

                        [Unterstützungsmöglichkeiten]
                        sigpic

                        Kommentar

                        • xchs
                          Administrator
                          • 19.06.2009
                          • 14682

                          #42
                          Zitat von leo.unglaub
                          Das macht TL aber eigentlich eh schon. *g*
                          ...aber nicht als eigenes Modul im Backend, so wie das der EFG macht oder?
                          Contao Community Administrator

                          [Unterstützungsmöglichkeiten]
                          sigpic

                          Kommentar

                          • minstyle
                            Contao-Fan
                            • 26.06.2009
                            • 266

                            #43
                            @Leo

                            kannst du mir denn bitte noch schreiben, woher dieser value-Wert genommen wird, dann gebe ich auch Ruhe!

                            Auch ist mir gerade noch ein Bug in deiner Erweiterung aufgefallen:

                            Ich kann nur max. 53 Begriffe in die "Ignorierliste" einfügen! Kannst du dies bitte noch fixen?
                            Zuletzt geändert von minstyle; 14.09.2009, 14:36.
                            www.min-style.de

                            Kommentar

                            • minstyle
                              Contao-Fan
                              • 26.06.2009
                              • 266

                              #44
                              push.

                              Sorry, ist meiner Meinung nach wichtig.
                              Ich muss unbedingt mehr Wörter in die Ignorierliste bekommen.
                              Ist denn sonst niemanden dieses Problem aufgefallen?
                              Zuletzt geändert von minstyle; 15.09.2009, 20:16.
                              www.min-style.de

                              Kommentar

                              • Stranger
                                Contao-Fan
                                • 20.06.2009
                                • 752

                                #45
                                Ist mir nicht aufgefallen, weil ich die DB-Abfrage geändert habe. In 99% der Fälle wird man sicher nicht auf tl_search_index sondern auf irgendeine individuelle Datenbank-Tabelle zugreifen (wollen). Dann haste auch nicht das Problem mit den Ignorewords.
                                Du willst dich bei mir bedanken?
                                Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

                                Contao-Anwender seit 2008
                                Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

                                Mein Unternehmen aus Blankenburg (Harz): Fast & Media

                                Kommentar

                                Lädt...