[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Subnavi in Sidebar - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
JonasLoerken
Beiträge: 70
Registriert: 13. Feb 2015, 23:22

Subnavi in Sidebar

30. Nov 2015, 10:46

Hey,

vorab: Meine PHP-Kenntnisse sind sehr beschränkt, da ich mich erst am Anfang der "Lernphase" befinde.

Derzeit stehe ich vor folgendem Problem: Ich möchte eine Subnavi in der Sidebar darstellen. Es sollen also alle Unterseiten der aktuellen Seite ausgegeben werden. Außerdem sollen alle Unterseiten ausgegeben werden, wenn ich mich bereits auf einer solchen befinde.

Mein aktuelles Script:

Code: Alles auswählen

<nav class="sec-nav">
<?php

$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

echo '<ul>';
foreach (OOCategory::getRootCategories(true) as $lev1)
{
if(count($lev1->getChildren())>0)
{
foreach ($lev1->getChildren(true) as $lev2)
{
if($lev2->getId() == $PATH[1])
echo '<li style="background-image:url();"><a href="'.$lev2->getUrl().'"></a><span>'.$lev2->getName().'</span>';
else
echo '<li style="background-image:url();"><a href="'.$lev2->getUrl().'"></a><span>'.$lev2->getName().'</span>';
}
echo '</ul>';
} 
echo '</li>';
}

?>
</nav>
funtkioniert nur sehr beschränkt. Zum einen werden alle (!!) Unterseiten ausgegeben, völlig egal ob diese der aktuellen Seite oder einer anderen Seite angehören. Zum anderen bleibt die Liste leer, wenn ich mich bereits auf einer Unterseite befinde – Ist ja auch logisch, denn diese Unterseite besitzt eben keine weiteren Unterseiten. Es sollen aber natülrich auch weiterhin die Unterseiten der Parent-Seite dargestellt werden.

Zur Struktur der Navigation:

Code: Alles auswählen

<nav class="sec-nav">
    <ul>
        <li style="background-image:url(META_BILD_DER_SEITE);"><a href="LINK_ZUR_SEITE"></a><span>NAME DER SEITE</span></li>
    </ul>
</nav>

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Subnavi in Sidebar

30. Nov 2015, 11:05

Hi,

kennst du schon das Navigation Factory Addon? Damit kann man sehr einfach Navis zusammenklopfen. Zu deinem Fall wäre auch ein Codebeispiel direkt dabei :)

JonasLoerken
Beiträge: 70
Registriert: 13. Feb 2015, 23:22

Re: Subnavi in Sidebar

30. Nov 2015, 12:15

Kannte ich noch nicht :oops: Funktioniert aber super! Danke dafür.

Eine Schwierigkeit kriege ich jedoch trotz Plugin nicht hin. Jedes list-item der navigation hat einen inline-style in dem ein Hintergrundbild definiert wird, welches aus den Meta-Einstellungen des entsprechenden Artikels geholt wird.

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Subnavi in Sidebar

30. Nov 2015, 12:32

Also so direkt lässt sich das leider nicht lösen mit der rex_nav. Aber die Frage ist ja eh ob es so viel Sinn macht dem Redaktuer hier die volle Wahl zu lassen was er an Bildern auswählen kann. Ich kenne das so, dass der Designer ein Set an Icons / Bildern definiert und dann nur die benutz werden sollen. Dieser Use Case ist mit der rex_nav machbar. In den Meta Infos machst du ne Select mit deinen Klassennamen. Im CSS gibst du die an mit deinen background-images. Und in der rex_nav nutzt du dann setListItemClassFromMetaField() oder manchmal machen auch Ids eher Sinn, dann setListItemIdFromMetaField(). Et Voila :)

Interessant sind in dem Zusammenhang auch setListItemIdFromCategoryId() und setListItemClassFromCategoryId(). Wenn du nämnlich die MetaInfo Lösung nur deshalb gewählt hast um es irgendwie hinzubekommen dass du deinen Li's Klassen zuweisen kannst, kannst du mit diesen Methoden auch ganz ohne Meta Infos zurecht kommen. Du definerst dann einfach vorab ein Array mit deinen Kategorie-Id's und den zugewiesenen Klassen.

Björn Lindner
Beiträge: 62
Registriert: 30. Jan 2012, 12:53

Re: Subnavi in Sidebar

18. Dez 2015, 00:15

hi,

finde das addon auch total super.
tüftel aber gerade tatsächlich daran wie ich den li's der ebenen =>2 eine andere css klasse zuweisen kann, als den li's der 1. ebene.
Ich will es eigentlich nicht auf Kategorie basis, sondern auf tiefe.
geht das?

