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

  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • 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
Weiter

Neue Kommentare

  • Verwende doch das Tag dafür,
    vor 2 Wochen 6 Tagen
  • Guckst du hier: step by step
    vor 2 Wochen 6 Tagen
  • Guckst du hier: step by step
    vor 2 Wochen 6 Tagen
  • Ich habe ja keine Angst vor
    vor 4 Wochen 1 Tag
  • Ist grundsätzlichmachbar – aber nichts für „einfach mal schnell“
    vor 4 Wochen 4 Tagen
  • Vielen Dank erst einmal, aber
    vor 4 Wochen 5 Tagen
  • Du hast die "Trusted host
    vor 4 Wochen 6 Tagen
  • Bitte genauer den aktuellen Lösungs-Ansatz beschreiben
    vor 6 Wochen 5 Tagen
  • Git und rsync sind die wichtigsten Werkzeuge
    vor 7 Wochen 1 Tag
  • Arrrrg. Nix Tabelle :-D /*
    vor 11 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250284
Registrierte User: 20508

Neue User:

  • Marvinkep
  • RandallFloop
  • Inga GuAph

» Alle User anzeigen

User nach Punkten sortiert:
wla9464
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 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