Page 1 of 1

OnePage-Seite - Weiterleitung, Umleitung

Posted: Wed Aug 19, 2015 2:59 pm
by lck
1.) Ist eine Weiterleitung von einem Menü-Link der Seite zu einem anderen und auch andere Umleitungen, in OnePage-Seiten nicht möglich?
(Umleitungen auf andere Sprachen und externe Ziele, funktionieren nur in der Admin-Vorschau)
Normaler Aufruf der Seite #Weiterleitung, zeigt die Seite selber an.

Beispiel:
Der Menü-Link "Weiterleitung" soll zu "Impressum" umgeleitet werden.
Im Seiten-Parameter ist "Seite umleiten?" mit #Impressum eingetragen, so wärs korrekt bei OnePage-Seiten.
(BTW: die Schnellauswahl ist hier auch nur bedingt nutzbar, weil der Link mit ?Impressum eingetragen wird)

Im Admin Vorschau-Mode, beim Klick auf die "Weiterleitung" erscheint, dann im Content der Seite:
Impressum"); exit; #
und der Debug-Modus meldet:
Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in D:\xampp\htdocs\cmsimplexh.momadu.de\demos\op_test\cmsimple\functions.php(184) : eval()'d code on line 1
Anscheinend mag er das # Symbol nicht. Bug?


2.) Klickt man nach dem Einloggen auf de Seiten-Manager, so erscheint ein Pop-up mit dem Hinweis
(*Das passiert aber nicht immer. Konnte bisher noch nicht herausfinden wann genau.):
Die Seite auf localhost meldet:

Kollision mit einer Erweiterung, die ihre eigene jQuery Bibliothek einbindet,
festgestellt (siehe Handbuch, Abschnitt "Beschränkungen").
und da steht unter jQuery:
Pagemanager_XH könnte in Installationen mit jQuery abhängigen Plugins/Addons/Vorlagen, die jQuery4CMSimple nicht verwenden, sondern ihre eigene jQuery Bibliothek importieren, nicht funktionieren. Dieses Problem wird nicht behoben werden (es ist ohnehin nicht möglich, es für alle Fälle zu beheben), weil allen Entwicklern geraten wird, ausschließlich jQuery4CMSimple in Verbindung mit ihrem jQuery basierten Code für CMSimple_XH zu verwenden. Daher sollten diejenigen Erweiterungen aktualisiert werden, die sich nicht daran halten!
* Autoload ist in meiner Jquery–Konfiguration aktiviert.
System: CMSimple_XH 1.6.7 unter Xampp

Re: OnePage-Seite - Weiterleitung, Umleitung

Posted: Wed Aug 19, 2015 4:54 pm
by Gert
Ludwig wrote:Anscheinend mag er das # Symbol nicht.
So isses.

Die Weiterleitung per page_params erfolgt durch CMSimple Scripting, das wird durch das "#" vorzeitig abgebrochen und der Rest der php Zeile ausgegeben. Weiterleitungen per page_params auf Anker oder id's funktionieren also nicht. Erstaunlich, dass das noch keinem aufgefallen ist.

In der nächsten CMSimple Version wird das funktionieren, was Dir aber nichts nützen wird, da Deine OnePager ohne _XH nicht funktionieren.

Trotzdem vielen Dank für die Entdeckung dieses Problems ;-)

Gert

Re: OnePage-Seite - Weiterleitung, Umleitung

Posted: Wed Aug 19, 2015 5:49 pm
by cmb
Gert wrote:Die Weiterleitung per page_params erfolgt durch CMSimple Scripting, das wird durch das "#" vorzeitig abgebrochen und der Rest der php Zeile ausgegeben. Weiterleitungen per page_params auf Anker oder id's funktionieren also nicht. Erstaunlich, dass das noch keinem aufgefallen ist.
Stimmt; danke für die Analyse. :)

Quick-Fix für XH 1.6.7: plugins/page_params/index.php Zeile 58:

Code: Select all

            $c[$index] = '#CMSimple header("Location:'. preg_quote($location, '#') .'"); exit; #';
Vermutlich gibt es noch mehr solcher potentieller Fehler – ein diesbezügliches Code-Review würde nicht schaden.

Den Rest schau ich mir später noch an, Ludwig.

