Moved_XH: Ausgabe auf eigene Fehlerseiten möglich? (gelöst)

Third Party Plugins to CMSimple - how to install, use and create plugins

Moderator: Tata

Michael_G
Posts: 185
Joined: Thu Feb 18, 2016 11:01 pm
Contact:

Moved_XH: Ausgabe auf eigene Fehlerseiten möglich? (gelöst)

Post by Michael_G » Fri Apr 15, 2022 8:17 pm

Hallo Christoph, hallo allerseits!

Als Moved_XH-Nutzer der ersten Stunde bin ich mit dessen Leistung sehr zufrieden. :D

Da ich inzwischen auch meine eigenen Fehlerseiten perfektioniert habe, würde ich aber gern die Ausgabe von Moved_XH für http-Status 404 und 410 auf meine eigenen Fehlerseiten lenken.

Im Moved-Verzeichnis /views fand ich gone.php und not-found.php, aber mangels PHP-Kenntnissen weiß ich nicht, wie der Code zu ändern ist.

Original not-found.php:

Code: Select all

<p><?=$this->text('desc_notfound', $url)?></p>
Ich vermute, dass ich hier ansetzen kann und „=this->text …” irgendwie ändern muss, damit stattdessen meine ?404 ausgegeben wird.

Meine eigenen Fehlerseiten haben passenden Header, z. B. die ?404 …

Code: Select all

<div>#cmsimple header('HTTP/1.0 404 Not Found');#</div>
… und funktionieren bei Aufrufen für nicht vorhandene URLs hervorragend.
Nur für verkappte CMSimple-URLs (techn. eigentlich Query-Strings) kann ich sie leider noch nicht einsetzen. :(

Das wäre ein Highlight und eine bessere Hilfe für Besucher, welche die gesuchte Seite nicht finden :)
Denn meine eigene Fehler-404-Seite enthält Tipps, nützliche Links und die Suchmaske im Design der Website.

BTW: Wünsche allen Forumsteilnehmern trotz allem (Pandemie/Ukraine etc.) möglichst angenehme Feiertage!
Last edited by Michael_G on Sat Apr 23, 2022 9:25 pm, edited 2 times in total.
Ciao
Michael

Let's Encrypt!

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by cmb » Sat Apr 16, 2022 1:32 pm

Michael_G wrote:
Fri Apr 15, 2022 8:17 pm
Da ich inzwischen auch meine eigenen Fehlerseiten perfektioniert habe, würde ich aber gern die Ausgabe von Moved_XH für http-Status 404 und 410 auf meine eigenen Fehlerseiten lenken.
Ich bin nicht sicher, ob eine Weiterleitung (zumindest bei 410) sinnvoll wäre. Statt dessen würde ich vorschlagen, dass du einfach den Inhalt einer versteckten Seite als newsbox() anzeigst.
Michael_G wrote:
Fri Apr 15, 2022 8:17 pm
Im Moved-Verzeichnis /views fand ich gone.php und not-found.php, aber mangels PHP-Kenntnissen weiß ich nicht, wie der Code zu ändern ist.
Das ginge tatsächlich in den view/ Dateien (aber aufgepasst, individuelle Anpassungen dieser Dateien gehen bei einem Update verloren; also Sicherheitskopien erstellen, und/oder die Anpassungen gut dokumentieren).
Michael_G wrote:
Fri Apr 15, 2022 8:17 pm
Original not-found.php:

Code: Select all

<p><?=$this->text('desc_notfound', $url)?></p>
Ich vermute, dass ich hier ansetzen kann und „=this->text …” irgendwie ändern muss, damit stattdessen meine ?404 ausgegeben wird.
Du könntest hier einfach den Inhalt einer versteckten Seite anzeigen:

Code: Select all

<?=newsbox("meine-404")?>
Diese Seite muss selbst keinen 404 Header erzeugen, obwohl es wohl auch kein Problem ist, wenn sie das tut (dann wird der von Moved_XH erzeugte Header eben überschrieben).
Michael_G wrote:
Fri Apr 15, 2022 8:17 pm
BTW: Wünsche allen Forumsteilnehmern trotz allem (Pandemie/Ukraine etc.) möglichst angenehme Feiertage!
Da kann ich mich nur anschließen.
Christoph M. Becker – Plugins for CMSimple_XH

