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 - 17: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 - 18: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 - 18: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 - 18: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 - 18: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 - 19: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 - 19: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 - 01: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 - 15: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 - 08: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 - 08: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

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 3 Wochen 3 Tagen
  • Textboxen mit Tabelle
    vor 3 Wochen 3 Tagen
  • Du sollst ja auch keine
    vor 3 Wochen 3 Tagen
  • Theme
    vor 3 Wochen 3 Tagen
  • Welches Theme benutzt du
    vor 3 Wochen 3 Tagen
  • Mit Responsive Raster hatte
    vor 3 Wochen 4 Tagen
  • Hallo Alex,um das Häkchen
    vor 3 Wochen 4 Tagen
  • Modul view_unpublished
    vor 3 Wochen 6 Tagen
  • Modul "override node options"
    vor 3 Wochen 6 Tagen
  • Im Grunde ist dass ein
    vor 4 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20483

Neue User:

  • Aathivithyah
  • Aoirhic
  • Stevebok

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 10 Gäste online.

Benutzer online

  • DrupSheep

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