2016-07-27 4 views
2

Ich verwende Orchard CMS 1.10.1. Ich habe einen benutzerdefinierten Inhaltstyp namens "Animal" mit einem MediaLibraryPicker-Feld erstellt. Und ich habe eine Projektion erstellt, um eine Liste von Tieren zu zeigen. In dieser Liste möchte ich Parts_Image_Summary anzeigen und im Animal Detail Modus möchte ich Parts_Image_Detail zeigen. Zu diesem Zweck habe ich eine Alternative Fields.MediaLibraryPicker-Animal.cshtml und änderte ihren Code ausErstellen Sie im Detail- und Zusammenfassungsmodus eines benutzerdefinierten Inhaltstyps zwei separate Alternativen für Medienbibliothek-Auswahlfelder

@Display(BuildDisplay(content, "Summary")) 

zu

@Display(BuildDisplay(content, "Detail")) 

Problem diese alternative Effekte sowohl Tier-Detail-Modus und Tier Zusammenfassung Modus, ich brauche nur diese Alternative für Tier Detailmodus.

Shape tracer zeigt keinen alternativen Namen, der meinem Bedarf entspricht. Ich habe versucht, den alternativen Dateinamen in Fields.MediaLibraryPicker-Animal-Detail.cshtml zu ändern, aber es hat nicht funktioniert.

Antwort

2

Orchard viel Feld wechselt, aber diese Stellvertreter sind nicht diese, aber Sie können einfach durch die Implementierung IShapeTableProvider Schnittstelle nach jeder neuen alternativen hinzufügen:

public class Shapes : IShapeTableProvider { 
    public void Discover(ShapeTableBuilder builder) { 
     builder.Describe("Fields_MediaLibraryPicker") 
      .OnDisplaying(displaying => { 
       ContentItem contentItem = displaying.Shape.ContentItem as ContentItem; 

       if (contentItem == null) { 
        return; 
       } 

       // [ShapeType]__[ContentType]__[DisplayType] e.g. Fields.MediaLibraryPicker-Animal-Detail 
       displaying.ShapeMetadata.Alternates.Add(EncodeAlternateElement(
        displaying.ShapeMetadata.Type + "__" + 
        contentItem.ContentType + "__" + 
        displaying.ShapeMetadata.DisplayType)); 
      }); 
    } 

    private string EncodeAlternateElement(string alternateElement) { 
     return alternateElement.Replace("-", "__").Replace(".", "_").Replace(" ", ""); 
    } 
} 
+0

Dank Kumpel, half es alot –

Verwandte Themen