Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] Spezielle Fehlerseite, wenn unpublished Node auf 403-Fehler führt

Eingetragen von montviso (2189)
am 17.02.2015 - 16:56 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Wir importieren jede Nach 1000e von Produkt-Daten diverser Händler-Shops in Nodes.
Dabei werden die Nodes eines Händlers vorher auf Status = 0 gesetzt und nur wenn sie im CSV Import vorkommen, werden sie via Feeds wieder auf status=1 gesetzt.
So werden der Produktkataloge aktuell gehalten.
Die Einträge sollen nicht gelöscht werden, weil das Produkt evt. in einer Woche wieder in der CSV geliefert wird und die in Drupal hinterlegten Flags und Kommentare nicht verloren gehen sollen.

Nun ist es unschön, daß solche Seiten, die ja bei Google im Index stehen, auf einen 403-Fehler "Zugriff verweigert" führen.
Sinnvoller wäre eine individuelle Fehlerseite "Produkt leider momentan nicht verfügbar".

Wie könnte man das am Besten unterscheiden?
Gibt es ein Modul, daß eine spezielle Fehlerseite für unpublished Nodes pro Inhaltstyp zuläßt oder muß man sich da ein Modul schreiben.

Das Modul CustomError habe ich angesehen, scheint aber diese Unterscheidung nicht zu machen.

‹ [gelöst] PDOException: SQLSTATE[22P02] PostgreSQL [gelöst] Spezielle Fehlerseite, wenn unpublished Node auf 403-Fehler führt ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Regina,Kannst du das

Eingetragen von torfnase (1525)
am 17.02.2015 - 17:09 Uhr

Hallo Regina,
Kannst du das nicht einfach mit Rules lösen.

Auslöser: When content is viewed
Bedingung: Content is unpublished
Aktion: Redirect auf eine entsprechende Seite.

Sollte doch funktionieren oder ?

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Problem ist, daß mit der

Eingetragen von montviso (2189)
am 17.02.2015 - 17:23 Uhr

Das Problem ist, daß mit der Funktion drupal_access_denied() der Header schon sehr frühzeitig auf 403 gesetzt wird und damit alle Drupal eigenen Logiken gar nicht erst angesprochen werden.
So habe ich es zumindest gelesen.
Diesen Vorgang müßte man umgehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe das mal lokal bei

Eingetragen von torfnase (1525)
am 17.02.2015 - 17:34 Uhr

Ich habe das mal lokal bei mir getestet, da funktioniert es einwandfrei.

[Nachtrag]
Aaaahh ich war als Admin eingeloggt. Dann funktioniert es.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Tja, der Admin hat das

Eingetragen von montviso (2189)
am 17.02.2015 - 17:39 Uhr

Tja, der Admin hat das Problem sowieso nicht. ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Könnte man das nicht über

Eingetragen von Jenna (1883)
am 17.02.2015 - 18:43 Uhr

Könnte man das nicht über Views Kontextfilter regeln, Beitrags-ID wählen, dann:

Falls der Filterwert NICHT verfügbar ist

und dann kommt die Auswahl Vorgabewert bereitstellen?

Bin nur nicht sicher ob das bei 403 auch zutreffen kann.

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jenna, das hilft in dem Fall

Eingetragen von montviso (2189)
am 17.02.2015 - 18:52 Uhr

Jenna, das hilft in dem Fall nicht, weil ja die Aliase des Nodes (nicht der View) bei Google im Index sind.
Und vermutlich greift auch hier der 403-Mechanismus via Header bevor die View überhaupt tangiert wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mir scheint in _diesem_ Fall

Eingetragen von leda.ch (977)
am 18.02.2015 - 00:08 Uhr

Mir scheint in _diesem_ Fall die Methode mit "published"/"unpublished" eher ungeeignet.
Ich würde das über ein zusätzliches Feld im Node zu lösen versuchen. In Views simpel filterbar, und in der Detail-Darstellung über ein eigenes Node-Template unterschiedlich darstellbar.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Regina,ich habe jetzt

Eingetragen von torfnase (1525)
am 18.02.2015 - 14:15 Uhr

Hallo Regina,
ich habe jetzt doch mal eine Lösung mit Rules "ausbaldowert".

Auch auf die Gefahr hin, dass ich von Steffen wieder eines über den Rüssel bekomme, weil PHP in der Datenbank steht.
Ich weiß, dass das nicht gut ist :-(

hier also die Rule:
Event: System-Log-Eintrag wird erstellt.
Damit steht dir bei Conditions ein Array: $log_entry zur Verfügung

Das Array $log_entry enthält unter anderem die folgenden Felder:
$log_entry['type'] und $log_entry['message']

type ist z.B.: access denied und message ist die node, die unveröffentlicht ist, die also das "access denied" ausgelöst hat, z.B. node/8

Du weißt jetzt also, dass der Aufruf der Seite einen access denied Eintrag ausgelöst hat und welche Node davon betroffen ist.

Dann kannst du entweder die Action (Seitenweiterleitung) ausführen oder eben nicht.
Wenn ich das richtig verstanden haben, soll ja diese spezielle 403 Seite nur bei bestimmten Nodes gezeigt werden, aber wie schon gesagt, du hast ja die NID.

Ich habe das auch lokal bei mir getestet und es funktioniert gut bei mir.

Gruß
Berthold

  • Anmelden oder Registrieren um Kommentare zu schreiben

@Leda, das mit dem

Eingetragen von montviso (2189)
am 18.02.2015 - 07:01 Uhr

@Leda, das mit dem Alternativ-Feld habe ich auch im Hinterkopf als Ersatzlösung.
Soweit habe ich damals einfach nicht gedacht.
Falls Bertholds Lösung nicht funzt, werde ich das wohl machen müssen.

@Berthold, boahh...soviel Mühe, danke!
Das hört sich sehr gut an. Ich werde es probieren und berichten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jaaa...funktioniert wunderbar

Eingetragen von montviso (2189)
am 18.02.2015 - 07:54 Uhr

Jaaa...funktioniert wunderbar mit der Rule.
Danke noch mal Berthold, evt. Anschiss bitte an mich weiter leiten. ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • lstin tombent homophonic wikke
  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
Weiter

Neue Kommentare

  • Rollen
    vor 3 Tagen 3 Stunden
  • Inzwischen sind wir bei
    vor 1 Woche 6 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 12 Stunden
  • melde mich mal wieder, da ich
    vor 9 Wochen 4 Tagen
  • Hey danke
    vor 9 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 1 Tag
  • In der entsprechenden View
    vor 11 Wochen 1 Tag

Statistik

Beiträge im Forum: 250238
Registrierte User: 20467

Neue User:

  • StevenEness
  • FoxPiola
  • ocvk2810

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association