當用戶使用「插入鏈接」功能的RTE創建的故事,我們得到的東西像... <a href="link-to-story"><Item-Name-Of-Story</a>
Sitecore的富鏈接插入的文本編輯器定製
而不是採取項目名稱,我想使用所謂的「頭銜」
另一場有誰知道如何做到這一點?...
<a href="link-to-story">Headline-Of-Story</a>
任何幫助將非常感激。謝謝
當用戶使用「插入鏈接」功能的RTE創建的故事,我們得到的東西像... <a href="link-to-story"><Item-Name-Of-Story</a>
Sitecore的富鏈接插入的文本編輯器定製
而不是採取項目名稱,我想使用所謂的「頭銜」
另一場有誰知道如何做到這一點?...
<a href="link-to-story">Headline-Of-Story</a>
任何幫助將非常感激。謝謝
首先,你需要用Reflector或DotPeek來看這個類:Sitecore.Shell.Controls.RichTextEditor.InsertLink.InsertLinkForm並用你自己的類修改它。 您需要修改只是這種方法,我測試和工程罰款:
protected override void OnOK(object sender, EventArgs args)
{
Assert.ArgumentNotNull(sender, "sender");
Assert.ArgumentNotNull((object) args, "args");
string displayName;
string text;
if (this.Tabs.Active == 0 || this.Tabs.Active == 2)
{
Item selectionItem = this.InternalLinkTreeview.GetSelectionItem();
if (selectionItem == null)
{
SheerResponse.Alert("Select an item.", new string[0]);
return;
}
else
{
displayName = selectionItem["Headline"];
if (selectionItem.Paths.IsMediaItem)
text = CustomInsertLinkForm.GetMediaUrl(selectionItem);
else if (!selectionItem.Paths.IsContentItem)
{
SheerResponse.Alert("Select either a content item or a media item.", new string[0]);
return;
}
else
{
LinkUrlOptions options = new LinkUrlOptions();
text = LinkManager.GetDynamicUrl(selectionItem, options);
}
}
}
else
{
MediaItem mediaItem = (MediaItem) this.MediaTreeview.GetSelectionItem();
if (mediaItem == null)
{
SheerResponse.Alert("Select a media item.", new string[0]);
return;
}
else
{
displayName = mediaItem.DisplayName;
text = CustomInsertLinkForm.GetMediaUrl((Item) mediaItem);
}
}
if (this.Mode == "webedit")
{
SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(text));
base.OnOK(sender, args);
}
else
SheerResponse.Eval("scClose(" + StringUtil.EscapeJavascriptString(text) + "," + StringUtil.EscapeJavascriptString(displayName) + ")");
}
在修改這個類,你需要修改一個文件: \ Sitecore的\殼\控制\富文本編輯器\插入鏈接\插入鏈接。 XML,你需要改變codeBeside部分
<CodeBeside Type="Sitecore.Shell.Controls.RichTextEditor.InsertLink.InsertLinkForm,Sitecore.Client"/>
的東西,如:
<CodeBeside Type="YourNameSpace.YourInsertLinkForm,YourAssembly"/>
最簡單的方法是輸入所需的鏈接文本,然後在點擊「插入鏈接」之前選擇此項 - 這樣您的超鏈接將擁有您輸入的任何文本,而不是默認爲項目名稱。
如果您想要修改Sitecore在RTE字段中呈現鏈接的方式,則需要修改<renderField>
管道 - 如果您在web.config中搜索此內容,您將看到這裏涉及的不同類。使用dotPeek,您可以反編譯Sitecore源代碼以瞭解其工作原理。有可能你可以創建你自己的renderField管道處理程序來改變鏈接呈現行爲,然後在你的web.config中引用這個新類。
謝謝你太.. mdresser。非常感謝,謝謝。 :) –
非常感謝你Sitecore登山者!你是一個拯救生命的人! :) 再次感謝。 –