Ergebnis 1 bis 18 von 18

Thema: Ausschluss von Filter-URLs vom Contao Suchindex

  1. #1
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard Ausschluss von Filter-URLs vom Contao Suchindex

    Nachdem die Sitemap so aussieht, wie ich es möchte, geht es jetzt noch um den Suchindex innerhalb von Contao.

    Nachdem ich ihn neu aufgebaut habe, sieht er weitgehend so aus, wie ich es mir wünsche (einige Links sind Filterlinks im Text und so direkt im Suchindex), aber dann kommen die ganzen Filter-URLs dazu, sobald ein Filter im Frontend angewendet wird.

    Ich habe dies hier im Handbuch gefunden:

    https://metamodels.readthedocs.io/de...m-search-index

    Ich habe diesen Codeblock ganz nach oben ins Template eingefügt, damit keine URL aufgenommen wird, die auch Filter enthält. Sie werden dennoch alle aufgenommen. Wo muss dieser Block hin, wenn ich alle Filter-URLs nicht im Suchindex möchte. Oder funktioniert der in 5.3 nicht mehr?
    Viele Grüße
    Shania

  2. #2
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    guck mal in den Quelltext (ganz unten) der Seite, bei aktivem Filter - ist den JSON-LD-Daten der Parameter noSearch auf true?

  3. #3
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard

    Du meinst das hier?

    Code:
    {
        "@context": "https:\/\/schema.contao.org",
        "@graph": [
            {
                "@type": "Page",
                "fePreview": false,
                "groups": [],
                "noSearch": false,
                "pageId": 198,
                "protected": false,
                "title": "Farbschläge und die Geschlechtsbestimmung der Nymphensittiche"
            }
        ]
    }
    Viele Grüße
    Shania

  4. #4
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    das sollte dann so aussehen

    Code:
    "noSearch": true,
    etwas verwirrend mit der doppelten Verneinung

    Wird der Code von Dir auch ausgeführt? mal debuggt?

  5. #5
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard

    Im Debugmodus gibt es keine Fehler mehr. Die hatte ich beseitigt.

    Was kann ich sonst tun?
    Viele Grüße
    Shania

  6. #6
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
     if (!empty($this->filterParams)) {
         global 
    $objPage;
         
    $objPage->noSearch true;
    dump('Moin');
     } 

  7. #7
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard

    Sobald ein Filter gesetzt ist, steht "Moin" auf der Seite.
    Viele Grüße
    Shania

  8. #8
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    o.k.! ... hmmm müsste man mal recherchieren, ob $objPage->noSearch noch geht in 5

  9. #9
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    o.k.! ... hmmm müsste man mal recherchieren, ob $objPage->noSearch noch geht in 5
    hab das bei mir auch mal getestet - das zeigt keine Wirkung mehr

    wie gesagt, mal hier im Forum oder auf Slack fragen, wie man das manipulieren kann - das ist ja eine von MM unabhängige Frage

  10. #10
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard

    Hach, das ist blöd .

    Sluck kenne ich bisher gar nicht. Aber ich frage dann später mal an anderer Stelle im Forum. Danke fürs testen und bestätigen. So war ich wenigstens nicht zu blöd .
    Viele Grüße
    Shania

  11. #11
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    Hier findest Du den "Einladungslink" zum Contao Workspace auf Slack

    https://contao.org/de/netzwerk

    vorher musst Du Dir m.E. einen Account erstellt haben bei Slack

  12. #12
    Contao-Nutzer
    Registriert seit
    16.06.2017.
    Beiträge
    70

    Standard

    noSearch wurde in Contao 5.6 mit searchIndexer ersetzt.

    https://github.com/contao/contao/pull/8252

    Beim Upgrade von einer älteren Contao-Version auf 5.6 werden die alten Datenbankfelder "noSearch" mit dem Wert "1" (="true") automatisch migriert werden zu "searchIndexer"->"never_index".

    In den JSON-LD-Daten (im HTML-Quelltext am Seitenende) ist dies unter "searchIndexer" enthalten, falls auf der jeweiligen Seite im Backend ein Wert ausgewählt/eingestellt wurde.

    Der Wert im JSON-LD kann leer sein, oder "never_index" oder "always_index" und sollte (um bei eurem Beispiel oben zu bleiben) mit $objEvent->searchIndexer abgefragt werden können.

  13. #13
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    es geht ja nicht darum den abzufragen, sondern um den Wert in einem Template zu setzen!

  14. #14
    Contao-Nutzer
    Registriert seit
    16.06.2017.
    Beiträge
    70

    Standard

    Sorry, das meinte ich (setzen, nicht abfragen). Müsstet ihr ggf. ausprobieren, ob es vielleicht funktioniert, wenn ihr euren Beispielcode entsprechend anpasst, also z.B.

    PHP-Code:
    if (!empty($this->filterParams)) {
      global 
    $objPage;
      
    $objPage->searchIndexer="never_index";
      
    dump('Moin');
     } 
    Da es das searchIndexer-Feld aber erst ab Contao 5.6 gibt und es hier um Contao 5.3 geht, dürfte das im aktuellen Fall aber vermutlich alles irrelevant sein (nochmals sorry, hatte ich eben erst beim zweiten Lesen gesehen. Das mit dem searchIndexer kam mir nur beim ersten Lesen direkt in den Sinn, weil es um das noSearch-Feld ging und die Frage, ob es da Änderungen in Contao 5 gab...

    Sobald ein Filter gesetzt ist, steht "Moin" auf der Seite.
    Ich denke das ist an sich richtig – sollte nicht genau das bei dem Beispielcode passieren? (Wenn ein Filter gesetzt ist, gib "Moin" zurück. )

    Zum Prüfen, ob der JSON-LD-Wert geändert wurde, müsstest du den Dump auskommentieren und dann in der Ausgabe (ohne Dump) im Quelltext die JSON-LD-Daten ansehen. Sollte dann entweder "noSearch"->"true" oder (ab Contao 5.6 dann) "searchIndexer"->"never_index" enthalten.

  15. #15
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von contaotester Beitrag anzeigen
    Ich denke das ist an sich richtig – sollte nicht genau das bei dem Beispielcode passieren? (Wenn ein Filter gesetzt ist, gib "Moin" zurück. ).
    das ist korrekt!


    und wie geschrieben, das

    PHP-Code:
    global $objPage;
    $objPage->noSearch true
    hat in C 5.3 (leider) keine Wirkung mehr im JSON-LD

  16. #16
    Wandelndes Contao-Lexikon Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    10.436
    User beschenken
    Wunschliste

    Standard

    das könnte gehen
    PHP-Code:

    use Contao\CoreBundle\Routing\ResponseContext\JsonLd\ContaoPageSchema;
    use 
    Contao\CoreBundle\Routing\ResponseContext\JsonLd\JsonLdManager;
    use 
    Contao\System;

    $responseContext System::getContainer()->get('contao.routing.response_context_accessor')->getResponseContext();
    if (
    $responseContext?->has(JsonLdManager::class)) {
        
    /** @var JsonLdManager $jsonLdManager */
        
    $jsonLdManager $responseContext->get(JsonLdManager::class);
        
    $schema        =
            
    $jsonLdManager->getGraphForSchema(JsonLdManager::SCHEMA_CONTAO)->get(ContaoPageSchema::class);
        
    $schema->setNoSearch(true);


  17. #17
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard

    Danke zonky! Das muss auch in das Listentemplate nach ganz oben oder wo soll ich das einfügen? Dann teste ich es direkt .
    Viele Grüße
    Shania

  18. #18
    Contao-Fan
    Registriert seit
    20.06.2009.
    Beiträge
    632

    Standard

    Ich habe es in eins der Listentemplates eingefügt und es scheint zu funktionieren. Ich werde es mit den anderen Templates auch noch testen und melde mich nochmal dazu. Das kann allerdings wieder etwas dauern, da ich gleich erst noch anderes zu erledigen habe.

    Danke!
    Viele Grüße
    Shania

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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