2017-11-13 3 views
0

Gibt es eine Möglichkeit, eine neue Seite mit einem neuen Layout anzuzeigen? Im Moment mache ich ein neues Modul, aber ohne [Themed] suche ich nach einer einfacheren Möglichkeit, es zu tun? DankeNeues Layout für eine neue Seite in Orchard CMS

+1

Haben Sie versucht, eine alternative für das Layout Form verwendet? Wenn Sie den Ansichten Ihres Designs eine Layout-URL-whatever.cshtml hinzufügen, sollten Sie das Layout nur für diese Seite überschreiben können. Details hier: http://docs.orchardproject.net/en/latest/Documentation/Alternates/ –

Antwort

0

Angenommen von Layout meinst du Thema können Sie Orchard.Themes.IThemeSelector implementieren, um ein bestimmtes Thema auszuwählen. Hier ist ein Beispiel, das ein Thema Wähler zeigt, die das Thema auf einem ThemePickerPart basierend nimmt:

public class ThemePickerPartThemeSelector : Orchard.Themes.IThemeSelector 
{ 
    public ThemePickerPartThemeSelector(Orchard.ContentManagement.IContentManager aContentManager) 
    { 
    mContentManager = aContentManager; 
    } 

    public Orchard.Themes.ThemeSelectorResult GetTheme(System.Web.Routing.RequestContext aContext) 
    { 
    // get current content item, based on http://www.ideliverable.com/blog/getting-the-current-content-item-in-orchard 
    object lID; 

    if (aContext.RouteData.Values.TryGetValue("id", out lID)) 
    { 
     string lIDStr = lID as string; 

     if (lIDStr != null) 
     { 
     int lContentID; 

     if(int.TryParse(lIDStr as string, out lContentID)) 
     { 
      // try to get theme from theme picker part 
      var lContentItem = mContentManager.Get(lContentID, Orchard.ContentManagement.VersionOptions.Published); 

      if (lContentItem != null) 
      { 
      var lThemePickerPart = lContentItem.As<ThemePickerPart>(); 

      if (lThemePickerPart != null) 
      { 
       if (!string.IsNullOrEmpty(lThemePickerPart.ThemeId)) 
       { 
       // return selected theme 
       var lResult = new Orchard.Themes.ThemeSelectorResult {Priority = -3, ThemeName = lThemePickerPart.ThemeId}; 

       return lResult; 
       } 
      } 
      } 
     } 
     } 
    } 

    return null; // use configured theme 
    } 

    // private 
    private Orchard.ContentManagement.IContentManager mContentManager; 
} 
+0

es ist nicht wirklich ein Thema mit Codegen erstellt, sondern nur eine einfache Seite, die ich von woanders, ich möchte es mit Obstgarten-Seite anzeigen. Die Seite hat bereits eine eigene jquery, etc – samin