Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 10. September 2013 09:16

Tranquillius
probiert CMS/ms aus
Ort: Leipzig
Registriert: 10. September 2013
Beiträge: 52

[GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Ich möchte gerne einen übergeordneten Menüeintrag erstellen, ohne Seite (z.b. 3.1). Unter den Menüeintrag werden dann weitere Menüeinträge mit Inhalteseiten erstellt werden. Mit Advanced Content kann ich ja Seiten aus den Menü ausblenden, solange man sich nicht eingeloggt hat (mittels FEU). Ich sehe aber gerade keine Möglichkeit eine Abschnittsüberschrift zu erstellen, die ebenfalls ausgeblendet bleibt, solange man sich nicht einloggt.

Offline

#2 10. September 2013 19:58

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Da ein Sectionheader keine Template zugewiesen bekommt, weil er ja keine Inhaltsseite ist, funktioniert der Ansatz auch nicht.

Mit dem Modul Toolbox installiert könntest du in deiner Menütemplate oder Seitentemplate abfragen, ob ein User eingeloggt ist, und dann etwas damit anfangen.
z.B. einen weiteren Menüzweig anzeigen.

{if tbtools::isLoggedIn()}
  {menu childrenof='internes'}
{/if}

Offline

#3 10. September 2013 20:45

Tranquillius
probiert CMS/ms aus
Ort: Leipzig
Registriert: 10. September 2013
Beiträge: 52

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Da meine Kenntnisse Richtung Smarty sehr sehr gering sind, habe ich mal mein Menü-Template angefügt. Wie muss ich das Template bearbeiten, dass es mit Toolbox (bereits installiert) funktioniert?

{if $count > 0}
  <ul id="navigation">
  {foreach from=$nodelist item=node}
    {if $node->depth > $node->prevdepth}
      {repeat string="<ul>" times=$node->depth-$node->prevdepth}
    {elseif $node->depth < $node->prevdepth}
      {repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
    </li>
    {elseif $node->index > 0}</li>
  {/if}
    <li>
    {if $node->current == true}<li id="active">{$node->menutext}
      {else}<a href="{$node->url}">{$node->menutext}</a>
    {/if}
  {/foreach}
  {repeat string="</li></ul>" times=$node->depth-1}</li>
  </ul>
{/if}

Beitrag geändert von Tranquillius (10. September 2013 20:46)

Offline

#4 11. September 2013 07:51

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Klenkes' Ansatz geht davon aus, dass Du im Seiten-Template zwei Menüs aufrufst. Einmal ohne diesen Sectionheader und einmal mit nur diesem Sectionheader und seinen Unterseiten, wenn man eingeloggt ist.
Bsp.:

{menu excludeprefix='internes'}
{if tbtools::isLoggedIn()}
  {menu childrenof='internes'}
{/if}

Da musst Du dann auch nichts am Menü-Template ändern.
Außer vielleicht "<ul id="navigation">" in "<ul class="navigation">" und im Stylesheet dann "#navigation" in ".navigation" ändern.

Wenn das aus Gründen des Layouts nicht geht, weil der Sectionheader z.B. irgendwo mitten im Menü stehen soll, dann musst Du im Template das Alias der internen Seite und den Login-Status prüfen. Ist es eine interne Seite und der User ist nicht eingeloggt, dann soll dieser Menüpunkt einfach übersprungen werden:

{if $count > 0}
  <ul id="navigation">
  {foreach from=$nodelist item=node}

	{* Hier Alias und Login-Status prüfen *}
	{if $node->alias == 'internes' && !tbtools::isLoggedIn()}
		{continue}
	{/if}

    {if $node->depth > $node->prevdepth}
      {repeat string="<ul>" times=$node->depth-$node->prevdepth}
    {elseif $node->depth < $node->prevdepth}
      {repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
    </li>
    {elseif $node->index > 0}</li>
  {/if}
    <li>
    {if $node->current == true}<li id="active">{$node->menutext}
      {else}<a href="{$node->url}">{$node->menutext}</a>
    {/if}
  {/foreach}
  {repeat string="</li></ul>" times=$node->depth-1}</li>
  </ul>
{/if}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 11. September 2013 20:20

Tranquillius
probiert CMS/ms aus
Ort: Leipzig
Registriert: 10. September 2013
Beiträge: 52

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Danke für die Hilfe. Leider bin ich noch nicht ganz zum Ziel gekommen. Mal kurz eine Auflistung der Struktur:

1. Intern (Alias "intern") - Typ Inhalt mit "{FrontEndUsers nocaptcha="1" returnto="intern"}" als Inhalt. Soweit so gut.
1. 1. Registrieren (Alias "registrieren") - Typ Erweiterter Inhalt mit {cms_module module=SelfRegistration mode=signup group=nogroup} als Inhalt. Eingestellt, dass der Punkt auch nach dem einloggen ausgeblendet wird.
1. 2. Finanzen (kein Alias!) - Typ Abschnittsüberschrift - Soll auch ohne Inhalt bleiben. Ist aber trotzdem anklickbar und führt immer zur eingestellten Home-Seite der Website. Kann man den Redirect auch anders einstellen? Z.B. Alias "intern"? - Derzeit aber immer sichtbar (und das soll ausgeblendet werden!)
1. 2. 1. Blablubb (Alias wäre dann "blablubb") - Typ Erweiterter Inhalt mit Inhalt halt. (Toller Satz)

Ich würde gerne das mittels des Menu-Scripts lösen, da die Seite bis auf den Mangel technisch soweit fertig ist.

Nebenfrage: Irgendwie finde ich in meinem Menü-Script keine Öffnungstags für Listeneinträge <li>, sondern nur Schließtags. Ist da noch ein Fehler drin?

{if $count > 0}
  <ul id="navigation">
  {foreach from=$nodelist item=node}

	{* Hier Alias und Login-Status prüfen *}
	{if $node->Finanzen == 'intern' && !tbtools::isLoggedIn()}
		{continue}
	{/if}

    {if $node->depth > $node->prevdepth}
      {repeat string="<ul>" times=$node->depth-$node->prevdepth}
    {elseif $node->depth < $node->prevdepth}
      {repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
    </li>
    {elseif $node->index > 0}</li>
  {/if}
    <li>
    {if $node->current == true}<li id="active">{$node->menutext}
      {else}<a href="{$node->url}">{$node->menutext}</a>
    {/if}
  {/foreach}
  {repeat string="</li></ul>" times=$node->depth-1}</li>
  </ul>
{/if}

Beitrag geändert von Tranquillius (11. September 2013 20:21)

Offline

#6 12. September 2013 22:02

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Tranquillius schrieb:

1. 2. Finanzen (kein Alias!) - Typ Abschnittsüberschrift - Soll auch ohne Inhalt bleiben. Ist aber trotzdem anklickbar und führt immer zur eingestellten Home-Seite der Website. Kann man den Redirect auch anders einstellen?

Sectionheader haben keine URL und deshalb wird ein # eingesetzt.
Der Link zurück zur Startseite liegt also an dem # welches als href Attribut für den Link gesetzt wird.

Du müsstest in deiner Menütemplate noch eine Abfrage für Sectionheader einbauen, und dort das href raus lassen.
Schau dir dazu die Standardmenütemplates mal an.

Tranquillius schrieb:

1. 2. Finanzen (kein Alias!) - Typ Abschnittsüberschrift -

Auch Abschnittüberschriften haben einen Alias.


Tranquillius schrieb:

Nebenfrage: Irgendwie finde ich in meinem Menü-Script keine Öffnungstags für Listeneinträge <li>, sondern nur Schließtags. Ist da noch ein Fehler drin?

{if $count > 0}
  <ul id="navigation">
  {foreach from=$nodelist item=node}

    {* Hier Alias und Login-Status prüfen *}
    {if $node->Finanzen == 'intern' && !tbtools::isLoggedIn()}
        {continue}
    {/if}

    {if $node->depth > $node->prevdepth}
      {repeat string="<ul>" times=$node->depth-$node->prevdepth}
    {elseif $node->depth < $node->prevdepth}
      {repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
    </li>
    {elseif $node->index > 0}</li>
  {/if}
    <li>
    {if $node->current == true}<li id="active">{$node->menutext}
      {else}<a href="{$node->url}">{$node->menutext}</a>
    {/if}
  {/foreach}
  {repeat string="</li></ul>" times=$node->depth-1}</li>
  </ul>
{/if}

Da sind sie doch...

Sorry. Bin müde und ausgelaugt.
Mehr krieg' ich heute nicht mehr hin.

Beitrag geändert von Klenkes (12. September 2013 22:04)

Offline

#7 14. September 2013 08:41

Tranquillius
probiert CMS/ms aus
Ort: Leipzig
Registriert: 10. September 2013
Beiträge: 52

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Es läuft! Genug Schlaf, Sohnemann abgeschoben (bin in Elternzeit) und mal etwas Zeit am Stück und Muse helfen doch ungemein. Danke für eure Hilfe.

{if $count > 0}
  <ul id="navigation">
  {foreach from=$nodelist item=node}

	{if $node->alias == 'kommunikation' && !tbtools::isLoggedIn()}
		{continue}
	{/if}
	{if $node->alias == 'finanzen' && !tbtools::isLoggedIn()}
		{continue}
	{/if}

    {if $node->depth > $node->prevdepth}
      {repeat string="<ul>" times=$node->depth-$node->prevdepth}
    {elseif $node->depth < $node->prevdepth}
      {repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
    </li>
    {elseif $node->index > 0}</li>
  {/if}
    <li>
    {if $node->current == true}<li id="active">{$node->menutext}
      {else}<a href="{$node->url}">{$node->menutext}</a>
    {/if}
  {/foreach}
  {repeat string="</li></ul>" times=$node->depth-1}</li>
  </ul>
{/if}

Beitrag geändert von Tranquillius (14. September 2013 08:42)

Offline

#8 16. September 2013 20:05

Tranquillius
probiert CMS/ms aus
Ort: Leipzig
Registriert: 10. September 2013
Beiträge: 52

Re: [GELÖST] Advanced Content (Erweiterter Inhalt) als Abschnittsüberschrift

Gibt es auch eine Möglichkeit einen Trenner (Trennstrich im Menü) ausblenden zu lassen, solange man ausgeloggt ist?

EDIT: Hab es selber hinbekommen:

        {if $node->type == 'separator' && !tbtools::isLoggedIn()}
		{continue}
	{/if}

Beitrag geändert von Tranquillius (19. September 2013 17:53)

Offline