Die Contao suche und Catalog einträge

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • benfolds
    Contao-Nutzer
    • 06.08.2010
    • 87

    #1

    Die Contao suche und Catalog einträge

    Hallo,
    ich hab ein problem beim durchsuchen meiner Seite. Dazu verwende ich ganz normal die Contao Suchmaschine.
    Auf der Seite ist der Catalog eingebunden zur Pflege von Ansprechpartnern für verschiedene Regionen. Also eine Tabelle "Regionen" und eine Tabelle "Ansprechpartner" mit select. Die Regionen gebe ich auf einer Karte aus (Catalog Filter), die generieren dann den link zur Region mit den Ansprechpartnern ("/ansprechpartner/region/Belgien.html"). Funktioniert soweit perfekt.
    Leider werden Diese Seiten nicht in den Contao Suchindex aufgenommen. Wenn ich die Tabelle "Regionen" auf suchbar stelle, dann indexiert er den link "/ansprechpartner/item/Belgien.html" -> falsch, ich will aber auch nicht die einzelnen Ansprechpartner im Suchindex haben sondern die Seite, wie sie im Frontend zu sehen ist.

    Danke schonmal für die Hilfe!!
    benfolds
  • MacKP
    Contao-Yoda
    • 15.06.2009
    • 13315

    #2
    Hallo benfolds,
    hmm ich glaub ich hab da erst mal keine Lösung für dein Problem.
    DIe Suche funktioniert ja so, das die Weiterleitungsseite vom Katalog selber als Zielseite genommen wird. Nur dadurch ist es überhaupt möglich die Daten an die Suche zu übergeben, da der Katalog ja keine echten Seiten hat.
    Eventuell wirst du mit der Suche die über den Catalog-Filter erstellbar ist glücklicher, da die ja direkt die Listen Filtert und sich so das aussehen wieder nach belieben anpassen lässt.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

    Kommentar

    • xtra
      Maintainer
      • 02.07.2009
      • 2007

      #3
      Wenn es nur um die Aufnahme der Links in den Suchindex geht, da kannst du dir mit einer kleinen Extension behelfen, welche den getSearchablePages HOOK benutzt und dort alle "Regionalseiten" liefert.
      Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

      Kommentar

      • benfolds
        Contao-Nutzer
        • 06.08.2010
        • 87

        #4
        damit schreibe ich also meine erste Erweiterung

        Nur habe ich ein Problem mit der Datenbankabfrage. Das sieht jetzt so aus:

        PHP-Code:
        class SearchHook extends Frontend
        {
            
        public function getRegions($arrPages, $intRoot=0)
        {
            $objRegions = $this->Database->prepare("SELECT * FROM tfx_regionen WHERE active = 1")
                                              ->execute(1);
            foreach($regions as $region){
                $searchindex[] = "ansprechpartner/region/" .$region . ".html";
            }
            
            return array_merge($arrPages, $searchindex);
            
        }
        
        } 
        
        Seiten manuell in den Suchindex einzufügen klappt gut, nur wenn ich die DB-Abfrage einbaue findet Contao gar keine Seiten mehr. Die Abfrage wird auch im Debugmodus nicht angezeigt..

        Kommentar

        • benfolds
          Contao-Nutzer
          • 06.08.2010
          • 87

          #5
          Achso: ich weiss, ich muss die links im Suchindex absolut angeben...

          Kommentar

          • xtra
            Maintainer
            • 02.07.2009
            • 2007

            #6
            PHP-Code:
            class SearchHook extends Frontend
            {
            public function getRegions($arrPages, $intRoot=0)
            {
                $objRegions = $this->Database->prepare("SELECT * FROM tfx_regionen WHERE active = 1")
                                                  ->execute();
                $objParent = $this->Database->prepare("SELECT * FROM tl_page WHERE alias='ansprechpartner'")
                                                  ->limit(1)
                                                  ->execute();
                $domain = $this->Environment->base;
                $strUrl = $domain . $this->generateFrontendUrl($objParent->row(), 'region/%s');
                $searchindex=array();
                while($objRegions->next()){
                    $searchindex[] = sprintf($strUrl, $objRegions->name);
                }
                return array_merge($arrPages, $searchindex);
            }
            } 
            
            sollte dich in die richtige Richtung schubsen.

            ggf. statt "->name" ein anderes Feld, weiss ja nicht wie dein DB Feld der regionsaliase heisst.
            Zuletzt geändert von xtra; 28.07.2011, 11:23.
            Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

            Kommentar

            • benfolds
              Contao-Nutzer
              • 06.08.2010
              • 87

              #7
              ja perfekt!

              Das ist so ein moment, da macht Contao richtig Spass (was es meistens tut!)

              Danke für die Hilfe!

              Kommentar

              Lädt...