Re: OnePage-Seite - Weiterleitung, Umleitung

Posted: Wed Aug 19, 2015 6:51 pm
by lck
cmb wrote:Quick-Fix für XH 1.6.7: plugins/page_params/index.php Zeile 58:

Code: Select all

            $c[$index] = '#CMSimple header("Location:'. preg_quote($location, '#') .'"); exit; #'; 
Nein, keine Änderung. Weiterleitung funktioniert nicht.

Re: OnePage-Seite - Weiterleitung, Umleitung

Posted: Wed Aug 19, 2015 9:43 pm
by Gert
Ludwig wrote:Nein, keine Änderung. Weiterleitung funktioniert nicht.
Warum sollte sie auch? Ist ja immer noch CMSimple Scripting, und wird immer noch vom "#" vorzeitig beendet.

Nimm einfach diese Zeile:

Code: Select all

header("Location:" . $location); exit; 
Gert

Re: OnePage-Seite - Weiterleitung, Umleitung

Posted: Wed Aug 19, 2015 10:27 pm
by cmb
Ludwig wrote:Nein, keine Änderung. Weiterleitung funktioniert nicht.
Mein Schnellschuss war auch unsinnig. (Nicht aber unbedingt, dass mal ein Code-Review bzgl. notwendiger preg_quotes() durchgeführt werden sollte.) So sollte es aber für "normale" CMSimple(_XH) Sites funktionieren (zumindest als Quick-Fix):

Code: Select all

            $c[$index] = '#CMSimple header("Location:'. str_replace('#', '".chr(35)."', $location) .'"); exit; #';
Gert wrote:Nimm einfach diese Zeile:

Code: Select all

header("Location:" . $location); exit;
Das dürfte Probleme geben, wenn die Startseite weiter geleitet wird. Ich vermute, dass Martin deshalb den Umweg über CMSimple-Scripting gewählt hat. Ob eine Weiterleitung der Startseite sinnvoll und unterstützenswert ist, ist allerdings fraglich.
Ludwig wrote:Ist eine Weiterleitung von einem Menü-Link der Seite zu einem anderen und auch andere Umweitungen, in OnePage-Seiten nicht möglich?
Nein, leider nicht. Das liegt, wie Gert bereits erwähnt hat, daran, dass die Weiterleitung als CMSimple-Skripting in den Seiteninhalt geschrieben wird, wenn gerade die weiterzuleitende Seite ausgewählt wurde. Bei Onepage-Sites wird das aber nicht gemacht (und das ist auch gut so, denn sonst würde bei jeder "Seite" weiter geleitet).

Es wäre allerdings denkbar, dass Onepage_XH solche Weiterleitungs-Informationen aus den Page-Data ausliest, und sie per JS umsetzt; ist JS allerdings nicht verfügbar, dann klappt das natürlich nicht. Ich hab's mal als Issue vermerkt.
Ludwig wrote:Klickt man nach dem Einloggen auf de Seiten-Manager, so erscheint ein Pop-up mit dem Hinweis
(*Das passiert aber nicht immer. Konnte bisher noch nicht herausfinden wann genau.):
Wenn es wieder passiert, dann schick mir bitte einfach mal den HTML-Quelltext der Seite (STRG+U).

Re: OnePage-Seite - Weiterleitung, Umleitung

Posted: Thu Aug 20, 2015 11:41 am
by lck
Besten Dank für eure Hilfe.

Die Weiterleitung zu Ankern/ID's funktioniert jetzt in "normalen" CMSimple_XH Sites.

Zusammenfassend kan man sagen, bei OnePage-Sites funktionieren nicht:
• Weiterleitungen zu Ankern, Id's (interne Ziele), externe Ziele und Zweitsprachen die per:
   - page_params aufgerufen werden (Seite > Seite umleiten?)
   - #CMSimple header('Location:...'); # in einer Content-Seite aufgerufen werden

Was funktioniert:
• Weiterleitung von einer Content-Seite zur einer anderen per "href="..." z.B.:

Code: Select all

<a title="Kontakt" href="#Kontakt">Kontakt</a> 
Christoph, ich glaube das könnte/sollte auch in der Hilfedatei zu OnePage vermerkt werden.