Page 1 of 1

NAV_LIST_UL richtig zusammen bauen

Posted: Sat 29. Dec 2018, 18:14
by Uwe367
Tja.. ich habe zwar von Oliver diesen Link hier bekommen der die NAV_LIST_UL Parameter auflistet, siehe hier:
https://github.com/slackero/phpwcms/blo ... .php#L2866
aber irgendwie tue ich mich etwas schwer mit dem Zusammenbau des RT´s.
Einen einfachen, wie z.B. diesen hier von Knut <div class="nlu_horiz1">{NAV_LIST_UL:F,0,1,act_path,active}</div> bekomme ich ja noch hin, aber wie baue ich die Trennung mittels Pipes, die Oliver vor kurzem in einem anderen Thread angesprochen hatte, richtig und vor allem sinnvoll ein.

@Oliver..
Könntest du vielleicht mal das eine oder andere praktische Beispiel hier zeigen? Also ein paar RT´s wie sie richtig aufgebaut sind und vielleicht ein kleine Erklärung dazu? Wäre sehr nett und sehr hilfreich :D

Ich bedanke mich schonmnal im voraus.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sun 30. Dec 2018, 10:23
by Uwe367
Vor allem würde es mich interessieren wie ich dem generierten <ul> eine Klasse bzw ID zuweisen kann so daß ich mittels CSS darauf triggern kann.
Beispiel aus dem Quellcode des Standarttemplates:

Code: Select all

<h6>navigation:</h6>
<nav id="menu">
<ul> <-(wie kann ich diesem ul eine Klasse bzw ID mitgeben?)
<li class="sub_parent"><a......
Wäre praktisch wenn man das auch in der conf.template_defualt.inc.php steuern könnte.
Ich habe dort alles versucht, aber ohne Erfolg. Einzige Möglichkeit wäre noch über den RT selbst, aber wie und wo?

Hintergrund ist daß viele Navigationen zwingend eine ul class benötigen, diese aber im System, so wie ich das sehe, nicht definierbar ist.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sun 30. Dec 2018, 12:19
by top
In dem Beispiel kannst Du das UL einfach folgendermaßen eindeutig ansprechen:

Code: Select all

#menu > ul {
	border: dotted 2px #f0f; 
}

Notfalls gibt es ja noch den Ordner /template/inc_script/frontend_render/ in dem man eine kleine PHP-Datei erstellt, um dort eine Klasse zu ergänzen. Irgendwie so (ungetestet):

Code: Select all

<?php
// Ergaenzung Klasse fuer Hauptnavi

