Подтвердить что ты не робот

TinyMCE Продвинутая тема - Где это?

Я создаю выпадающий список, содержащий список классов, чтобы мои пользователи могли применять их для ссылок, абзацев и т.д. Я читал во многих местах, когда тема advanced поддерживает это я не могу узнать, где скачать эту тему.

Я подозреваю, что расширенная тема - Wordpress только в этот момент, поскольку я обнаружил, что она включена в загрузку wordpress, но не в формате, который позволил бы мне его использовать.

Я что-то пропустил?

4b9b3361

Ответ 1

Хорошо, я узнал, где находится путаница.

TinyMCE версии 3.x содержат тему advanced, но она не поставляется с 4.0, которую я использую. Я загрузил 3.x и попробовал расширенную тему с 4.0, но не совместим. Wordpress кажется кораблем с 3.x, поэтому я думал, что это вариант только для Wordpress.

Для получения дополнительной информации (надеясь, что это поможет кому-то еще):

Теперь вам нужно использовать опции format_styles и custom_formats для редактора TinyMCE, чтобы дать пользователям возможность выбирать стили. Я написал код, который анализирует мой CSS файл, ищет все классы H2, 2 etc, P и A и заполняет эти параметры. Это долгий путь, но он работает очень хорошо. Это просто позор, что нет обычной процедуры.

В итоге я использовал CssParser со следующим кодом (С# - Скопировать вставку это не сработает, но это должно дать хорошее руководство о том, что делать)

//Declared so we can deserialise into JSON
public class CustomFormat
{
    public string title;
    public string selector;
    public string classes;
}

private void BuildTinyMCECSS()
{
    List<string> AllowedTags = new List<string> { "p", "a", "h1", "h2", "h3", "h4", "h5", "h6" };
    CssParser StyleSheet = new CssParser();
    StyleSheet.AddStyleSheet("MyPath/Styles.css");

    //1: Only in our allowed tags. 2: Isn't a pseudo class. 3: Is a class of one of the allowed tags.
    foreach (KeyValuePair<string, StyleClass> Style in StyleSheet.Styles.Where(n => AllowedTags.Any(a => n.Key.StartsWith(a) && !n.Key.Contains(':') && n.Key.Contains('.'))))
    {
        CustomFormat CF = new CustomFormat();
        CF.title = Style.Key;
        CF.selector = Style.Key.Substring(0, Str.IndexOf('.'));
        CF.classes = Style.Key.Substring(Style.Key.IndexOf('.') + 1);

            //Note: CCUtils is a static class I use for utilities. Any code to deserialise will work
        string JS = String.Format("{1},", Style.Key, CCUtils.SerializeToStringJSON(CF, typeof(CustomFormat)));
        Session["JS"] += JS;
    }
    //Remove the spare comma at the end (ie won't like it)
    Session["JS"] = Session["JS"].ToString().Substring(0, Session["JS"].ToString().LastIndexOf(','));
}

Мой код инициализации для style_formats выглядит так (обратите внимание, мне нужно повторно добавить параметры по умолчанию, поскольку добавление чего-либо в style_format очищает существующий список.

style_formats:
[{
    title: "Headers",
    items: [{title: "Header 1",format: "h1"}, {title: "Header 2",format: "h2"}, {title: "Header 3",format: "h3"}, {title: "Header 4",format: "h4"}, {title: "Header 5",format: "h5"}, {title: "Header 6",format: "h6"}]}, 
            {title: "Inline",items: [{title: "Bold",icon: "bold",format: "bold"}, {title: "Italic",icon: "italic",format: "italic"}, 
            {title: "Underline",icon: "underline",format: "underline"}, {title: "Strikethrough",icon: "strikethrough",format: "strikethrough"}, {title: "Superscript",icon: "superscript",format: "superscript"}, {title: "Subscript",icon: "subscript",format: "subscript"}, {title: "Code",icon: "code",format: "code"}]}, 
            {title: "Blocks",items: [{title: "Paragraph",format: "p"}, {title: "Blockquote",format: "blockquote"}, {title: "Div",format: "div"}, {title: "Pre",format: "pre"}]}, 
            {title: "Alignment",items: [{title: "Left",icon: "alignleft",format: "alignleft"}, {title: "Center",icon: "aligncenter",format: "aligncenter"}, {title: "Right",icon: "alignright",format: "alignright"}, {title: "Justify",icon: "alignjustify",format: "alignjustify"}]}, 
            {
    title: "Classes", items: [<%= Session["JS"] %>]
}]

Более подробную информацию о опции style_formats можно найти здесь: Форматы стиля TinyMCE