The forum of the forums
Welcome to the Official Support Forum of Forumotion!

To take full advantage of everything offered by our forum, please log in if you are already a member, or join our community if you've not yet.



Create a free forum like this one.

Editor Word Counter

View previous topic View next topic Go down

Solved Editor Word Counter

Post by inallsorts on July 4th 2014, 11:25 am

Greetings everyone,

I've applied the Word Counter as per this tutorial here on Forumotion: http://help.forumotion.com/t131191-add-a-word-counter-to-the-editor

It works great, however when you use the "Quote" button to post reply (on a given member's post), It also takes Into account the "Quoted text" (from the given member), hence the "minimum words to send" has already been exceeded (from the quoted text) without even posting anything.

Is there a way so the Word Counter does not take the quoted text Into account when quoting a post?

Thanks In advance for all help given.


Last edited by inallsorts on July 5th 2014, 10:11 am; edited 1 time in total (Reason for editing : Topic marked as solved.)

inallsorts
Forumember

Posts : 246
Reputation : 8
Language : English

Back to top Go down

Solved Re: Editor Word Counter

Post by Ange Tuteur on July 4th 2014, 4:55 pm

Hello inallsorts,

We can try to filter out the quotes with a regular expression. Give this a try :
Code:
$(function(){$(function(){

  var MinNumberOfWords = 5;
  var LetterCountPerWord = 3;
  var ico_compl = "http://i73.servimg.com/u/f73/18/10/89/49/ok-gre10.png";
  var ico_incompl = "http://i73.servimg.com/u/f73/18/10/89/49/exclam10.png";
 
  if($("#text_editor_textarea").length != 0){
  $("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
  $(".sceditor-container").after("<br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Minimum words to send a message: " + MinNumberOfWords + " (at least " + LetterCountPerWord + " letters)</div><div id='div_minchars_info'></div></div>");
 
  var sceditor = $("#text_editor_textarea").sceditor("instance");
  var str = sceditor.val();
  var regex = new RegExp('\\w{' + LetterCountPerWord + ',}\\b', 'g');
  var str_arr = str.match(regex);
  var str_len = str_arr == null ? 0 : str_arr.length;
 
  if(str_len >= MinNumberOfWords) $("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
 
  sceditor.keyUp(function(e) {
  str = sceditor.val().replace(/\n/g,' ').replace(/\[quote=".*?"\].*?\[\/quote\]/gi,'').replace(/\[quote\].*?\[\/quote\]/gi,'').replace(/\[\/quote\]/gi,'').replace(/\[quote\]/gi,'').replace(/\[quote=".*?"\]/gi,'');
  str_arr = str.match(regex);
  str_len = str_arr == null ? 0 : str_arr.length;
  if(str_len >= MinNumberOfWords) {
  $("#div_minchars_info").html("You've written <span style='color:green'>" + str_len + "</span> word(s). You can now send the message <img src='" + ico_compl + "' />");
  $("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
  }else{
  $("#div_minchars_info").html("You've written <span style='color:red'>" + str_len + "</span> word(s). You need " + (MinNumberOfWords - str_len) + " word(s) to send this message <img src='" + ico_incompl + "' />");
  $("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
  }
  });
  }
  })});

Ange Tuteur
Forumaster

Male Posts : 13028
Reputation : 2704
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

Solved Re: Editor Word Counter

Post by inallsorts on July 5th 2014, 10:08 am

@Ange Tuteur wrote:Hello inallsorts,

We can try to filter out the quotes with a regular expression. Give this a try :
Code:
$(function(){$(function(){

  var MinNumberOfWords = 5;
  var LetterCountPerWord = 3;
  var ico_compl = "http://i73.servimg.com/u/f73/18/10/89/49/ok-gre10.png";
  var ico_incompl = "http://i73.servimg.com/u/f73/18/10/89/49/exclam10.png";
 
  if($("#text_editor_textarea").length != 0){
  $("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
  $(".sceditor-container").after("<br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Minimum words to send a message: " + MinNumberOfWords + " (at least " + LetterCountPerWord + " letters)</div><div id='div_minchars_info'></div></div>");
 
  var sceditor = $("#text_editor_textarea").sceditor("instance");
  var str = sceditor.val();
  var regex = new RegExp('\\w{' + LetterCountPerWord + ',}\\b', 'g');
  var str_arr = str.match(regex);
  var str_len = str_arr == null ? 0 : str_arr.length;
 
  if(str_len >= MinNumberOfWords) $("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
 
  sceditor.keyUp(function(e) {
  str = sceditor.val().replace(/\n/g,' ').replace(/\[quote=".*?"\].*?\[\/quote\]/gi,'').replace(/\[quote\].*?\[\/quote\]/gi,'').replace(/\[\/quote\]/gi,'').replace(/\[quote\]/gi,'').replace(/\[quote=".*?"\]/gi,'');
  str_arr = str.match(regex);
  str_len = str_arr == null ? 0 : str_arr.length;
  if(str_len >= MinNumberOfWords) {
  $("#div_minchars_info").html("You've written <span style='color:green'>" + str_len + "</span> word(s). You can now send the message <img src='" + ico_compl + "' />");
  $("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
  }else{
  $("#div_minchars_info").html("You've written <span style='color:red'>" + str_len + "</span> word(s). You need " + (MinNumberOfWords - str_len) + " word(s) to send this message <img src='" + ico_incompl + "' />");
  $("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
  }
  });
  }
  })});
\".*?"\\ wrote:

You're absolutely brilliant! What would this board do without you.

The code has worked nicely, thank you kindly once again.
/Topic.

inallsorts
Forumember

Posts : 246
Reputation : 8
Language : English

Back to top Go down

Solved Re: Editor Word Counter

Post by Ange Tuteur on July 5th 2014, 5:50 pm

No problem Very Happy

Topic archived

Have a good day. ^^

Ange Tuteur
Forumaster

Male Posts : 13028
Reputation : 2704
Language : EN10, FR5
Location : Pennsylvania

http://fmdesign.forumotion.com

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum