@@ -19,13 +19,13 @@ public partial class XmlBlogProvider : BlogProvider
1919 /// Saves custom field
2020 /// </summary>
2121 /// <param name="field">Object custom field</param>
22- public override void SaveCustomField ( BlogEngine . Core . Data . Models . CustomField field )
22+ public override void SaveCustomField ( Data . Models . CustomField field )
2323 {
2424 var fileName = Path . Combine ( this . Folder , _customFieldsFile ) ;
2525
2626 var x = FillCustomFields ( ) ;
2727
28- var items = FillCustomFields ( ) ?? new List < BlogEngine . Core . Data . Models . CustomField > ( ) ;
28+ var items = FillCustomFields ( ) ?? new List < Data . Models . CustomField > ( ) ;
2929 int idx = - 1 ;
3030
3131 for ( int index = 0 ; index < items . Count ; index ++ )
@@ -71,18 +71,18 @@ public override void SaveCustomField(BlogEngine.Core.Data.Models.CustomField fie
7171 /// </summary>
7272 /// <param name="blog">Current blog</param>
7373 /// <returns>List of custom fields</returns>
74- public override List < BlogEngine . Core . Data . Models . CustomField > FillCustomFields ( )
74+ public override List < Data . Models . CustomField > FillCustomFields ( )
7575 {
7676 var fileName = Path . Combine ( this . Folder , _customFieldsFile ) ;
7777
7878 if ( ! File . Exists ( fileName ) )
79- return new List < BlogEngine . Core . Data . Models . CustomField > ( ) ;
79+ return new List < Data . Models . CustomField > ( ) ;
8080
8181 var doc = new XmlDocument ( ) ;
8282 doc . Load ( fileName ) ;
8383
8484 return ( from XmlNode node in doc . SelectNodes ( "CustomFields/item" )
85- select new BlogEngine . Core . Data . Models . CustomField
85+ select new Data . Models . CustomField
8686 {
8787 CustomType = node . Attributes [ "customtype" ] . InnerText ,
8888 ObjectId = node . Attributes [ "objectid" ] . InnerText ,
@@ -97,7 +97,7 @@ public override void SaveCustomField(BlogEngine.Core.Data.Models.CustomField fie
9797 /// Deletes custom field
9898 /// </summary>
9999 /// <param name="field">Object field</param>
100- public override void DeleteCustomField ( BlogEngine . Core . Data . Models . CustomField field )
100+ public override void DeleteCustomField ( Data . Models . CustomField field )
101101 {
102102 var fileName = Path . Combine ( this . Folder , _customFieldsFile ) ;
103103 var xmlDoc = new XmlDocument ( ) ;
@@ -128,5 +128,41 @@ public override void DeleteCustomField(BlogEngine.Core.Data.Models.CustomField f
128128 }
129129 xmlDoc . Save ( fileName ) ;
130130 }
131+
132+ /// <summary>
133+ /// Clear custom fields for a type (post, theme etc)
134+ /// </summary>
135+ /// <param name="blogId">Blog id</param>
136+ /// <param name="customType">Custom type</param>
137+ /// <param name="objectType">Custom object</param>
138+ public override void ClearCustomFields ( string blogId , string customType , string objectType )
139+ {
140+ var fileName = Path . Combine ( this . Folder , _customFieldsFile ) ;
141+ var xmlDoc = new XmlDocument ( ) ;
142+
143+ xmlDoc . Load ( fileName ) ;
144+ var items = xmlDoc . SelectNodes ( "CustomFields/item" ) ;
145+
146+ if ( items != null && items . Count > 0 )
147+ {
148+ for ( int i = 0 ; i < items . Count ; i ++ )
149+ {
150+ if ( items [ i ] . Attributes != null
151+ && items [ i ] . Attributes [ "customtype" ] != null
152+ && items [ i ] . Attributes [ "blogid" ] != null
153+ && items [ i ] . Attributes [ "objectid" ] != null )
154+ {
155+ if ( items [ i ] . Attributes [ "customtype" ] . InnerText == customType
156+ && items [ i ] . Attributes [ "blogid" ] . InnerText == blogId
157+ && items [ i ] . Attributes [ "objectid" ] . InnerText == objectType )
158+ {
159+ if ( items [ i ] . ParentNode != null )
160+ items [ i ] . ParentNode . RemoveChild ( items [ i ] ) ;
161+ }
162+ }
163+ }
164+ }
165+ xmlDoc . Save ( fileName ) ;
166+ }
131167 }
132168}
0 commit comments