Onepage_XH

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Onepage_XH - Versteckte und veröffentlichte Seiten

Post by cmb » Tue Dec 19, 2017 11:14 pm

lck wrote:Wie mir gerade erst auffiel, werden veröffentlichte versteckte Seiten (nicht in der Navigation anzeigen) im Content nicht angezeigt :? , das war doch schon mal möglich. Ich wollte das Kontaktformular, Impressum und Datenschutz am Ende des Contents ausgeben und nicht in der Hauptnavigation, sondern nur in einem extra Menü verlinken. Bug oder Feature?
Beim Onepage_XH Plugin ist das schon immer so – beim Onepage Addon war es wohl anders. Jedenfalls: Bug oder Feature? – das ist die Frage. Ich sehe ein, dass es sinnvoll sein könnte, wenn versteckte Seiten im Content ausgegeben würden. Allerdings fände ich es eigenartig, wenn die Seiten per Default dort auch angezeigt werden, obwohl nicht im Menü verlinkt. Ein display:none fände ich zunächst einmal perfekt – aber die Onepager sollten IMHO auch ohne JS benutzbar bleiben. Das geht aber per CSS wohl nur, wenn der Menüpunkt ein Vorfahre der versteckten Seite ist.

Man könnte versteckte Seiten aber auch anders einsetzen, zum Beispiel mit einer Verlinkung auf die Original-URL (mit ? statt #) und einem &print Suffix. Das sähe in einer Lightbox nicht schlecht aus, und wäre zumindest auch ohne JS zu nutzen. Eine andere Möglichkeit wäre, die versteckten Seiten per newsbox() im Template einzufügen. Dann könnte man eine passende HTML-Struktur erzeugen, so dass die versteckten Seiten per CSS sichtbar gemacht werden (eventuell als CSS Accordion).
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: Onepage_XH

Post by lck » Wed Dec 20, 2017 12:15 pm

cmb wrote:Beim Onepage_XH Plugin ist das schon immer so – beim Onepage Addon war es wohl anders.
Danke für die Info, Christoph. Dann reicht es eigentlich aus, die Einschränkung in der Hilfe-Datei zu dokumentieren.
cmb wrote:Man könnte versteckte Seiten aber auch anders einsetzen, zum Beispiel ...
In die Richtung wird es wohl hinauslaufen.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: Onepage_XH

Post by lck » Thu Dec 21, 2017 8:51 pm

OnePage_XH 1.0beta2 mit XH-Mailformular in einer Seite, eingefügt per {{{XH_mailform();}}}

Das Formular wird versendet und Erfolgsmeldung wird auch angezeigt "Die Nachricht wurde versendet".
Nach dem Versenden steht in der Browserzeile am Ende der URL ?#xh_mailform.

Bis hierher OK, scheint wie vor XH 1.7.

Klickt man nun auf einen anderen Link und dann wieder auf "Kontakt", sollte doch das Formular erneut erscheinen. Dem ist aber nicht so, es bleibt bei der Anzeige der Meldung "Die Nachricht wurde versendet" und auch in der Adresszeile steht weiterhin ?#xh_mailform.

Löscht man ?#xh_mailform oder nur das ? in der Adresszeile, oder den Browsercache, so erscheint das Formular wieder.
Ein Neuladen der Seite bringt nichts, ausser dass das Formular erneut versendet wird.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: Onepage_XH

Post by cmb » Thu Dec 21, 2017 10:49 pm

lck wrote:Das Formular wird versendet und Erfolgsmeldung wird auch angezeigt "Die Nachricht wurde versendet".
Nach dem Versenden steht in der Browserzeile am Ende der URL ?#xh_mailform.

Bis hierher OK, scheint wie vor XH 1.7.

Klickt man nun auf einen anderen Link und dann wieder auf "Kontakt", sollte doch das Formular erneut erscheinen. Dem ist aber nicht so, es bleibt bei der Anzeige der Meldung "Die Nachricht wurde versendet" und auch in der Adresszeile steht weiterhin ?#xh_mailform.
Hm, das kann ich nicht direkt reproduzieren. Nach dem Mailformversand steht bei mir auch ?#xh_mailform. Wähle ich dann aber eine andere Seite im Menü, dann ändert sich das entsprechend (z.B. zu #Start). Klicke ich dann wieder auf die Seite, auf der das Mailformular steht, dann wird mir dieses auch präsentiert. :?
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: Onepage_XH

Post by lck » Fri Dec 22, 2017 12:59 pm

cmb wrote:Hm, das kann ich nicht direkt reproduzieren.
Das dachte ich mir fast, danke für's testen!
Dann liegt es irgendwo bei mir, am Template, an der Installation (XH 1.7.1, jetzt 1.7.2), PHP-Version, jQuery-Skripte ... . Dann werde ich mich mal auf die Suche machen.
Wenn du Zeit hast, verrate mir bitte deine Testumgebung, welches Template usw., danke.
Last edited by lck on Fri Dec 22, 2017 2:17 pm, edited 1 time in total.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: Onepage_XH

Post by lck » Fri Dec 22, 2017 2:16 pm

Das Problem scheint gefunden, da beißt sich ein Template-spezifisches smoothscroll-script anscheinend mit OnePage js.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: Onepage_XH

Post by cmb » Fri Dec 22, 2017 4:17 pm

lck wrote:Wenn du Zeit hast, verrate mir bitte deine Testumgebung, welches Template usw., danke.
Das war CMSimple_XH 1.7.1, Onepage_XH 1.0beta2 und op_metro.
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: Onepage_XH

Post by lck » Tue Jan 01, 2019 6:40 pm

Stichwort: Doppelte ID (onepage_menu) bei zweifachem Aufruf des OnePage-Menüs.

Ich habe das mal so gelöst.
1.) onepage.js Zeile 27:
Nur den BUG gefixt. Das document.getElementById("onepage_menu") scheint in dem Fall gar nicht geändert werden müssen zu getElementsByClassName("onepage_menu") :?

