NAV_LIST_UL richtig zusammen bauen

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: NAV_LIST_UL richtig zusammen bauen

Post 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... :?
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: NAV_LIST_UL richtig zusammen bauen

Post 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}
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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
Last edited by Uwe367 on Wed 2. Jan 2019, 07:25, edited 1 time in total.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post 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.
User avatar
Jensensen
Posts: 3000
Joined: Tue 17. Oct 2006, 21:11
Location: auf der mlauer

Re: NAV_LIST_UL richtig zusammen bauen

Post 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)
{so_much} | Knick-Knack. | GitHub
Umlaute im URL sind meistens immer Kacke.
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: NAV_LIST_UL richtig zusammen bauen

Post by Uwe367 »

Danke Jens.
Ich schau mir das mal an.
Post Reply