Michael_G
Posts: 185
Joined: Thu Feb 18, 2016 11:01 pm
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by Michael_G » Sat Apr 16, 2022 7:24 pm

Hallo Christoph,

leider funktioniert es nicht (habe extra eine kleinere Version mit kürzeren Texten erstellt, damit diese in meine Newsbox1 passt).

Probiert habe ich es mit der not-found.php als

Code: Select all

<p><?=newsbox("404-hilfe")?></p>
und als

Code: Select all

<p><?=newsbox('404-hilfe')?></p>
sowie meinem Favoriten

Code: Select all

<p><?php if ($_SERVER['SERVER_NAME'] == 'deutsche-domain.info'):?>
	<?=newsbox('404-hilfe')?>
<?php elseif ($_SERVER['SERVER_NAME'] == 'englische-domain.info'):?>
	<?=newsbox('404-help')?>
<?php endif;?></p>
Es liegt auch nicht an den Anführungszeichen (egal ob doppelte oder einfache).

Allerdings wird der Text <h1>Seite nicht gefunden</h1> bzw. <h1>Page not found</h1> auch ausgegeben, wenn die Datei „not-found.php” gar nicht vorhanden ist (getestet durch Punkt-davor-setzen per FTP/FileZilla).
Habe jetzt gleich noch den ganzen Moved-Unterordner „views” fürs Plug-in unsichtbar gemacht – das ist dem Plug-in völlig egal, es funktioniert immer noch :? :o
(… und nein, den Cache lösche ich routinemäßig vor jedem neuen Versuch – immer)

Also greifen die PHP-Dateien im views-Ordner gar nicht, deshalb hatten Dein Vorschlag und meine Versuche nichts bewirkt. :(

Ist nicht dringend, wäre aber noch bedienungsfreundlicher.

Wie das Ergebnis als normale Seite mit URLs ohne Fragezeichen aussieht, kannst Du nach Aufruf meiner Website (siehe Profil) mit nicht vorhandener Seite anschauen.

Falls Dir (oder einem anderen Forumsteilnehmer) später noch etwas dazu einfällt, bitte gern posten. ;)
Ciao
Michael

Let's Encrypt!

Tata
Posts: 3586
Joined: Tue May 20, 2008 5:34 am
Location: Slovakia
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by Tata » Sun Apr 17, 2022 7:22 am

Ich hatte jahrelang die "404.html" am ServerRoot. Sie wurde durch htaccess gerufen mit

Code: Select all

ErrorDocument 404 /404.html
Jetzt habe ich es versucht eine nichtexistierende Unterseite direkt gerufen und dasehe ich, dass es nicht mehr funktioniert. Die Meldung kommt nur als Content auf.
CMSimple.sk
It's no shame to ask for an answer if all efforts failed.
But it's awful to ask without any effort to find the answer yourself.

olape
Posts: 2731
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by olape » Sun Apr 17, 2022 8:20 am

Tata wrote:
Sun Apr 17, 2022 7:22 am
Ich hatte jahrelang die "404.html" am ServerRoot. Sie wurde durch htaccess gerufen mit

Code: Select all

ErrorDocument 404 /404.html
Jetzt habe ich es versucht eine nichtexistierende Unterseite direkt gerufen und dasehe ich, dass es nicht mehr funktioniert. Die Meldung kommt nur als Content auf.
Doch, es funktioniert.
http://cmsimple.sk/blabla
Aber nur bei Aufrufen, die nicht das cms entgegen nimmt.
Bei allem, was XH selber entgegen nimmt, also i.e. http://cmsimple.sk/?blabla
musst du die Funktion von XH anpassen, bzw. eine eigene 404-Funktion in der userfunction.php erstellen.
Dazu gibt es im Wiki bestimmt eine Anleitung.
Gruß Olaf, Plugins for CMSimple_XH

