Softronic har genom mångårig erfarenhet av nedanstående branscher utvecklat en rad erbjudanden som är specifika för just dessa.
Det är inte ovanligt att redaktörer vill lägga in olika spårningsscript från tex Google på sina sidor eller använda JavaScript för att ladda in reklambanners. Det kan med fördel göras i XhtmlEditorn.
EpiServer CMS 6 har den nya editor TinyMCE med en hel del nya funktioner men det finns fortfarande många webbplatser baserade på EPiServer CMS 5 och flera av dem kommer att leva vidare under lång tid framöver. I den gamla editorn är det inte lika lätt att lägga in JavaScript. En redaktör kan även här växla till html-läge och skriva in kod men problemet är att EpiServer har egenheten att ta bort koden nästa gång redaktören redigerar sidan. Man kan då i adminläget stänga av alla funktioner för editorn på den aktuella sidtypen för att på så sätt få den att hantera scriptkod. Men det kan man inte göra om man vill åstadkomma samma sak med editorns funktion för dynamic content. Där måste samma sak lösas programmatiskt.
Lyckligtvis finns en enkel lösning på problemet. Den kräver inte många rader kod och är inte svårare än att få ett ägg att stå på högkant.
I samma källkodsfil som du använder för din plugin för dynamic content lägger du till ytterligare en klass som heter tex PropertyScriptString som i sin tur ärver PropertyXhtmlString. Istället för att använda PropertyXhtmlString som egenskap i din plugin så använder du PropertyScriptString. Men för att få den att enbart vara ett fält för kod, JavaScript eller html, måste man ersätta EditorToolOption med en override. EditorToolOption är en enum med alla de funktioner som finns i editorn. Genom att välja värdet 0 istället för något av de som egentligen finns så returneras inget alls och editorn blir ett textfält för kod utan funktioner för att lägga in bilder och fetstil mm. Varje gång redaktören nu redigerar sidan och det dynamiska innehållet finns scriptkoden kvar.
[DCPlugin(DisplayName = "Script", Description = "Javascript", Url = "~/Templates/DynamicContent/DCScript.ascx")] public partial class DCScript : System.Web.UI.UserControl { public PropertyXhtmlString Script { get; set; } } public class PropertyScriptString : EPiServer.SpecializedProperties.PropertyXhtmlString { public override EPiServer.Editor.EditorToolOption EditorToolOptions { get { return 0; } } }
I ascx-filen skriver du helt enkelt ut egenskapen som vanligt.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DCScript.ascx.cs" Inherits="Templates.DynamicContent.DCScript" %> <%= Script %>