Skip to main content
Skip table of contents

Abrufen der Navigation

Alle Menüs innerhalb eines Centauri Shops sind Navigationen mit beliebig viele Navigations-Elementen in beliebig vielen Hierarchien (d.h. jedes Navigations-Element kann wieder Navigations-Elemente beinhalten).

Typische Beispiele für Menüs sind das Hauptmenü mit den Produktkategorien und die Links im Fußbereich.

Die per Pages System angelegte Navigation (üblicherweise zumindest eine MAIN und eine FOOTER Navigation) kann entweder

  • über das Objektmodell mit Hilfe der Centauri.Shop.Pages.Navigation Klasse und Razor-Code in den Views

  • über Javascript und REST Calls über den Pages Controlller

abgerufen werde.

 

Abrufen der Navigation per Objektmodell

Innerhalb der Razor Seite oder im Model der View muß zunächst ein Centauri.Shop.Pages.Navigation Objekt angelegt werden. Das Objekt bekommt im Konstruktor die Identifikation des gewünschten Menüs verwendet werden.

Danach werden von diesem Objekt die Element in der Items Collection abgerufen und damit der HTML Code für das Menü aufgebaut.

CODE
<ul>
@foreach (Centauri.Shop.Pages.NavigationItem item in new Centauri.Shop.Pages.Navigation("MAIN").ExpandedItems)
{
     <li><a href="#">@item.Caption</a></li>
}
</ul>

Abruf per Javascript

Der Pages Controller stellt Methoden

  • zum Abrufen der Haupt-Menüpunkte einer Navigation

  • zum Abrufen eines Untermenüs innerhalb einer Navigation (inklusive Untermenü-Punkte)

Jeder der beiden Calls ist zum Abrufen über den numerischen Id (…ById) oder zum Abrufen über den Identifier (…ByIdentifier) verfügbar. Wichtig: Identifier ist NICHT gleich Menüname.

 

Um das Hauptmenü mit dem Identifier MAIN über den Identifier abzurufen, wird folgender Call verwendet:

CODE
https://www.company.com/page/getMenuByIdentifier/?identifier=MAIN

Üblicherweise ist in einem Shop zumindest eine Navigation mit dem Identifier MAIN und eine Navigation mit dem Identifier FOOTER für die Links im Fußbereich vorhanden.

Der Call liefert ein JSON der Form:

CODE
{
   "content":[
      {
         "id":"1055",
         "title":"Praxis \u0026 Büro",
         "url":""
      },
      {
         "id":"1056",
         "title":"Labor",
         "url":""
      },
      {
         "id":"1057",
         "title":"Injektion \u0026 Infusion",
         "url":""
      }
   ]
}

 

Um das Hauptmenü mit dem Id 2 über die Id abzurufen, wird folgender Call verwendet:

CODE
https://www.company.com/page/getMenuById/?id=2

Üblicherweise ist in einem Shop zumindest eine Navigation für das Hauptmenü und für den Fußbereich vorhanden. Die numerische Id sollte normalerweise nur verwendet werden, wenn sie aus einem anderen Funktionsaufruf bekannt ist. Keinesfalls sollten fixe numerische Ids im Javascript Code verwendet werden.

Das resultierende JSON ist identisch mit dem obigen Aufruf.

 

Um das Untermenü mit der Identifikation AKTION abzurufen, wird folgender Call verwendet:

CODE
https://www.company.com/page/getSubmenuByIdentifier/?identifier=AKTION

Der Identifier muss in den Admin Pages für den jeweiligen Menüpunkt hinterlegt werden.

CODE
{
   "advertisement":{
      "imgUrl":"http://MC-dev.wyru.net/img/MC/novak-banner.jpg",
      "body":"Exklusiv auf hohem Niveau",
      "url":"http://MC-dev.wyru.net/novak"
   },
   "content":[
      {
         "content":[
            {
               "icon":"",
               "title":"Autoklaven \u0026 Sterilisatoren",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Kühlschränke",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Leitern \u0026 Auftritte",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Luftreiniger \u0026-erfrischer",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Sichtschutzsysteme",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Spender \u0026 Zubehör",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Untersuchungsleuchten",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Weitere Praxiseinrichtung",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Anatomische Modelle \u0026 Lehrtafeln",
               "body":"",
               "url":""
            }
         ],
         "title":"Praxiseinrichtungen",
         "subtitle":""
      },
      {
         "content":[
            {
               "icon":"",
               "title":"Arztkoffer",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Arzttaschen",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Ampularien \u0026 Instrumenten Etuis",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Labor- \u0026 Kühltaschen",
               "body":"",
               "url":""
            },
            {
               "icon":"",
               "title":"Rezept- \u0026 Fomulartaschen",
               "body":"",
               "url":""
            }
         ],
         "title":"Arzttaschen \u0026-koffer",
         "subtitle":""
      }
   ],
   "title":"die richtigen Instrumente finden",
   "style":"1"
}

 

Um das Untermenü mit der Id 1055 über die Id abzurufen, wird folgender Call verwendet:

CODE
https://www.company.com/page/getSubmenuById/?id=1055

Die numerische Id wird normalerweise innerhalb der Razor View mit dem Objektmodul ermittelt oder durch einen Aufruf von getMenuById bzw. getMenuByIdentifier.

 

Verschiedene Menü-Styles

Um Unterschiedliche Menüarten darzustellen (nur eine Menümenüebene mit großen Icons für jeden Menüpunkt oder zweistufige Menüs und Werbebanner pro Menü usw.) hat jedes Untermenü einen Style Parameter, der im Layout jeweils unterschiedlich dargestellt wird.

Innerhalb des Objekt-Modells ist dieser Style-Parameter nur ein String. Ob in diesem Feld 1 oder 2 oder STYLE1 oder STYLE2 oder SIMPLE oder EXTENDED verwendet wird, muss nur zwischen Webdesigner und Redaktion vereinbart werden.

Erstellen der Navigation über die Admin Pages

Die Menüs werden in der Admin mit dem Modul Navigation in der Kategorie Seiten erstellt.

Navigation in der Shop Datenbank

Alle Menüs eines Shops werden in den Tabellen pagenavigations und pagenavigationitems gespeichert.

Feldname

Feldtyp

navigationID

int

identifier

varchar(50)

Name

varchar(255)

Feldname

Feldtyp

navigationitemID

int

parentID

int

navigationID

int

identifier

varchar(50)

type

varchar(50)

caption

varchar(50)

url

varchar(250)

target

varchar(50)

position

int

loggedin

varchar(5)

punchout

varchar(5)

visible

varchar(5)

supervisor

varchar(5)

seller

varchar(5)

teaser

varchar(MAX)

picture_prev

varchar(255)

subtitle

varchar(255)

style

varchar(30)

 

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.