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();