2013-03-17 56 views
0

我在編輯內容類型「博客帖子」,並添加了我自己的字段(類型分類法)。現在我想將其設置爲必填字段,因此當用戶添加新的博文時,這是必需的。在果園CMS中,創建所需的字段

我該怎麼做?

回答

1

我相信你必須自己創建和處理一個「Required」屬性 - 你應該能夠從Orchard.Fields項目中的所有內置字段中查看它是如何完成的。例如,在驅動程序的MediaPickerField:

protected override DriverResult Editor(ContentPart part, Fields.MediaPickerField field, IUpdateModel updater, dynamic shapeHelper) { 
      // if the model could not be bound, don't try to validate its properties 
      if (updater.TryUpdateModel(field, GetPrefix(field, part), null, null)) { 
       var settings = field.PartFieldDefinition.Settings.GetModel<MediaPickerFieldSettings>(); 

       var extensions = String.IsNullOrWhiteSpace(settings.AllowedExtensions) 
         ? new string[0] 
         : settings.AllowedExtensions.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries); 

       if (extensions.Any() && field.Url != null && !extensions.Any(x => field.Url.EndsWith(x, StringComparison.OrdinalIgnoreCase))) { 
        updater.AddModelError("Url", T("The field {0} must have one of these extensions: {1}", field.Name.CamelFriendly(), settings.AllowedExtensions)); 
       } 

       if (settings.Required && String.IsNullOrWhiteSpace(field.Url)) { 
        updater.AddModelError("Url", T("The field {0} is mandatory", field.Name.CamelFriendly())); 
       } 
      } 

      return Editor(part, field, shapeHelper); 
     } 

注意返回剛纔的編輯器之前,它會檢查現場已被設置爲必需的,如果有而且也注意到所提供的調用updater.AddModelError ()。我想你也必須爲Taxonomy字段實現Required屬性。

+1

嘿,男人,不要只是downvote我的答案,因爲你懶得實施它。如果有什麼不清楚的地方,你可以要求澄清...... – 2013-03-29 04:51:06