WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 28.08.2015 16:10:00

norhei
Developer

Class based navigation

Creating Version 3 is another good option. But please do a class based one.

Default for sh2 is :

function show_menu2(
    $aMenu          = 0,
    $aStart         = SM2_ROOT,
    $aMaxLevel      = SM2_CURR+1,
    $aOptions       = SM2_TRIM,
    $aItemOpen      = '[li][a][menu_title]</a>',
    $aItemClose     = '</li>',
    $aMenuOpen      = '[ul]',
    $aMenuClose     = '</ul>',
    $aTopItemOpen   = false,
    $aTopMenuOpen   = false
    )

If you just need to change one of the alst options you have to write all other optios too, plus you need to know all other options.

show_menu2(
    $aMenu          = 0,
    $aStart         = SM2_ROOT,
    $aMaxLevel      = SM2_CURR+1,
    $aOptions       = SM2_TRIM,
    $aItemOpen      = '[li][a][menu_title]</a>',
    $aItemClose     = '</li>',
    $aMenuOpen      = '[ul]',
    $aMenuClose     = '</ul>',
    $aTopItemOpen   = false,
    $aTopMenuOpen   = true
    )

in a Class based enviroment you simply write :

$myMenu= new showMemu3($menuId=2);
$myMenu->TopMenuOpen=false;
$myMenu->display(); // displays menu 

or maybe

$var= $myMenu->return() // returns Menu as value

This is much more comfortable in complex menus... maybe add aomething more statidc for simple ones or maybe even add some presets.

$myMenu= new showMemu3(2, "presetname"); //This instantly renders the menu.

Maybe we even use a wrapper function for simple tasks , but for complex settings the class solution is the only way to maintain at least some readability.

Beitrag geändert von norhei (28.08.2015 16:11:52)

Offline

#2 28.08.2015 16:23:18

florian
Administrator

Re: Class based navigation

Ich hab das mal hierher verschoben, im anderen Thread geht es ja um die konkreten Änderungen an SM2.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 29.08.2015 10:24:57

cwsoft
Mitglied

Re: Class based navigation

Hi, statt Klasse ginge auch ein Configarray wie z.B. In Anynews.


Account inactive since 2018/11/17.

Offline

#4 29.08.2015 13:43:52

norhei
Developer

Re: Class based navigation

Also erstmal ist show_menu2 sowieso schon ein Mix aus Funktion und Klasse, des weiteren ist eine Funktion leider nicht mit einem Autoloader zu laden.
Wenn das Dingen mal jemand an seine Bedürfnisse anpassen möchte , kann man bei einer Klasse vererben , bei Funktionen ... Sendepause , alles neu.
Das zerlegen in einzelne übersichtliche Funktionsabschnitte ... mit Funktionen ... mal wieder 20 Funktionen mehr im Namensraum , mit Klasse alle hübsch gekapselt , und stört niemand.... Ach man die Vorteile sind endlos....

Hast aber recht das wir möglicherweise um eine Statische Funktion nicht drumrum kommen.
Sowas wie:

show::Menu3($configarray);

Dann kann es jeder Halten wie er mag.

Offline

#5 29.08.2015 15:34:29

cwsoft
Mitglied

Re: Class based navigation

@norhei: Mir brauchst Du den Vorteil einer Klasse nicht erklären. Ging nur um das vorige Beispiel mit den vielen Optionen. Das geht auch über Configarrays  smile


Account inactive since 2018/11/17.

Offline

#6 29.08.2015 17:59:42

norhei
Developer

Re: Class based navigation

Hast trotzdem recht , können uns nicht auf die Einfacheit und niederigen einstiegshürden einen Einbilden , und dann OOP erzwingen.
Und so perfekte Objekte wie in meinem Zweit CMS haben wir nicht, und auch da ist die Einstiegshürde doch noch ein Stück höher.

Habe aber auch schon Klassen genau so so gebaut , ist Ansich eine gute Idee , und praktisch kein mehraufwand.
einer der Wahlsprüche von WB war ja mal "Weil einfach, einfach einfach ist"

Offline

#7 29.08.2015 20:54:29

florian
Administrator

Re: Class based navigation

norhei schrieb:

einer der Wahlsprüche von WB war ja mal "Weil einfach, einfach einfach ist"

Nee, das war ein Mobilfunker, aber die Aussage stimmt natürlich trotzdem, deshalb ja auch mein Traum von einem Navigationserzeugeadmintool.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#8 29.08.2015 22:39:25

norhei
Developer

Re: Class based navigation

Das ist wie in Linux, erst ein einfacher gut funktionierender Unterbau, und dann nur noch ein Frontend dafür bauen oder wie beim Miniform ein Generator.

Hab vorhin noch festgestellt
SM2 mach noch viel zu viel in PHP, vieles könnte die DB machen, die ist schließlich in C programmiert.(viiiieel schneller)

Und SM2 hat eine legacy Funktion für SM1, die sollten wir mal testen , eventuell kann dann SM1 aus dem Core schon mal raus.

Offline

Fußzeile des Forums

up