Before you start remember that value you see in this field is the actual value of the field (this is true raw value of the field).
You will have to modify then two things:
- value of the field while saving
- logic for resolving the field value (getting item)
How to:
You need to create your own custom InternalLink
InternalLink.cs
using Sitecore.Data.Items;
namespace Sitecore.Custom.CustomFields.FieldTypes
{
public class InternalLink : Shell.Applications.ContentEditor.InternalLink
{
}
}
Configuration
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<controlSources>
<source patch:before="*[@namespace='Sitecore.Shell.Applications.ContentEditor']" mode="on" namespace="Sitecore.Custom.CustomFields.FieldTypes" assembly="Sitecore.Custom" prefix="content"/>
</controlSources>
</sitecore>
</configuration>
You will need new implementation of:
protected void OpenLink(ClientPipelineArgs args)
method to handle your custom link format.