H2OnePagers

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Holger
Site Admin
Posts: 3470
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany

Re: H2OnePagers

Post by Holger » Sun Nov 06, 2016 10:41 pm

Ja Frank, schaut wieder klasse aus!

Und schön, dass du mal anchorific.js testest. Und da kommt auch schon wieder ein Problem zu Tage, das ich inzwischen schon wieder vergessen hatte:
Anchorific.js blendet das Menü erst vollständig ein, wenn man etwas nach unten scrollt.
Das schaut unschön aus, finde ich. Lässt sich die erste Ebene des Menüs, und nur die erste, nicht von Anfang an per CSS einblenden? Online, mit den Entwicklertools, lässt sich das nicht so leicht testen, da man an mehreren Stellen schrauben muss. Aber ihr seid eh die besseren CSS-Gurus...

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

Re: H2OnePagers

Post by frase » Sun Nov 06, 2016 11:19 pm

Holger wrote:Anchorific.js blendet das Menü erst vollständig ein, wenn man etwas nach unten scrollt.
Das schaut unschön aus, finde ich.
Hm, gerade das gefällt mir ganz gut, wenn beim Erstaufruf nur der Seitentitel rechts steht.
Vielleicht bei mir Betriebsblindheit?
Oder doch nur verschiedene Geschmäcker?
Mal sehen, ob noch andere meckern. Momentan weiß ich sowieso nicht, wie ich das ändern sollte.
Vielleicht schaffe ich es, morgen wenigstens die Rohversion zum Download einzustellen.

Noch was ganz anderes:
Ich habe mir im Firefox gerade die Seiten im Lesemodus von der Frauenstimme vorlesen lassen. Das ist toll, an der Betonung kann man ganz gut Kommafehler erkennen und wenn sie Buchstaben verschluckt, weißt du, dass du dich vertippt hast.
Die ersetz beinahe einen Lektor.

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

Re: H2OnePagers

Post by frase » Mon Nov 07, 2016 10:51 am

Es gibt jetzt eine "Rohversion" als Download zum Testen.

Feedback erwünscht.

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

Re: H2OnePagers

Post by lck » Mon Nov 07, 2016 10:53 am

lck wrote: bei einer Viewportbreite zwischen 971 - 986px wird die Content-Seite schwarz und ist ohne Inhalt.
Ursache scheint das script.min.js zu sein, das die Höhe von .nav_horizontal berechnet und das falsch im Bereich von 971px bis 986px.

Bei einem media screen von 970px (height wird richtig berechnet):
<nav class="nav_horizontal" style="height: 827px; top: 80px;">

Bei einem media screen von 971px (height wird falsch berechnet):
<nav class="nav_horizontal" style="height: 1413px; top: 80px;">
height sollte eigentlich 40px sein.

Ab einen media screen von 987px (height wird richtig berechnet):
<nav class="nav_horizontal" style="height: 40px; top: 0px;">

script.min.js

Code: Select all

jQuery(document).ready(function($){mobNavHeight=function(){if($(window).innerWidth()<970){var b=$('#balken1').innerHeight();var h=$('#header').innerHeight();var m=$('#wrapper').height();var gesamtHoehe=(m);var myTop=(h);$('.nav_horizontal').css({'height':gesamtHoehe+'px','top':myTop+"px"});$(".nav_horizontal div ul li ul").css({'display':'block'});}else{$('.nav_horizontal').css({'height':'40px','top':"0px"});$('.nav_horizontal').show();$('.nav_horizontal ul li ul').css({'display':'none'});}}
mobNavHeight();$(window).resize(function(){mobNavHeight();});$('.burger').click(function(){$('.nav_horizontal').fadeToggle();});$(".nav_horizontal div>ul>li:not(:last-child)>a").append('<div class="line"></div>');$(".nav_horizontal div>ul>li:not(:last-child)> span").append('<div class="line"></div>');$(".nav_horizontal div ul li").hover(function(){if($(window).innerWidth()>971){$(this).find('a').addClass('hover');$(this).find("ul:first").show();}},function(){if($(window).innerWidth()>971){$(this).parent().find("ul").hide();$(this).find('a').removeClass('hover');}});$('.btnMap').click(function(e){e.preventDefault();xID=$(this).attr("data-mapID");$('#'+xID).toggle();});$('.print').click(function(){window.print();});});
„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: H2OnePagers

