Можно ли считать символ в TYPO3 RTE?

Есть ли способ подсчитать количество символов в RTE? По умолчанию подсчитывается количество слов, но можем ли мы это изменить?

Я прочитал все документы и ничего не нашел.

Захват RTE

2 ответа

Если вы используете TYPO3 7, вы должны использовать этот модифицированный скрипт из предыдущего ответа:

updateWordCount: function() {
var wordCount = 0;
if (this.getEditor().getMode() == 'wysiwyg') {
        // Get the html content
    var text = this.getEditor().getHTML();
    if (!Ext.isEmpty(text)) {
            // Replace html tags with spaces
        text = text.replace(HTMLArea.RE_htmlTag, ' ');
            // Replace html space entities
        text = text.replace(/ | /gi, ' ');
            // Remove numbers and punctuation
        text = text.replace(HTMLArea.RE_numberOrPunctuation, '');
            // Get the number of word
        wordCount = text.length;
    }
}
    // Update the word count of the status bar
this.statusBarWordCount.innerHTML = wordCount + ' ' + ( wordCount == 1 ? 'char' : 'chars');
}, 

мне пришлось удалить.dom из следующей строки:

this.statusBarWordCount.dom.innerHTML

Оригинальная версия HTMLArea не поддерживает эту функцию. TYPO3 поставляется с модифицированной версией HTMLArea, где функция подсчета слов была реализована несколько лет назад.

Я заглянул в исходный код RTE HTMLArea TYPO3s, и количество слов жестко закодировано и не настраивается.

Возможность добавить количество символов состоит в том, чтобы изменить поставляемую версию HTMLArea.

Открыть файл \typo3\sysext\rtehtmlarea\htmlarea\htmlarea.js и заменить функцию updateWordCount со следующим.

updateWordCount: function() {
    var wordCount = 0;
    if (this.getEditor().getMode() == 'wysiwyg') {
            // Get the html content
        var text = this.getEditor().getHTML();
        if (!Ext.isEmpty(text)) {
                // Replace html tags with spaces
            text = text.replace(HTMLArea.RE_htmlTag, ' ');
                // Replace html space entities
            text = text.replace(/ | /gi, ' ');
                // Remove numbers and punctuation
            text = text.replace(HTMLArea.RE_numberOrPunctuation, '');
                // Get the number of word
            wordCount = text.length;
        }
    }
        // Update the word count of the status bar
    this.statusBarWordCount.dom.innerHTML = wordCount + ' ' + ( wordCount == 1 ? 'char' : 'chars');
},

Пожалуйста, обратите внимание, что это быстрое и грязное решение, которое не учитывает перевод слов "char" и "chars".

Если вы измените htmlarea.jsимейте в виду, что вы должны вручную обновлять свои изменения после каждого обновления ядра TYPO3.

Другие вопросы по тегам