Page 1 of 2

id= in den ul tag

Posted: Tue 19. May 2015, 11:23
by update
Wie bekomme ich eine id in den (ersten) ul tag?
Ich hätte gerne sowas wie

Code: Select all

<ul class="nav nav-pills nav-main" id="topMain">
erreicht.
Versucht habe ich es mit diversen kleinen JSsen, aber nada :(
Oder gibt nav_list_ul sowas her und ich weiß es nur nicht?

EDIT: Ich könnte versuchen, das mit frontend_render zu lösen... hmmm... mal sehen...

Re: id= in den ul tag

Posted: Tue 19. May 2015, 15:58
by nameless1
update wrote: Oder gibt nav_list_ul sowas her und ich weiß es nur nicht?
aus der doku.
6. id ul_id_name

Re: id= in den ul tag

Posted: Tue 19. May 2015, 18:23
by Oliver Georgi
natürlich gibt es ID her.
  1. menu_type,
  2. start_id,
  3. max_level_depth,
  4. class_path|ul_class_level1|ul_class_level2|...,
  5. class_active_li|class_active_a,
  6. ul_id_name,
  7. wrap_ul_div(0 = off, 1 = <div>, 2 = <div id="">, 3 = <div class="navLevel-0">),
  8. wrap_link_text(<em>|</em>),
  9. articlemenu_start_level|articlemenu_list_image_size (WxHxCROP OR WxHxCROP)|articlemenu_use_text (take text from: description:MAXLEN OR menutitle:MAXLEN OR teaser:MAXLEN OR teaser:HTML)|articlemenu_position (inside|outside)|<custom>[TEXT]{TEXT}[/TEXT][IMAGE]<img src="{IMAGE}" alt="{IMAGE_NAME}">[/IMAGE]</custom>

Re: id= in den ul tag

Posted: Tue 19. May 2015, 18:25
by update
"id topMain" gibt mir immer id="topMain"? Oder eher id="topMain33/34/45"? Ich probier das.
Die Doku habe ich gelesen ;) aber das hat sich mir (noch) nicht erschlossen...

Re: id= in den ul tag

Posted: Tue 19. May 2015, 18:33
by Oliver Georgi
daraus wird: ul_id_name_LevelID also id="topMain_0". Besser aber keine CamelCase für id-Attribut, sondern top-main oder top_main, wobei logischer nav-main-top.

Re: id= in den ul tag

Posted: Tue 19. May 2015, 20:56
by update
Ich habs jetzt so gemacht wie vorgeschlagen, allerdings wollte es nicht mit dem neu gebauten CSS funken, weiß der Geier. Hab dann mit Jquery

Code: Select all

<!-- JS:
$(document).ready(function(){
$('#nav-main-top_0').attr('id','topMain');
});
-->
die neue id umgewürgt auf dieses (lauffähige) topMain (ja, ich habs registriert ;) ) und jetzt geht es erstmal wie gewollt :?
Muss später da noch mal reinschauen, was da hakt.

Re: id= in den ul tag

Posted: Tue 19. May 2015, 23:11
by Oliver Georgi
sorry, was für ein Quatsch! id wird mit id ersetzt, was soll das denn? Wie wäre es, Dein CSS umzubauen?

Code: Select all

#topMain { -> #nav-main-top_0 {

Re: id= in den ul tag

Posted: Wed 20. May 2015, 08:54
by update
Oliver Georgi wrote:sorry, was für ein Quatsch!
Ich gebe Dir recht, das ist Quatsch, aber es wollte trotz des CSS- und JS-Umbaus einfach nicht funktionieren und weil ich den Fehler noch nicht finden konnte, habe ich (erstmal) zu dieser Notmaßnahme gegriffen.

Re: id= in den ul tag

Posted: Wed 20. May 2015, 09:38
by Oliver Georgi
ich vermute mal, Du hast etliche gedankliche Fehler in Deinem Konstrukt

Re: id= in den ul tag

Posted: Wed 20. May 2015, 10:21
by top
update wrote: EDIT: Ich könnte versuchen, das mit frontend_render zu lösen... hmmm... mal sehen...
Ich stand vor ein paar Tagen vor dem gleichen Problem und habe es dann mit frontend_render gelöst. (Seite ist noch nicht freigegeben und kann ich daher noch nicht zeigen.)

Das hier steht bei mir im Template:

Code: Select all