Ich habe schon lange den Verdacht, dass so viele so eifrig auf Gender, Trans und Queer machen:
Weil sie für das Fachliche ganz einfach zu doof sind.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by frase » Sun Apr 17, 2022 8:29 am

olape wrote:
Sun Apr 17, 2022 8:20 am
Dazu gibt es im Wiki bestimmt eine Anleitung.
https://wiki.cmsimple-xh.org/doku.php/t ... error_page

Michael_G
Posts: 185
Joined: Thu Feb 18, 2016 11:01 pm
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by Michael_G » Sun Apr 17, 2022 8:07 pm

Hallo allerseits,

es geht doch nicht darum, nur eine eigene Fehlerstatusseite zu nutzen!
Dann hätte ich doch nicht Moved_XH installiert und seit Jahren in Benutzung …

Das habe ich doch schon lange gemacht, bevor Christoph sein geniales Plug-in Moved_XH programmiert hatte!

Und dass man den Aufruf für solche Seiten außerhalb CMSimple_XH in der .htaccess hinterlegt, ist Basiswissen.

Mir geht es nur darum, die Ausgabe von Moved_XH nach dessen Verarbeitung und Feststellung:
„Hoppla, da kann auch ich (das Plug-in Moved) nichts mehr retten”
… an meine eigene Fehlerseite zu übergeben.

Oder nochmal anders formuliert inkl. Arbeitsweise des Plug-ins):

Wenn eine Seite nicht gefunden wird, gibt es einen „Hook 404”, damit arbeitet Moved_XH, wird also aufgerufen und der Page Request mittels PHP verarbeitet und dabei im besten Fall eine erfolgreiche Weiterleitung erreicht = aktuelle Seite wird geladen = 200 OK.
Ist in der Datei moved.csv keine Weiterleitung für die vom Besucher eingetippte Webadresse hinterlegt, bleibt es bei Status 404.
Hier gibt Moved_XH dann nur einen zweizeiligen Text aus:
Zeile 1: <h1>Seite nicht gefunden</h2>
Zeile 2: Pardon. Die Seite "(Seite, welche der Besucher haben wollte)", nach der Sie suchen, existiert nicht.
(beide Zeilen Text je nach Hinterlegung in de.php, en.php etc.)

Ich wünsche mir, dass Moved_XH stattdessen dann (!) anstelle dieser zwei Textzeilen meine Fehlerseite 404 (oder eine extra für diesen Zweck separat zu bauende) ausliefert (Christoph schlug vor, es mit einer newsbox zu lösen und ich hatte meine 404 dafür kopiert und modifiziert, damit sie auch in einer kleinen Newsbox gut aussieht (halbe Bildschirmgröße, fhs-whitespace)).

Im Unterverzeichnis /views von Moved_XH gibt es u. a. not-found.php und ich dachte, dass diese Datei zur Modifikation geeignet sein könnte.
Klappte aber nicht.
Vielleicht geht es doch nur über die Datei NotFoundController.php im Unterverzeichnis /classes …?
Ciao
Michael

Let's Encrypt!

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by cmb » Mon Apr 18, 2022 10:54 am

Michael_G wrote:
Sun Apr 17, 2022 8:07 pm
Ich wünsche mir, dass Moved_XH stattdessen dann (!) anstelle dieser zwei Textzeilen meine Fehlerseite 404 (oder eine extra für diesen Zweck separat zu bauende) ausliefert (Christoph schlug vor, es mit einer newsbox zu lösen und ich hatte meine 404 dafür kopiert und modifiziert, damit sie auch in einer kleinen Newsbox gut aussieht (halbe Bildschirmgröße, fhs-whitespace)).

Im Unterverzeichnis /views von Moved_XH gibt es u. a. not-found.php und ich dachte, dass diese Datei zur Modifikation geeignet sein könnte.
Ich habe das gerade mal ausprobiert, und bei mir funktioniert es bei einer Standardinstallation von CMSimple_XH 1.7.5 nur mit den Plugins Pfw_XH und Moved_XH. Angepasst habe ich nur plugins/moved/views/not-found.php:

