it-swarm.com.de

Wie stelle ich meine Ansichten so ein, dass ein 404 mit Global: Null unter Kontextfiltern zurückgegeben wird?

Standard Drupal Verhalten besteht darin, alle Argumente zu übergeben, unabhängig davon, ob sie angefordert wurden oder nicht. Manchmal ist dieses Verhalten erwünscht. Ich muss jedoch eine 404 für alles andere als eine Abfragezeichenfolge zurückgeben.

Beispiel für das Problem http://drupal.org/project/modules http://drupal.org/project/modules/google.com <- Dies sollte eine 404 zurückgeben; 200 gegeben. Doppelte Inhaltsstrafe!

Das Modul Ansichten 404 geht davon aus, dass standardmäßig keine Argumente übergeben werden sollen. Es gibt jedoch keine D7-Version des Moduls.

Auf der Projektseite heißt es jedoch, dass 404s für Ansichten auch durch Setzen von Global: Null unter Argumente erreicht werden können.

Natürlich sind "Argumente" in D7 jetzt "Kontextfilter", aber ich bin mir nicht sicher, welche Einstellungen zum Kontextfilter "Global: null" hinzugefügt werden sollen, um das gewünschte Ergebnis zu erzielen.

Jede Hilfe wäre dankbar.

14
Nigel Waters

In Kontextfilter wählen Sie Hinzufügen; Wählen Sie im angezeigten Dialogfeld Global: Null.

screenshot

Klicken Sie auf Kontextfilter hinzufügen und konfigurieren.

Aktivieren Sie im folgenden Dialogfeld im Feldsatz Wenn der Filterwert verfügbar ist oder ein Standardwert angegeben istValidierungskriterien angeben und wählen Sie - Grundlegende Validierung - für Validator und wählen Sie "Seite nicht gefunden" anzeigen für Aktion, die ausgeführt werden soll, wenn der Filterwert nicht validiert wird. Aktivieren Sie in der Feldmenge MehrGrundlegende Validierung fehlschlagen, wenn ein Argument angegeben wird.

screenshot

Ich habe es mit einer von mir erstellten "Artikel" -Ansicht getestet und es funktioniert.

screenshot

screenshot

Das Argument "Global: Null" muss das letzte sein. Wenn Sie beispielsweise eine Benutzer-ID benötigen, fügen Sie diese zuerst als Argument und dann das Argument "Global: Null" hinzu.

Ich habe die Ansicht "Artikel" geändert, um eine Benutzer-ID als Argument zu akzeptieren, mit der die Liste der Artikelknoten gefiltert wird. Die Ansicht funktioniert weiterhin, da sie kein zusätzliches Argument akzeptiert.

screenshot

screenshot

22
kiamlaluno

Sie können dies mit sofort einsatzbereiten Funktionen tun. In jeder Kontextfiltereinstellung wird ein Kontrollkästchen "Validierungskriterien angeben" angezeigt. Aktivieren Sie dieses Kontrollkästchen, um weitere Einstellungen anzuzeigen.

Anschließend können Sie basierend auf Ihren Ansichtsbedingungen "Validator" auswählen. Wenn Sie eine benutzerdefinierte Validierung wünschen, wählen Sie den PHP-Code. Geben Sie True oder False im PHP-Code basierend auf Ihren Validierungsbedingungen zurück.

Wählen Sie abschließend "Aktion ausführen" als Anzeigezugriff verweigert! Siehe unten Screenshot für nid Kontextfilter.

enter image description here

1
Anil Sagar