Есть ли способ подсчитать количество символов в RTE? По умолчанию он подсчитывает количество слов, но можем ли мы это изменить?
Я прочитал все документы и ничего не нашел.
Есть ли способ подсчитать количество символов в RTE? По умолчанию он подсчитывает количество слов, но можем ли мы это изменить?
Я прочитал все документы и ничего не нашел.
Исходная версия HTMLArea не поддерживает эту функцию. TYPO3 поставляется с модифицированной версией HTMLArea, где несколько лет назад была реализована функция подсчета слов. .
Я просмотрел исходный код TYPO3 RTE HTMLArea, и количество слов жестко запрограммировано и не настраивается.
Возможность добавить количество символов заключается в изменении поставляемой версии 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.
Если вы используете 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