2017-11-19 8 views

Antwort

4

TLDR;

Im Wesentlichen ja: Kopieren Sie Ihre MVC5-Layout-Inhalte in die Layout.cshtml-Datei Ihres Orchard-Themas.

Aber es gibt noch etwas: Ihre Quelle MVC5 Layout.cshtml Datei enthält wahrscheinlich Dinge wie <doctype>, <head> und <body> Elemente.

müssen diese Elemente in eine neue Datei Document.cshtml (auch im Ordner Sichten Ihres Themas) genannt gehen.

Das Endergebnis wird sein, dass Ihre Document.cshtml-Datei die äußere HTML-Struktur enthält, einschließlich des Elements <body>, aber der Inhalt des Elements <body> befindet sich in der Datei Layout.cshtml.

Orchard Theming Basics

Obwohl Sie brauchen nicht unbedingt, dies zu verstehen, um ein Orchard Thema zu schaffen, wenn ausgehend, aber ich fand, dass letztlich wird es Ihnen einen viel effektiveren themer, wenn Sie tun. Also hier ist eine kurze Einführung in Orchard Templating und Formen.

Orchards Template-Engine arbeitet mit einer Hierarchie von Shapes, die dynamische Objekte sind. Jede Form wird mit einer Formvorlage gerendert (normalerweise in Form einer Razor-Ansicht).

Der Stamm jeder Seite ist die Layout Form, die von der Layout-Vorlage Layout.cshtml gerendert wird.

Formen können "Wrapper" haben. Für die Layout-Form ist ein Wrapper mit der Bezeichnung Document definiert. Was dies in der Praxis bedeutet, ist, dass Sie in Ihrem Thema eine Document.cshtml-Datei und eine Layout.cshtml-Datei haben können (wenn Sie keine Document.cshtml-Datei in Ihrem Design haben, wird eine Standarddatei verwendet).

Die Document.cshtml-Ansicht definiert normalerweise den Dokumenttyp, das <head>-Element und das <body>-Element. Der Inhalt der <Layout> Form wird innerhalb dieses <body> Elements gerendert.

Je nachdem, was Sie in Ihrer MVC5 Layout.cshtml-Datei haben, müssen Sie möglicherweise eine Document.cshtml-Datei im Views-Ordner Ihres Designs erstellen. Persönlich tue ich das normalerweise so, dass es leicht ist, eine Veränderung vorzunehmen, wenn es nötig ist.

Dinge wie Kopfzeile und Fußzeile gehen normalerweise in die Layout.cshtml-Datei Ihres Themas, sodass Sie sie einfach aus Ihrer MVC5-Datei Layout.cshtml kopieren können.

Schließlich möchten Sie "hardcoded" HTML mit Inhalten aus dem CMS ersetzen. Dann ist es an der Zeit, Zonen zu Ihrer Layout.cshtml-Datei zu deklarieren.

eine Zone zu definieren, alles, was Sie tun müssen, ist Folgendes zu Ihren Layout.cshtml hinzufügen:

@Display(Model.MyZoneName) 

Sie können eine beliebigen Zonennamen verwenden können, wie Sie mögen, und on the fly (Sie dies nicht tun Sie müssen sie irgendwo anders definieren, außer in der Manifest-Datei Ihres Themes (Theme.txt), falls Sie dem CMS-Benutzer erlauben möchten, diesen Zonen Widgets hinzuzufügen).

Es gibt eine Reihe von vordefinierten Zonen, die Orchard kennt. In der Layout.cshtml-Datei ist das wichtigste die Content-Zone:

@Display(Model.Content) 

Die Content-Zone ist, wo Dinge wie die Inhalt der aktuellen Seite eingefügt wird. Aber auch andere Ansichten wie das Anmeldeformular, wenn Sie sich auf der Anmeldeseite des CMS befinden.

Es gibt viel mehr zu Formen und Zonen, aber ich hoffe, dass Sie damit zumindest beginnen können.

Weitere Informationen zu den Formen, Zonen und Theming, ist hier eine Reihe von nützlichen Ressourcen: