2012-07-09 12 views
5

EPiServer tylko:Pozwól niestandardowych atrybutów HTML w TinyMCE w EPiServer

Nasi klienci próbują dodać niestandardowe atrybuty do div-tag w edytorze TinyMCE - przełączyć się do trybu HTML, sprawia, że ​​zmiany i zapisać stronę. Następnie atrybuty są usuwane. Mycie HTML w ten sposób jest standardowym zachowaniem TinyMCE i możliwe jest skonfigurowanie go tak, aby zezwalał na niestandardowe atrybuty znaczników.

Moje pytanie brzmi: w jaki sposób skonfigurować TinyMCE w EPiServer aby umożliwić niestandardowych atrybutów HTML? Nie widzę, gdzie byłbym w stanie wciągnąć się w inicjalizację TinyMCE. Dodanie div do listy "bezpiecznych" znaczników w pliku episerver.config również nie działa (zobacz uiSafeHtmlTags).

Przykład:

<div class="fb-like" data-href="http://oursite" data-send="false"></div> 

Zostaje tylko

<div class="fb-like"></div> 

Z dokumentacji TinyMCE, jak dodać niestandardowe atrybuty tags: http://www.tinymce.com/wiki.php/Configuration:extended_valid_elements

Odpowiedz

10

mam tej klasy

using EPiServer.Editor.TinyMCE; 

namespace SomeNamespace 
{ 
    [TinyMCEPluginNonVisual(
     AlwaysEnabled = true, 
     EditorInitConfigurationOptions = "{ extended_valid_elements: 'iframe[src|frameborder=0|alt|title|width|height|align|name]' }")] 
    public class ExtendedValidElements { } 
} 

i to w episerver.config:

<episerver> 
.... 
<tinyMCE mergedConfigurationProperties="valid_elements, extended_valid_elements, invalid_elements, valid_child_elements" /> 
</episerver> 

w ostatnim projekcie. Powinien działać tak samo, jeśli zmienisz element iframe na div [data-href | data-send].

2

Masz 2 opcje:

Pierwsze

[TinyMCEPluginNonVisual(EditorInitConfigurationOptions = "{ extended_valid_elements: 'div[title|data-test]' }")] 

pozwolą title i data-test w znaczniku div.

div[*] pozwoli wszystkie atrybut w znaczniku div.

drugie

  • uczynić plugin TinyMCE dziedziczy IDynamicConfigurationOptions
  • realizować funkcję tak:

    public IDictionary<string, object> GetConfigurationOptions(){ 
        var customSettings = new Dictionary<string, object>(); 
        customSettings.Add("extended_valid_elements", "div[*]"); 
        return customSettings; 
    } 
    

ma potrzeby konfigurowania czegokolwiek w pliku .config (z Domyślna wartość EPiServer, wszystkie są w porządku).

0

Następujące pracował dla mnie:

[TinyMCEPluginNonVisual(AlwaysEnabled = true, EditorInitConfigurationOptions = "{ extended_valid_elements: 'div[*]' }", PlugInName = "ExtendedValidElements", ServerSideOnly = true)] 
public class TinyMceExtendedValidElements 
{ 
} 

Brak zmian w konfiguracji.

Powiązane problemy