{#nav}{NAV_LIST_UL:,0,2,aktiv}
Und hier die PHP-Datei in frontend_render:

Code: Select all

<?php
// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day."); }
// ----------------------------------------------------------------

// Navigation mit ID ergaenzen

$content["all"] = str_replace('{#nav}
<ul>', '<ul id="nav">', $content["all"]);

// IE-Ergaenzung fuer Touch-Bedienung

$content["all"] = str_replace('li class="sub_ul', 'li aria-haspopup="true" class="sub_ul', $content["all"]);

$content["all"] = str_replace('<ul>
		<li class="sub_no sub_first', '<ul aria-haspopup="false">
		<li class="sub_no sub_first', $content["all"]);

?>
Die zweite Ergänzung mit "aria-haspopup=..." ist für die Touch-Bedienung im IE. Dem muss man bei Dropdown-Menüs leider etwas nachhelfen, damit die Patsche-Finger ohne JavaScript an die Unterpunkte kommen.

Das hier wird dann ausgespuckt:

Code: Select all

    <ul id="nav">
	<li aria-haspopup="true" class="sub_ul sub_first"><a href="leistungen.html" title="Leistungen">Leistungen</a>
	<ul aria-haspopup="false">
		<li class="sub_no sub_first"><a href="leistungen.html" title="Warum ich eine gute Wahl bin.">Warum ich eine gute Wahl bin.</a></li>
		<li class="sub_no"><a href="immobilienbewertung.html" title="Immobilienbewertung">Immobilienbewertung</a></li>
		<li class="sub_no sub_last"><a href="verkaeufer.html" title="Verkäufer willkommen!">Verkäufer willkommen!</a></li>
	</ul>
	</li>
	...

Re: id= in den ul tag

Posted: Wed 20. May 2015, 10:57
by Oliver Georgi
Ich verstehe wirklich Euer Problem nicht, die ID-Bezeichnung ist so unwichtig, ob man nun #nav oder #nav_0 ansprechen muss. Eindeutiger geht es nicht.

Ob das nun nav oder nav_0 heißt, ist so Jacke wie Hose. Beim Rest, wer es braucht…

Re: id= in den ul tag

Posted: Wed 20. May 2015, 11:21
by top
Mit "nav_0" geht das natürlich auch. Mich stört dabei nur, dass sich dadurch so viele weitere (überflüssige) IDs bei den Unterpunkten anhäufen.
Mit dem Script bleibt der HTML-Code ein wenig übersichtlicher - und da ich für die Ergänzung für das "aria-haspopup=..." keine andere Möglichkeit gesehen habe, stört mich die Kleinigkeit mehr auch nicht weiter.

Re: id= in den ul tag

Posted: Wed 20. May 2015, 11:23
by update
Oliver Georgi wrote:Ich verstehe wirklich Euer Problem nicht
:wink:
Das Problem: Auf die Schnelle wollte das mit der Ansprache nicht, da brauchte ich eine funktionierende schnelle Zwischenlösung, um weiterarbeiten zu können. Mir ist schon klar, dass das funktionieren muss und wird: Wenn ich den gerenderten Code zB als hardcoded Version ins Template packe, funktioniert es ja schon ... kann also nur eine Klenigkeit sein, irgendwas wird wohl zur Unzeit eingebunden oder so...
- wobei ich der fe-render-Version grundsätzlich schon was abgewinnen könnte ;)
EDIT: Also mich stören ein paar mehr classes nicht - man weiß ja nie, ob man das nicht doch mal brauchen kann

Re: id= in den ul tag

Posted: Wed 20. May 2015, 12:02
by Oliver Georgi
ob im id-Attribut was drinsteht oder nicht, ist dem Browser egal, denn angelegt wird es auf jeden Fall

Re: id= in den ul tag

Posted: Sun 24. May 2015, 19:34
by update
Wenn ich sowas habe

Code: Select all

<ul class="side-nav list-group" id="sidebar-nav">

	<li class="list-group-item list-toggle active">
		<a data-toggle="collapse" data-parent="#sidebar-nav" href="#collapse-1">SchokoSchoko</a>
		<ul id="collapse-1" class="collapse in">
			<li><a href="milch-und-sahne.html"><i class="fa fa-angle-right"></i>Milch und Sahne</a></li>
			<li><a href="kakao.html"><i class="fa fa-angle-right"></i>Kakao</a></li>
			<li class="active"><a href="nussmehl.html"><i class="fa fa-angle-right"></i>Nussmehl</a></li>
		</ul>
	</li>

	<li class="list-group-item list-toggle">
		<a data-toggle="collapse" data-parent="#sidebar-nav" href="#collapse-2">Müsli Generation</a>
		<ul id="collapse-2" class="collapse">
			<li><a href="getreide.html"><i class="fa fa-angle-right"></i>Getreide</a></li>
			<li><a href="nuesse.html"><i class="fa fa-angle-right"></i>Nüsse</a></li>
			<li><a href="rosinen.html"><i class="fa fa-angle-right"></i>Rosinen</a></li>
			<li><a href="kuerbiskerne.html"><i class="fa fa-angle-right"></i>Kürbiskerne</a></li>
		</ul>
	</li>

	<li class="list-group-item"><a href="vorbereitung.html">Vorbereitung</a></li>
	<li class="list-group-item"><a href="zubereitung.html">Zubereitung</a></li>
	<li class="list-group-item"><a href="nachbereitung">Nachbereitung</a></li>

</ul>
wie würde dann die nav_list_ul-Anweisung für bootstrap aussehen?
Oder etwaige zusätzliche Anweisungen in der custom.settings.php?
Ich habs bald, bräuchte aber noch so einen kleinen Kick... ;)