Post by lck » Mon Nov 07, 2016 11:21 am

Holger wrote:Anchorific.js blendet das Menü erst vollständig ein, wenn man etwas nach unten scrollt.
Das schaut unschön aus, finde ich. Lässt sich die erste Ebene des Menüs, und nur die erste, nicht von Anfang an per CSS einblenden?
Dazu müsste in anchorific.css Zeile 26 eigentlich nur
.anchorific li ul {...}
zu
.anchorific li ul ul {...}
geändert werden.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

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

Re: H2OnePagers

Post by frase » Mon Nov 07, 2016 11:28 am

lck wrote:Dazu müsste in anchorific.css Zeile 26 eigentlich nur
...
geändert werden.
Habe ich mal umgesetzt.
Besser?

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

Re: H2OnePagers

Post by lck » Mon Nov 07, 2016 11:49 am

frase wrote:Besser?
Das ist Geschmackssache und über den lässt sich ja bekanntlich nict streiten. Auf alle Fälle eine Option.

EDIT:
Das mit dem Chaos hatte ich auch gerade, habs aber durchschaut. Gut das man testet, auch mit unterschiedlichem Inhalt.
Deine Dokumentation finde ich sehr lobenswert!
„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: H2OnePagers

Post by cmb » Mon Nov 07, 2016 1:43 pm

Design und Beschreibung sind sehr gelungen, Frank!

Ich habe auf die Schnelle mal einen Fallback programmiert, falls JS nicht verfügbar ist. Dazu einfach das folgende Script als fhs-anchorific/php/subnav.php speichern:

Code: Select all

<?php

require_once $pth['folder']['classes'] . 'Menu.php';

/**
 * The li class.
 *
 * PHP version 5
 *
 * @category  CMSimple_XH
 * @package   Onepage
 * @author    Christoph M. Becker <cmbecker69@gmx.de>
 * @copyright 2015-2016 Christoph M. Becker <http://3-magi.net>
 * @license   http://www.gnu.org/licenses/gpl-3.0.en.html GNU GPLv3
 * @link      http://3-magi.net/?CMSimple_XH/Onepage_XH
 */

/**
 * The li class.
 *
 * @category CMSimple_XH
 * @package  Onepage
 * @author   Christoph M. Becker <cmbecker69@gmx.de>
 * @license  http://www.gnu.org/licenses/gpl-3.0.en.html GNU GPLv3
 * @link     http://3-magi.net/?CMSimple_XH/Onepage_XH
 */
class Onepage_Li extends XH_Li
{
    /**
     * Renders a menu item.
     *
     * @param int $i The current item index.
     *
     * @return string (X)HTML.
     *
     * @global array The headings of the pages.
     */
    function renderMenuItem($i)
    {
        global $h;

        return $this->renderAnchorStartTag($i) . $h[$this->ta[$i]] . '</a>';
    }

    /**
     * Renders an anchor start tag.
     *
     * @param int $i The index of the current item.
     *
     * @return string (X)HTML.
     *
     * @access protected
     */
    function renderAnchorStartTag($i)
    {
        $x = $this->shallOpenInNewWindow($i) ? '" target="_blank' : '';
        return $this->anchor($this->ta[$i], $x);
    }

    /**
     * Returns an opening a tag as link to a page.
     *
     * @param int    $i The page index.
     * @param string $x Arbitrary appendix of the URL.
     *
     * @global string The script name.
     * @global array  The URLs of the pages.
     * @global bool   Whether we're in edit mode.
     * @global array  The configuration of the plugins.
     *
     * @return string The (X)HTML.
     */
    protected function anchor($i, $x)
    {
        global $sn, $su, $u, $edit, $plugin_cf;

        $html = '<a href="' . $sn;
        if (XH_ADM && !$edit) {
            $html .= '?' . $u[$i];
        }
        if (isset($u[$i])) {
            $html .= '?' . $su . '#'. uenc($u[$i]);
        }
        $html .= $x . '">';
        return $html;
    }
}

