View Single Post
  #1  
Old 05-23-2005, 10:25 AM
 
PhilJ PhilJ is offline
 

X-Guru
  
Join Date: Nov 2002
Posts: 4,094
 

Default Limit Customer Review Length with Character Limit Indicator

Simple mod to limit the length of customer reviews. It shows an indication of how many characters are left. Made for v4.0.1.3

Adapted from http://www.dynamicdrive.com/dynamicindex16/limitinput.htm

1) Make a new file, skin1/reviewlimit.js

Code:
/* Form field Limiter script- By Dynamic Drive For full source code and more DHTML scripts, visit http://www.dynamicdrive.com This credit MUST stay intact for use */ var ns6=document.getElementById&&!document.all function restrictinput(maxlength,e,placeholder){ if (window.event&&event.srcElement.value.length>=maxlength) return false else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){ var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys if (pressedkey.test(String.fromCharCode(e.which))) e.stopPropagation() } } function countlimit(maxlength,e,placeholder){ var theform=eval(placeholder) var lengthleft=maxlength-theform.value.length var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder) if (window.event||e.target&&e.target==eval(placeholder)){ if (lengthleft<0) theform.value=theform.value.substring(0,maxlength) placeholderobj.innerHTML=lengthleft } } function displaylimit(thename, theid, thelimit){ var theform=theid!=""? document.getElementById(theid) : thename var limit_text='<span id="'+theform.toString()+'">'+thelimit+'</span> characters remaining' if (document.all||ns6) document.write(limit_text) if (document.all){ eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)} eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)} } else if (ns6){ document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); } }

2) Add this code at the top of skin1/customer/product.tpl

Code:
<script language=JavaScript1.3 src="{$SkinDir}/reviewlimit.js"></script>

3) In skin1/modules/Customer_Reviews/reviews.tpl

Change

Code:
<TEXTAREA cols="40" rows="4" name="review_message"></TEXTAREA>

to

Code:
<TEXTAREA cols="40" rows="4" name="review_message"></TEXTAREA> <script>displaylimit("review","review_message",255)</script>

255 being the character limit. Change to whatever length you want.

__________________
xcartmods.co.uk
Reply With Quote