0251 / 590 837 15
info@a-coding-project.de
;

Lokales Menü ein/ausblenden

Code & Blog Logo

Code & Blog Logo

Das lokale Menü des CMS soll nur eingeblendet werden, wenn auch Einträge dafür vorhanden sind. Hierzu brauchen wir als erstes eine Funktion, welches dieses Prüft. Sie heißt localMenuExists und gehört in die Klasse sys (Verzeichnis system):

...
function localMenuExists(){
    global $currentpage;
    if($currentpage->menu){
      return true;
    }
    else{
      return false;
    }
  }
...

Um die lokale Navigation auszublenden, muss lediglich das CSS geändert werden. Denn wenn keine Einträge vorhanden sind, wird sie so oder so nicht erstellt.

Im Style-Abschnitt kommt einfach eine PHP Abfrage hinzu und fertg (Datei system/skins/default/index.php):

#content{
        background-color:#fff;
        <?PHP if(sys::localMenuExists()){
        ?>
        width:78%;
        position:relative;
        margin-left:20%;
        <?PHP
          }
        ?>
        padding:1%;
}

Und schon ist die lokale Navigation bei den passenden Seiten auch nicht mehr da. Zum Vergleich (Seiten können sich geändert haben):

http://cms.stevieswebsite.de/testseite.htm

und nun ohne Navi:

http://cms.stevieswebsite.de/testseite2.htm

Kommentare

Hannes schrieb am 14.06.2010:

Hi, erstmal: dickes Lob für diese ganze Aktion. Ich beschäftige mich grade das erste Mal mit OOP, und in diesem Tutorial wird das auch sehr gut erklärt. dann: die function localMenuExists gibt bei mir immer true zurück, ich hätte einen kleinen Änderungsvorschlag: ... if($currentpage-&gt;menu &gt; -1){ ... das Menü existiert auf jeden Fall, es hat nur eben in den meisten Fällen den Wert -1, also nicht existent. Dann funktioniert bei mir alles. MfG, Hannes

Marco schrieb am 27.11.2010:

Servus, Ich finde es super das es wenigstens 1 tut zu diesem thema gibt. Respekt an dich. Ich habe mal hier ein kleines Problem entdeckt wo ich diesen schritt ausprobiert habe und komme jetzt nicht weiter. Er zeigt mir jetzt einen Fehler auf mein Test CMS an! Parse error: syntax error, unexpected $end in /data/multiserv/users/473118/projects/1140101/www/system/skins/default/index.php on line 71 Das Problem ist ich finde meinen Fehler nicht. Ich werde mir glaube ich noch mal denn quelltext paar mal durch lesen und gucken ob ich was finde woran es liegen könnte. Würde mich über jede Hilfe freunen MfG Marco Wagner

Marco schrieb am 27.11.2010:

Servus, ich bin es noch mal. Ich habe meinen Fehler gefunden ;-) habe vergessen die php anweißung wieder zu schließen. MfG Marco

Ben schrieb am 01.02.2011:

@Stevie Super Sache dieses Tutorial, gefällt mir alles wunderbar bisher! Habe zuvor immer mit Wordpress, Joomla und Co. gearbeitet und wollte mich für zukünftige Projekte nicht mehr so einschränken lassen. Mit Hilfes dieses Tutorials bin ich jedenfalls zuversichtlich, dass ich in zukunft meine Projekte besser lösen kann;) THUMSUP! @Hannes Danke für den Tipp, hab auch immer nur True rausbekommen, so gehts auf jedenfall besser wenn wir bei -1 für "kein Menu" bleiben