function subnav()
{
    global $s, $cl, $l, $cf;

    $pages = array();
    if ($s > -1) {
        $tl = $l[$s] + 1 + $cf['menu']['levelcatch'];
        for ($i = $s + 1; $i < $cl; $i++) {
            if ($l[$i] <= $l[$s]) {
                break;
            }
            if ($l[$i] <= $tl) {
                if (!hide($i)) {
                    $pages[] = $i;
                }
            }
            //if ($l[$i] < $tl) {
                //    $tl = $l[$i];
            //}
        }
    }

    $li = new Onepage_Li();
    return $li->render($pages, 2, 3);
} 
Und dann im Template die "subnav" innerhalb von #SecNav ausgeben:

Code: Select all

<nav id="SecNav" class="anchorific">'. subnav() . '</nav>';
Damit die von PHP erzeugte Navigation nicht sichtbar ist, wenn JS verfügbar ist, einfach #SecNav leeren:

Code: Select all

<script type="text/javascript">
$("#SecNav").empty(); // diese Zeile einfügen
// individuelle Konfiguration 'anchorific.js'   
Da ist noch jede Menge Verbesserungspotential, aber vielleicht schon mal ein nützlicher Anfang.
frase wrote:gehört nun in das "fürs" ein Apostroph oder nicht?
Laut Duden wird es ohne Apostroph geschrieben.
website wrote:Versuche Deppenapostrophe zu vermeiden.
Versuche ich auch; die sind allerdings mittlerweile laut Duden erlaubt.
Christoph M. Becker – Plugins for CMSimple_XH

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

Re: H2OnePagers

Post by frase » Mon Nov 07, 2016 1:57 pm

Uuuuups!
Bitte um etwas Zeit, zum Ausprobieren.

Wahnsinn, was du da mal schnell aus dem Ärmel schüttelst.
Ich vermute, dass du da wieder viel aus dem Onepager verwenden konntest. Oder?
cmb wrote:Laut Duden wird es ohne Apostroph geschrieben.
Da ich das meiste was ich so fabriziere, auch die Rechtschreibung, aus dem Bauch heraus tue, werde ich in manchen Fällen wohl gegen Regeln verstoßen.
Anders wäre "Wissen" nötig - bei mir eine sehr knappe Ware.

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

Re: H2OnePagers

Post by frase » Mon Nov 07, 2016 3:35 pm

Hi Christoph,
habe nun mal probiert ...
cmb wrote:Dazu einfach das folgende Script als fhs-anchorific/php/subnav.php speichern !und inkludieren oder requirieren!:
Hat natürlich ersteinmal einen fatalen Error gegeben, da ich nicht daran dachte.

Soweit, so gut. Nach dem nötigen "require_once" kam dann kein Fehler mehr.

Ohne JS erscheint nun die "Subnav" wie gewünscht - mit Haken.
Die Links linken auf die einzelnen Unterseiten -> nicht gewünscht.
Aber egal, es linkt sowieso nichts. In der Adresszeile ändert sich zwar die Adresse, ich kann aber nicht mal ein Zuckeln des Browsers feststellen bei dem Versuch dorthin zu linken.
Beispiel Adressleiste nach Klick auf Besonderheiten: ...?Anwendung#Anwendung%2FBesonderheiten

Sei es, wie es sei. Eine Überlegung:
Ich habe ja schon ein vollständiges (klassisches) Menü (komplett aufgeklappt) im Bearbeitungsmodus.
Das wird eben nur bei "XH_ADM && $edit" angezeigt - else - das anchorific-Menü (das hilft ja nicht beim Bearbeiten).
Könnte ich nicht genau an selber Stelle einen <noscript>-Bereich mit dem klassischen Submenü anlegen?

Dann könnte sich das noJS-Fallback erübrigen?
Ich versuchs einfach mal.
Meldung später.

Edit:
Es ist später.
Es klappt zwar mit <noscript>, aber die Links führen doch wieder zu den Einzelseiten. Klardoch!
Ich glaube, die jetzige (online) Version mit Hinweis auf die Sitemap tut es doch auch?
Dort habe ich die Level <1 sowieso ausgeblendet.

Post Reply