Umbraco 设置Document Types 的默认值

Umbraco 里面设置DocumentTypes 的时候它是没有默认值选项的
那么新建页面的时候怎么样去设置他的默认值?
DocumentType 里面 新建新的Property时候 它有个Description 让我们输入该Property的描述信息
那么现在我们就在Description里做文章了,比如:我们在Description里面输入的内容,两个'#'符号内的内容为默认值
这里我们使用Umbraco的ActionHandler接口,单当前的Action为New的时候,处理设置默认值

 1using System;
 2using System.Collections.Generic;
 3using System.Text;
 4using umbraco.cms.businesslogic.web;
 5using umbraco.interfaces;
 6using System.Text.RegularExpressions;
 7using umbraco.BusinessLogic.Actions;
 8
 9namespace BetterTrades.CMS.UmbracoPlugins
10{
11    public class SetDefaultValueHandler : IActionHandler
12    {
13        IActionHandler Members
27
28        public bool Execute(Document documentObject, IAction action)
29        {
30            foreach (umbraco.cms.businesslogic.property.Property Uproperty in documentObject.getProperties)
31            {
32                if (!string.IsNullOrEmpty(Uproperty.PropertyType.Description))
33                {
34                    try
35                    {
36                        object obj = GetDefaultValue(Uproperty.PropertyType.Description);
37                        if (Uproperty.PropertyType.DataTypeDefinition.DataType.DataTypeName == "True/False (Ja/Nej)")
38                            Uproperty.Value = Convert.ToBoolean(obj);
39                        else
40                            Uproperty.Value = obj;
41                    }

42                    catch
43                    { }
44                }

45            }

46            return true;
47        }

48
49        object GetDefaultValue(string content)
50        {
51            Regex regex = new Regex(@"#(?<value>.*)#", RegexOptions.Compiled | RegexOptions.ExplicitCapture | RegexOptions.Singleline);
52            Match match = regex.Match(content);
53
54            return match.Groups["value"].Value;
55        }

56
57    }

58}

59

posted on 2008-05-06 10:33  jerreychen  阅读(623)  评论(0编辑  收藏  举报

导航