Page 1 of 1

[Erledigt] Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 12:43 pm
by uniqu3
Hallo Community,

ich bin gerade dabei einen neuen Free Template für CMSMS zu erstellen und brauche eure Hilfe.
Ich vermute dazu wird nicht die komplette System Information benötigt aber trotzdem ich verwende:
CMS Version 1.7.1
Installed Modules
CMSMailer
2.0
FileManager
1.0.2
MenuManager
1.6.3
ModuleManager
1.3.3
News
2.10.5
nuSOAP
1.0.1
Printing
1.0.4
Search
1.6.3
ThemeManager
1.1.1
TinyMCE
2.7.0
EditArea
0.2.9
FormBuilder
0.6.2
BulkStructure
0.4
CGSimpleSmarty
1.4.5
Current PHP Version (phpversion):
5.2.10
Und jetzt zum Problem. Ich möchte automatisch im Template selber erkennen ob eine Seite Unterseite beinhaltet oder selbst als Unterseite definiert ist.
Wenn das der fall ist wird im Template per if abfrage die anordnung und {content} geändert.
Einen Ansatz habe ich mit cgsimplesmarty schon gefunden, zumindest funktioniert es wenn die Seite eine First level seite ist und diese Unterseiten beinhaltet, doch beim besuch der Unterseite funkionert es nicht mehr.

So die demo seite ist unter http://www.i-arts.eu/typofolio/index.php?page=features zu finden.
Und code zum Problem:

Code: Select all

<!-- start pageContent part -->
      {content block="Show Intro Text" oneline="true" size="1" default="-" assign="show_intro"}
      {if empty($show_intro)}{assign var="show_intro" value="+"}{/if}
        {if $show_intro == "+"}
      <div class="col col_16 pageIntro">
        <p>{content block="Intro Text" oneline='true'}
        </p>
      </div>
      <div class="clear">
        </div>
      {/if}
{$cgsimple->has_children('','has_children')}{if $has_children}
<div class="col col_11 pageContent">  <h2>{if isset($pagetitle)}
   {$pagetitle}
{else}
   {title}
{/if}</h2>
      {content}</div>
      <div class="col_5 col pageSidebar">
      <h2>Navigation</h2>
      {menu start_level='2'}
      <h2>Latest News</h2>
      {news summarytemplate='sidebarNews'}
      </div>{else}
      <div class="col col_16 pageContent">  <h2>
   {$pagetitle}
</h2>
      {content}
      </div>
            {/if}
Gebe es auch Lösung ohne cgsimplesmarty oder wie wäre die komplette Lösung mit cgsimplesmarty?

Danke!

Re: Hilfe Bitte - Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 5:28 pm
by owr_bgld
Ich hab mich noch nicht wirklich viel mit cgsimplesmarty beschäftigt. Daher mal die kurze Frage - ist es egal welche Unterseite? Wenn ja, dann kannst du einfach folgendes verwenden (ich habs mal aus der Modulhilfe kopiert, weil ich mir das ganze nie auswendig merke)
get_root_alias([$alias],[$assign])

Gibt den Alias der übergeordneten Seite der 1. Ebene zurück. Falls keine übergeordneten Seiten existieren, wird ein leerer String zurück gegeben.
also sozusagen

Code: Select all

{if $cgsimple->get_root_alias() ==""}das was bei der ersten Ebene reinkommt{else}das was bei Unterseiten reinkommt{/if}
bzw. die Frage mit dem Umweg wäre noch möglich

Code: Select all

.... {elseif $cgsimple->get_root_alias =="ALIAS"}Da kommt das für eine bestimmte Unterkategorie rein{else} ....

Re: Hilfe Bitte - Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 5:35 pm
by uniqu3
ja ist eigentlich egal welche seite/unterseite, es soll einfach zum verwalten sein, sprich als Template hier einfach zu handhaben, so das user nicht viel einstellen müssen und es einfach automatisch funzt :)

Ich werde es mal ausprobieren und berichten.

Re: Hilfe Bitte - Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 6:00 pm
by uniqu3
Leider bringt das nicht den erwünschten Effekt, sprich die Seite ändert sich nicht und bleibt mit 1 column.
Eigentlich müsste es doch irgendwie möglich sein die abfrage wie has_children auch für child zu machen?

Hier http://www.i-arts.eu/typofolio/index.php?page=features funktioniert die abfrage, sprich sidebar wird angezeigt das die Seite auch Unterseiten beinhaltet.

Code: Select all

{$cgsimple->has_children('','has_children')}{if $has_children}
Die abfrage erledigt die arbeit ist auch klar es fragt nach has_children und wenn diese da sind wird template geändert.
Beim klick auf http://www.i-arts.eu/typofolio/index.ph ... -a-subpage wird leider sidebar nicht angezeigt ist natürlich durch die abfrage oben auch natürlich da die Seite keine Unterseiten beinhaltet ist aber eine Unterseite.

Re: Hilfe Bitte - Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 6:27 pm
by NaN
Und was ist damit (ist im Prinzip owr_webs Idee nur nicht mit root_alias, sondern einfach nur parent_alias):

Code: Select all


{if $cgsimple->has_children() || $cgsimple->get_parent_alias()}
...
Mit sidebar und so
...
{else}
...
ohne sidebar
...
{/if}


Re: Hilfe Bitte - Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 6:30 pm
by uniqu3
NaN und owr_web meine helden  ;)

Das funktioniert NaN

Re: [Erledigt] Zeige Sidebar mit Navigation wenn Unternavigation vorhanden.

Posted: Mon Jul 05, 2010 7:44 pm
by owr_bgld
ahhh - ok jetzt hab ich realisiert wie du das
Und jetzt zum Problem. Ich möchte automatisch im Template selber erkennen ob eine Seite Unterseite beinhaltet oder selbst als Unterseite definiert ist.
gemeint hast  ;D

Aber schön das es jetzt funktioniert - NaN hat ja gottseidank die Zeile, bei der ich anscheinend gedanklich ausgestiegen bin genauer gelesen.

[offtopic]ich wundere mich in letzter Zeit immer öfter, warum ich das modul noch immer soweinig einsetze [/offtopic]