Those who wants to include simple 5 star rating mechanism in their ROR application.Can include a couple of functions in their helper to provide a form a rating field and display the result.Of course no 1/2 ratings can be achieved through this way. One needs to include the below given two function to some helper. And in view inside form tag call…
star_rating_field("object", "fieldname", options)
Options are location, prefix, active_img, grey_img, hover_img…
For displaying the result of the rating in star images format…call from view
img_tag_for_star_rating(rating_value,options)
Options are location, active_img, grey_img, hover_img…
Download the function to include in helper from here …I am finding it very difficult to put the code in wordpress without tampering so better to put it somewhere else
Update: the file gets removed everytime.I m trying to out the code here only…
#General function for star rating
# Use these function as helpers
# No half ratings are handled here
# options can hav ...
# location=>location of images( you need to have star_active.gif, star_grey.gif, star_hover.gif in this directory or provide names of image file in options)
# prefix => prefix to append to each ids in DOM for descrimination of more then one star rating in the same page
# grey_img => name of inactive/grey image of star
# active_img => name of active image of star
# hover_img => name of hover image of star
def star_rating_field(obj_name, field_name, options={:location=>'/images',:hover_img=>"star_hover.gif", :active_img=>"star_active.gif", :grey_img=>"star_grey.gif"})
# append a hidden field to store value of viz system field
# this field is to be changed as hidden after testing
hid = text_field(obj_name, field_name)
hid_id = "#{obj_name}_#{field_name}"
pref_id = options[:prefix].nil? ? 'star' : options[:prefix]+'_star'
img_location = options[:location]
# set initial value by javascript
jscript = ""
jscript += "var a; var v = parseInt($('#{hid_id}').value); for(var i = 1;i"
img = ''
# add images to field
for i in 1..5
img += "
“+’ ‘
end
return img + hid + jscript
end
def jscript_for_star_rating(pref_id, img_location)
jscript = ” function set_star_status(n, id) { if( $(id).value != n){ for(var j=1; j”star_active.gif”, :grey_img=>”star_grey.gif”})
image = ”
for i in 1..5
if i ”
else
image += “
”
end
end
return image
end
Note:Do remember to include prototype library from script.aculo.us in your page.
UPDATE2:phew…finally trying to add the file again.Hope it work fine this time
try this=>