$content['all'] = str_replace('<nav id="menu">
<ul>', '<nav id="menu">
<ul class="bla">', $content['all']);
Geht sicherlich auch eleganter - aber dafür kann ich auch nicht genug php... :?

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sun 30. Dec 2018, 13:09
by Uwe367
Danke dir.
Hatte auch schon an ein kleines Frontend Render Script gedacht, aber ich kann noch weniger PHP als du, aber das könnte die Lösung dafür sein.
Ich bau das mal ein.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sun 30. Dec 2018, 18:03
by top
Vergiss was ich geschrieben habe. In der Wiki steht doch wie es einfach geht:
https://wiki.phpwcms.org/doku.php/deuts ... lichkeiten

Kaum macht man es richtig...: :wink:

Code: Select all

{NAV_LIST_UL:P,0,,|wunschklasse}

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sun 30. Dec 2018, 18:22
by Uwe367
Ups.. so nah und man sieht den Wald vor lauter Bäumen nicht.
Danke :D
Damit müßte ich dem <ul> die Klasse mitgeben können die benötigt wird.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Mon 31. Dec 2018, 08:27
by Uwe367
Genau so funktionierts. Ich kann dem <ul> eine beliebige Klasse mitgeben. Ob das mit einer ID auch klappt muß ich noch ausprobieren.

Schade ist aber daß das alles so verteilt im System liegt. Die einen Klassen kann ich in der conf.template_default.inc.php editieren, die anderen muß im RT unterbringen...
Hier würde ich mir wünschen daß das alles an einer zentralen Stelle im System zu finden ist. Wäre übersichtlicher und hätte diesen Thread hier mehr oder weniger unnötig gemacht.

Guten Rutsch euch und bleibt gesund :D

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Tue 1. Jan 2019, 12:53
by Uwe367
Frohes Neues euch allen.
Hab gerade mal ein bischen rumexperimentiert und das ist ja echt irre was mit diesem RT alles möglich ist und dabei habe ich sicher noch nicht die volle Bandbreite erforscht. Jedenfalls ist es nun ein leichtes, eine Navigation wie z.B. diese hier
https://codepen.io/wanni/pen/zsDJb
nur mit Bordmitteln umzusetzen.
Der RT dafür sieht so aus:

Code: Select all

<nav class="navigation">{NAV_LIST_UL:P,0,2,|mainmenu|submenu|act_path,active}</nav>
Was im Quellcode dann so aussieht:

Code: Select all

<nav class="navigation">
<ul class="mainmenu">

   <li class="sub_parent active"><a href="index.html" title="Home">Home</a></li>
   <li class="sub_ul sub_first"><a href="test-1.html" class="nav-link" title="Test 1">Test 1</a>
  <ul class="submenu">
     <li class="sub_no sub_ul_true sub_first"><a href="test-1-1.html" class="nav-link" title="Test 1-1">Test 1-1</a></li>
     <li class="sub_no"><a href="test-1-2.html" class="nav-link" title="Test 1-2">Test 1-2</a></li>
     <li class="sub_no sub_last"><a href="test-1-3.html" class="nav-link" title="Test 1-3">Test 1-3</a></li>
  </ul>
  </li>
   <li class="sub_ul sub_last"><a href="test-2.html" class="nav-link" title="Test 2">Test 2</a>
  <ul class="submenu">
     <li class="sub_no sub_ul_true sub_first"><a href="test-2-1.html" class="nav-link" title="Test 2-1">Test 2-1</a></li>
     <li class="sub_no"><a href="test-2-2.html" class="nav-link" title="Test 2-2">Test 2-2</a></li>
     <li class="sub_no"><a href="test-2-3.html" class="nav-link" title="Test 2-3">Test 2-3</a></li>
     <li class="sub_no"><a href="test-2-4.html" class="nav-link" title="Test 2-4">Test 2-4</a></li>
     <li class="sub_no"><a href="test-2-5.html" class="nav-link" title="Test 2-5">Test 2-5</a></li>
     <li class="sub_no sub_last"><a href="test-2-6.html" class="nav-link" title="Test 2-6">Test 2-6</a></li>
  </ul>
  </li>
</ul>
</nav>
Heißt daß das <ul> des Mainmenüs die Klasse .mainmenu erhält und die <ul> der Submenüs die Klasse .submenu erhalten.
Einfach einfach wenns mans weiß.

Schön wäre an dieser Stelle noch wenn man dem <ul> wahlweise eine Klasse oder eine ID zuweisen könnte oder vielleicht auch beides denn ich habe viele Navigationen gesehen, bei denen das <ul> eine ID hat.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Thu 3. Jan 2019, 09:09
by Uwe367
Ok, das ganze hier scheint nun niemanden mehr wirklich zu interessieren, aber ich mache mal weiter.
Nachdem ich ein Issue bei Github mit der Anmerkung erstellte ob es denn möglich sei, eine ul-id anstatt einer ul-class anzufügen, schrieb Oliver daß es diese Möglichkeit schon lange gibt und führte ein Beispiel dazu an welches so aussieht:
{NAV_LIST_UL:P,0,2,|mainmenu|submenu|act_path,active,navulid}
wird dann im Quellcode zu:
<ul id="navulid_0"…>
Das ul bekommt die id navulid, aber es wird auch gleichzeitig die Start-id angefügt was bei der Verwendung für eine Navigation mit ul-id´s ein Nachteil ist.
Ich würde das gerne mittels eine kleines Frontend Render Scripts lösen. Problem ist nur.. wie entferne ich ich mittels Frontend Renderscript die Variable in diesem Bereich?

front.func.inc.php
Zeile 3207 - 3209

if($level_id_name) { $ul .= ' id="'.$level_id_name.'_'.$start_id.'"'; }
Hier müßte die Varaible $start_id entfernt werden damit nur die vergebene ID ohne Start ID gerendert wird.
Jedoch soll die Variable anderen Stellen erhalten bleiben. Ist mit Sicherheit mittels frontend_render zu machen, aber wie?

Ich versuche das mal in den Griff zu bekommen. Falls hier jemand ne zündende Idde hat.. her damit :D

Hatte mir etwas dieser Art vorgestellt:

Code: Select all

<?php
if( ! ( strpos($content["all"],'$ul .= ' id="'.$level_id_name.'_'.$start_id.'')==false ) ) {
   $content["all"] = str_replace('$ul .= ' id="'.$level_id_name.'',$content["all"]);
}
?>
Funktioiniert so nicht, klar, aber etwas in dieser Richtung.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sat 5. Jan 2019, 13:46
by Uwe367
Frage an Oliver.
Da ich das mit dem Scripten nicht wirklich hin bekomme und auch niemandem damit zur Last fallen möchte frage ich ob es eine brauchbare Lösung ist, für den Fall daß ich nur die css-id OHNE Start-id benötige, einfach diese Zeile in der front.func.inc.php
if($level_id_name) { $ul .= ' id="'.$level_id_name.'_'.$start_id.'"'; }
nach
if($level_id_name) { $ul .= ' id="'.$level_id_name.'"'; }
zu ändern.
Oder birgt diese Änderung irgendwelche Risiken?
Ich weiß, ist nicht die eleganteste Lösung, funktioniert aber und ist für mich die einfachste.
Ich hätte das gerne über ein Frontend Renderscript gelöst da ich dann nicht in den Core des Systems eingreifen muß, aber ich bekomms einfach nicht gebacken.

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Wed 12. Jun 2019, 03:48
by Jensensen
Dieses Geschraube kenne ich noch.
mach so - dann bekommst du das --- hab ich gemacht - ergab aber nicht das.

Mit dem frontend_render Script NLU_FF_AC_QD kannst du das machen. An den entscheidenden Stellen, die du oben schon zeigst, baust du einfach deinen eigenen Code ein, Klassen und sonstewas.

Dann speicherst du die Versionen deiner Scripte im frontend_render Verzeichnis z. B. als
rt_NLU_FF_AC_QD--dingens.php
rt_siehste-geht--doch-007.php
meine--super--bootstrap--navi.php

Damit konnte ich mir Bootstrap-Navis bauen, als sie noch nicht implementiert waren.
Du musst und kannst dann natürlich immer wieder (für jedes script-file) neue RT replacement tags erfinden.

Sollte auch noch kompatibel sein mit php 7.x (ohne php notice im error log) und funktioniert auch mit v1.9-php7-dev

Bezüglich der aktuellen v1.9-php7-dev müsste ich mal, wenn Zeit ist, ggf. anpassen...

So, hier die Links:
Forum NLU_FF_AC_QD
GitHub https://github.com/jensensen/NLU_FF_AC_QD

(hat aber eigentlich nichts mit deiner überschrift zu tun)

Re: NAV_LIST_UL richtig zusammen bauen

Posted: Sun 16. Jun 2019, 08:10
by Uwe367
Danke Jens.
Ich schau mir das mal an.