XH_Li - Zwei unterschiedliche Menü-Ausgaben im Template

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
lck
Posts: 1667
Joined: Wed Mar 23, 2011 11:43 am
Contact:

XH_Li - Zwei unterschiedliche Menü-Ausgaben im Template

Post by lck » Sat Jan 30, 2016 10:10 pm

Hallo zusammen,

ich habe in der template.htm zwei Menü-Ausgaben per XH_Li angelegt - class MyLi und class LckLi, die ich folgendermaßen verwende:
MyLi für den Viewport > 499px
LckLi für den Viewport < 499px (da ich hier die Ergänzung ddm_link + ddm_opener nicht brauche und es auch Probleme damit geben würde - aber dass die Links anklickbar bleiben schon)

Hier mal der Code mit der Bitte zu prüfen, ob das so korrekt ist oder gibt es evtl. eine kürzere Variante?

Code: Select all

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

class MyLi extends XH_Li
{
    function renderMenuItem($i)
    {
        global $h;

        //Alle Eintraege klickbar lassen
        $t = $this->renderAnchorStartTag($i) . $h[$this->ta[$i]] . '</a>';
        //Wenn Kind-Elemente vorhanden sind
        if ($this->hasChildren($i)) 
            {
                //Link in <span> einschliessen
                $t = '<span class="ddm_link">' . $t . '</span>';
                //Hamburger-Symbol fuer Touch-Geraete anhaengen
                $t .= '<span class="ddm_opener"><a href="#" onclick="return false;">&#8801;</a></span>';
            }
        return $t;
    }
}

function myli($ta, $st)
{
    $li = new MyLi();
    return $li->render($ta, $st);
}
?>
<?php
require_once $pth['folder']['classes'] . 'Menu.php';

class LckLi extends XH_Li
{
    function renderMenuItem($i)
    {
        global $h;

        //Alle Eintraege klickbar lassen
        $t = $this->renderAnchorStartTag($i) . $h[$this->ta[$i]] . '</a>';
        return $t;
    }
}

function lckli($ta, $st)
{
    $li = new LckLi();
    return $li->render($ta, $st);
}
?>
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Holger
Site Admin
Posts: 3097
Joined: Mon May 19, 2008 7:10 pm
Location: Hessen, Germany
Contact:

Re: XH_Li - Zwei unterschiedliche Menü-Ausgaben im Template

Post by Holger » Mon Feb 01, 2016 10:23 pm

Hallo Ludwig,

das schaut IMO ok aus, wenn der Code denn die gewünschte Ausgabe produziert.
lck wrote:oder gibt es evtl. eine kürzere Variante?
Du könntest alles in einen PHP-Block schreiben. Auch require_once() benötigst Du nur einmal:

Code: Select all

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

class MyLi extends XH_Li
{
    function renderMenuItem($i)
    {
        global $h;

        //Alle Eintraege klickbar lassen
        $t = $this->renderAnchorStartTag($i) . $h[$this->ta[$i]] . '</a>';
        //Wenn Kind-Elemente vorhanden sind
        if ($this->hasChildren($i)) 
            {
                //Link in <span> einschliessen
                $t = '<span class="ddm_link">' . $t . '</span>';
                //Hamburger-Symbol fuer Touch-Geraete anhaengen
                $t .= '<span class="ddm_opener"><a href="#" onclick="return false;">&#8801;</a></span>';
            }
        return $t;
    }
}

function myli($ta, $st)
{
    $li = new MyLi();
    return $li->render($ta, $st);
}


class LckLi extends XH_Li
{
    function renderMenuItem($i)
    {
        global $h;

        //Alle Eintraege klickbar lassen
        $t = $this->renderAnchorStartTag($i) . $h[$this->ta[$i]] . '</a>';
        return $t;
    }
}

function lckli($ta, $st)
{
    $li = new LckLi();
    return $li->render($ta, $st);
}
?>
Übrigens war der Name "MyLi" eigentlich nur als Dummy gedacht.

LG
Holger

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

Re: XH_Li - Zwei unterschiedliche Menü-Ausgaben im Template

Post by lck » Tue Feb 02, 2016 10:58 am

Danke Holger, werde es dann so einbauen.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Post Reply