grüße und dank
björn

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Subnavi in Sidebar

18. Dez 2015, 01:06

Hi,

1. Ebene

Code: Alles auswählen

$nav->setListClass('foo', 1); 
2. Ebene

Code: Alles auswählen

$nav->setListClass('bar', 2); 

Björn Lindner
Beiträge: 62
Registriert: 30. Jan 2012, 12:53

Re: Subnavi in Sidebar

18. Dez 2015, 15:01

hi,

Missverständnis :(

Code: Alles auswählen

$nav->setListItemClass('dropdown', 1); // li klasse 'list-item'
$nav->setListItemClass('', 2); // li klasse 'list-item'
das ist wohl leider nicht möglich?

grüße
björn

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Subnavi in Sidebar

18. Dez 2015, 15:08

Es kann sei das du einen Bug entdeckt hast.
Bekommen dann bei dir alle Ebenen die dropdown Klasse oder?

Schau dir alternativ mal:
$nav->setShowHasSubClass(true); // zeigt 'has-sub' klasse für die li an
$nav->setHasSubClass('has-sub'); // klassenname der 'has-sub' klasse

Evtl. ist es das was du brauchst.
Aber das andere ist vermutlich trotzdem ein Bug.

Björn Lindner
Beiträge: 62
Registriert: 30. Jan 2012, 12:53

Re: Subnavi in Sidebar

18. Dez 2015, 15:23

hi,

nein ich bekomme in meinem Beispiel oben immer KEINE klasse eingebunden, also diese

Code: Alles auswählen

$nav->setListItemClass('', 2); // li klasse 'list-item'
zeile vermutlich.

da du in deiner addon doku nur

Code: Alles auswählen

$nav->setListItemClass('list-item'); // li klasse 'list-item'
beschrieben hast, hätte ich es nicht als bug gewertet, aber umso schöner wenn du es so siehst :)

was ich versuche ist die navigation von http://htmlcoder.me/preview/ivega/v.1.1/ (habe für unseren verein tatsächlich gekauft) im redaxo zu implementieren.
hier mal ein ausschnitt des html codes der navigation:

Code: Alles auswählen

<ul class="nav navbar-nav navbar-main-menu">
	<li class="dropdown active">
		<a href="index.html" class="dropdown-toggle" data-toggle="dropdown">Home</a>
		<ul class="dropdown-menu">
			<li><a href="index.html">Home - Slider 1</a></li>
			<li><a href="index-2.html">Home - Slider 2</a></li>
			<li><a href="index-3.html">Home - No Slider</a></li>
		</ul>
	</li>
	<li class="dropdown">
		<a href="page-about.html" class="dropdown-toggle" data-toggle="dropdown">About</a>
		<ul class="dropdown-menu">
			<li><a href="page-about.html">About Us</a></li>
			<li><a href="page-team.html">Our Team</a></li>
		</ul>
	</li>
	<li class="dropdown">
		<a href="blog.html" class="dropdown-toggle" data-toggle="dropdown">Blog</a>
		<ul class="dropdown-menu">
			<li><a href="blog.html">Blog small images</a></li>
			<li><a href="blog-2.html">Blog large images</a></li>
			<li><a href="blog-no-sidebar.html">Blog - No Sidebars</a></li>
			<li><a href="blog-post.html">Blog post</a></li>
		</ul>
	</li>
</ul>

Björn Lindner
Beiträge: 62
Registriert: 30. Jan 2012, 12:53

Re: Subnavi in Sidebar

14. Jan 2016, 23:56

hi,

wollte fragen ob du bei dem "bug" schon geschaut hast woran es liegen könnte?

grüße
björn

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Subnavi in Sidebar

17. Jan 2016, 17:55

Es tut mir leid ich bin noch nicht dazu gekommen habe es aber zumindest auf meiner Todo Liste vermerkt :)

Benutzeravatar
RexDude
Beiträge: 2543
Registriert: 22. Apr 2010, 11:24

Re: Subnavi in Sidebar

26. Feb 2016, 21:47

Ah okey, ein Mißverständnis. Ich sprach immer von setListClass('foo', 1) welches ebenen basiert ist. Du bist aber bei setListItemClass('foo') was nicht ebenen basiert arbeitet sonder allen lis diese klasse gibt. normalerweise müsste hier php einen fehler ausspucken.
und ja also das geht aktuell nicht was du vorhast ;)

Zurück zu „Allgemeines [R4]“