diff --git a/src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs b/src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs index a0aff986f53e..130a2f1a2dad 100644 --- a/src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs +++ b/src/umbraco.cms/businesslogic/datatype/DataTypeDefinition.cs @@ -135,11 +135,16 @@ public XmlElement ToXml(XmlDocument xd) XmlElement prevalues = xd.CreateElement("PreValues"); foreach (DictionaryEntry item in PreValues.GetPreValues(this.Id)) { - XmlElement prevalue = xd.CreateElement("PreValue"); - prevalue.Attributes.Append(xmlHelper.addAttribute(xd, "Id", ((PreValue)item.Value).Id.ToString())); - prevalue.Attributes.Append(xmlHelper.addAttribute(xd, "Value", ((PreValue)item.Value).Value)); + var prevalue = (PreValue)item.Value; + var element = xd.CreateElement("PreValue"); + element.Attributes.Append(xmlHelper.addAttribute(xd, "Id", prevalue.Id.ToString())); - prevalues.AppendChild(prevalue); + if (!string.IsNullOrWhiteSpace(prevalue.Alias)) + element.Attributes.Append(xmlHelper.addAttribute(xd, "Alias", prevalue.Alias)); + + element.Attributes.Append(xmlHelper.addAttribute(xd, "Value", prevalue.Value)); + + prevalues.AppendChild(element); } dt.AppendChild(prevalues); diff --git a/src/umbraco.cms/businesslogic/datatype/PreValue.cs b/src/umbraco.cms/businesslogic/datatype/PreValue.cs index 94c92627c3ec..1746f21b4d01 100644 --- a/src/umbraco.cms/businesslogic/datatype/PreValue.cs +++ b/src/umbraco.cms/businesslogic/datatype/PreValue.cs @@ -43,6 +43,21 @@ public PreValue(int Id, int SortOrder, string Value) _value = Value; } + /// + /// Initializes a new instance of the class. + /// + /// The unique identifier. + /// The sort order. + /// The value. + /// The alias. + public PreValue(int Id, int SortOrder, string Value, string Alias) + { + _id = Id; + _sortOrder = SortOrder; + _value = Value; + _alias = Alias; + } + /// /// Initializes a new instance of the class. /// @@ -92,7 +107,8 @@ public static PreValue MakeNew(int dataTypeDefId, string value) private int _dataTypeId; private int? _id; private string _value; - private int _sortOrder; + private int _sortOrder; + private string _alias; #endregion #region Public properties @@ -134,7 +150,23 @@ public int SortOrder { get { return _sortOrder; } set { _sortOrder = value; } - } + } + + /// + /// Gets or sets the alias. + /// + /// The alias. + public string Alias + { + get + { + if (_alias == null) + _alias = string.Empty; + + return _alias; + } + set { _alias = value; } + } #endregion #region Public methods @@ -195,12 +227,13 @@ public void Save() private void initialize() { IRecordsReader dr = SqlHelper.ExecuteReader( - "Select id, sortorder, [value] from cmsDataTypePreValues where id = @id order by sortorder", + "SELECT id, sortorder, [value], alias FROM cmsDataTypePreValues WHERE id = @id ORDER BY sortorder", SqlHelper.CreateParameter("@id", Id)); if (dr.Read()) { _sortOrder = dr.GetInt("sortorder"); _value = dr.GetString("value"); + _alias = dr.GetString("alias"); } dr.Close(); } diff --git a/src/umbraco.cms/businesslogic/datatype/PreValues.cs b/src/umbraco.cms/businesslogic/datatype/PreValues.cs index 02a3cdd92ead..5ac82305a180 100644 --- a/src/umbraco.cms/businesslogic/datatype/PreValues.cs +++ b/src/umbraco.cms/businesslogic/datatype/PreValues.cs @@ -30,13 +30,13 @@ public static SortedList GetPreValues(int DataTypeId) { SortedList retval = new SortedList(); IRecordsReader dr = SqlHelper.ExecuteReader( - "Select id, sortorder, [value] from cmsDataTypePreValues where DataTypeNodeId = @dataTypeId order by sortorder", + "SELECT id, sortorder, [value], alias FROM cmsDataTypePreValues WHERE DataTypeNodeId = @dataTypeId ORDER BY sortorder", SqlHelper.CreateParameter("@dataTypeId", DataTypeId)); int counter = 0; while (dr.Read()) { - retval.Add(counter, new PreValue(dr.GetInt("id"), dr.GetInt("sortorder"), dr.GetString("value"))); + retval.Add(counter, new PreValue(dr.GetInt("id"), dr.GetInt("sortorder"), dr.GetString("value"), dr.GetString("alias"))); counter++; } dr.Close();