2.) Li.php Zeile 44

Code: Select all

return preg_replace('/<ul class/', '<ul id="onepage_menu" class', $html, 1);
geändert zu

Code: Select all

return preg_replace('/<ul class="menulevel1"/', '<ul class="onepage_menu menulevel1"', $html, 1);
Funktioniert, aber ich würde lieber (um Updatesicher zu sein), die Änderung in der Li.php nicht dort machen, sondern in die template.htm integrieren. Geht das, wenn ja wie?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

manu
Posts: 1086
Joined: Wed Jun 04, 2008 12:05 pm
Location: St. Gallen - Schweiz
Contact:

Re: Onepage_XH

Post by manu » Tue Jan 01, 2019 9:17 pm

Klasse Onepage_Li ableiten in userfuncs.php oder eigenem plugin:

Code: Select all

class My_Li extends Onepage_Li
{ 
    function renderULStartTags($i)
    {
        global $l;

        $html = parent::renderULStartTags($i);
        if ($l[$i] == 1) {
            return preg_replace('/<ul class="menulevel1"/', '<ul class="onepage_menu menulevel1"', $html, 1);
        } else {
            return $html;
        }
    }
}
function my_li($ta, $st)
{
    $li = new My_Li();
    return $li->render($ta, $st);
}
und dann my_li() im template aufrufen.
Einfach so als Idee, alles ungetestet.

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

Re: Onepage_XH

Post by lck » Wed Jan 02, 2019 10:11 am

manu wrote:
Tue Jan 01, 2019 9:17 pm
Einfach so als Idee, alles ungetestet.
Danke Manu. Getestet, funktioniert leider nicht. Da bekomme ich eine weiße Seite und nur noch die Hintergrundfarbe und den Logotext der Menüleiste zu sehen.
Fehleranzeige im Quelltext (danach ist nix mehr, die Ausgabe wird abgebrochen):
Uncaught ArgumentCountError: Too few arguments to function my_li(), 0 passed in D:\xampp\htdocs\Portable_XH-2.0\www\testxh172\templates\op_tpl\template.htm on line 67 and exactly 2 expected in D:\xampp\htdocs\Portable_XH-2.0\www\testxh172\templates\op_tpl\template.htm:16<br />
Stack trace:<br />
#0 D:\xampp\htdocs\Portable_XH-2.0\www\testxh172\templates\op_tpl\template.htm(67): my_li()<br />
#1 D:\xampp\htdocs\Portable_XH-2.0\www\testxh172\cmsimple\cms.php(1344): include('D:\\xampp\\htdocs...')<br />
#2 D:\xampp\htdocs\Portable_XH-2.0\www\testxh172\index.php(6): include('D:\\xampp\\htdocs...')<br />
#3 {main}<br />
thrown in <b>D:\xampp\htdocs\Portable_XH-2.0\www\testxh172\templates\op_tpl\template.htm</b> on line <b>16</b>
Das Skript habe ich in der template.htm ganz am Anfang der Seite eingefügt zwischen <?php ... ?>, habe es aber auch per userfuncs.php und unter Xampp probiert. Gleiches Ergebnis :?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Post Reply