Можно ли считать символ в TYPO3 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.