Code: Select all

<?=newsbox('News01')?>
Rufe ich dann http://localhost/xh175pfw/?gibtsnicht auf, wird "Page not found" angezeigt, und darunter der Inhalt der versteckten Seite News01. Das klappt natürlich nur, wenn ich nicht als Admin angemeldet bin.
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2963
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by lck » Mon Apr 18, 2022 6:06 pm

cmb wrote:
Mon Apr 18, 2022 10:54 am
Ich habe das gerade mal ausprobiert, und bei mir funktioniert es bei einer Standardinstallation von CMSimple_XH 1.7.5 nur mit den Plugins Pfw_XH und Moved_XH. Angepasst habe ich nur plugins/moved/views/not-found.php:
Kann ich bestätigen, funktioniert.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Michael_G
Posts: 185
Joined: Thu Feb 18, 2016 11:01 pm
Contact:

Re: Moved_XH: Eigene Fehlerseiten nutzen?

Post by Michael_G » Mon Apr 18, 2022 8:31 pm

Hallo cmb und lck,

vielen Dank für eure Mühe/Mithilfe!

Habe es jetzt nochmal probiert, aber ohne <p> und </p> und weil ich Morepagedata nutze bzw. News01 + 02 bereits für andere Zwecke belegt sind, als Seite meine Standard-404-Fehlerstatusseite verwendet.

Nur zur Info/besserem Verständnis: Ausschnitt aus Template fhs-whitespace (modifiziert):

Code: Select all

<div id="newsboxes2">
	<aside class="news">
		<?php if (isset($news01)) echo newsbox($news01); else echo newsbox('News01');?>
	</aside>
	<aside class="news">
		<?php if (isset($news02)) echo newsbox($news02); else echo newsbox('News02');?>
	</aside>
</div>
Aus der Originaldatei not-found.php:

Code: Select all

<p><?=$this->text('desc_notfound', $url)?></p>
wurde jetzt dank Christophs neuester Info:

Code: Select all

<?=newsbox('404')?>
Ohne <p>…</p> klappt die Modifikation sofort. News01 wäre sicher auch gelungen, ist aber bereits mit einem Newsbox-Text für die Fälle hinterlegt, wenn „unerwartete” Seiten angezeigt werden.

Fazit: es funktioniert besser als erwartet, denn mir war gar nicht bewusst, dass die Funktion newsbox('Seitenname') auch zum Aufruf einer normalgroßen Seite verwendet werden kann. Ich ging davon aus, dass es immer nur so groß und an der Stelle angezeigt wird, wo im Template diese „echten” Newsboxen vorgesehen sind. :lol:
Außerdem: da ich meine Standard-Fehlerseite verwenden kann, erscheint diese immer in der Sprachversion des Benutzers!

Also (fast) alles wie bei Aufruf einer nicht existierenden Adresse ohne Fragezeichen.
Nur fast: Der Text in <h1>-Überschrift von Moved_XH wird weiterhin angezeigt, also doppelte h1-Überschrift.

Aber das kann ich anpassen, entweder lasse ich diese Überschrift von Moved irgendwie unterdrücken (?) oder ich ändere die Überschrift meiner eigenen 404-Seite so, dass es für beide Ausgaben gut aussieht. :D

Nachtrag: Habe die Überschriften meiner eigenen Fehlerstatusseiten 404 und 410 passend gemacht. :-)
BTW: Unterdrücken durch Ausblenden der Zeile in der Datei NotFoundController.php brachte nichts, auch Änderungen an der Sprachdatei de.php waren wirkungslos.
Mit einer CSS-Klasse könnte man die doppelte h1-Überschrift vermutlich ausblenden, aber das ist mit Kanonen auf Spatzen schießen.

Fazit: war doch ganz einfach modifizierbar, aber auf die Lösung muss man erstmal kommen …
Sollte es irgendwann ein Update für Moved_XH geben, denke ich an die Modifikation. :-)
Ciao
Michael

Let's Encrypt!

Post Reply