vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Show Thread Enhancements - [AJAX] Your One Click Thread Ratings (https://vborg.vbsupport.ru/showthread.php?t=136162)

fci 01-10-2007 10:00 PM

[AJAX] Your One Click Thread Ratings
 
Description:
Make it easy for people to rate threads with one click.

Refer to the before and after images attached to this post for a visual.

Install instructions:

1. Download the attached zip file

2. Upload vbulletin_ajax_oneclick_threadrate.js to /yourforum/clientscript/

3. Modify the SHOWTHREAD template by placing the following code(or identical code contained in the attached zip file) after the $poll variable which is around the 14th line:

Code:

<if condition="$show['threadrating']">
    <if condition="$show['ratethread']">
        <div style="text-align:left; padding-bottom: 5px;">
        <span id="oneclick_container">
        <noscript>$vbphrase[rating]:</noscript>
        <form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_one">
        <input type="hidden" name="s" value="$session[dbsessionhash]" />
        <input type="hidden" name="t" value="$threadid" />
        <input type="hidden" name="pp" value="$perpage" />
        <input type="hidden" name="page" value="$pagenumber" />
        <input type="hidden" name="vote" value="1" />
        <input type="submit" value="1" style="display:none;" />
        <noscript><input type="submit" value="1" /></noscript>
        </form>
        <form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_two">
        <input type="hidden" name="s" value="$session[dbsessionhash]" />
        <input type="hidden" name="t" value="$threadid" />
        <input type="hidden" name="pp" value="$perpage" />
        <input type="hidden" name="page" value="$pagenumber" />
        <input type="hidden" name="vote" value="2" />
        <input type="submit" value="1" style="display:none;" />
        <noscript><input type="submit" value="2" /></noscript>
        </form>
        <form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_three">
        <input type="hidden" name="s" value="$session[dbsessionhash]" />
        <input type="hidden" name="t" value="$threadid" />
        <input type="hidden" name="pp" value="$perpage" />
        <input type="hidden" name="page" value="$pagenumber" />
        <input type="hidden" name="vote" value="3" />
        <input type="submit" value="1" style="display:none;" />
        <noscript><input type="submit" value="3" /></noscript>
        </form>
        <form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_four">
        <input type="hidden" name="s" value="$session[dbsessionhash]" />
        <input type="hidden" name="t" value="$threadid" />
        <input type="hidden" name="pp" value="$perpage" />
        <input type="hidden" name="page" value="$pagenumber" />
        <input type="hidden" name="vote" value="4" />
        <input type="submit" value="1" style="display:none;" />
        <noscript><input type="submit" value="4" /></noscript>
        </form>
        <form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_five">
        <input type="hidden" name="s" value="$session[dbsessionhash]" />
        <input type="hidden" name="t" value="$threadid" />
        <input type="hidden" name="pp" value="$perpage" />
        <input type="hidden" name="page" value="$pagenumber" />
        <input type="hidden" name="vote" value="5" />
        <input type="submit" value="1" style="display:none;" />
        <noscript><input type="submit" value="5" /></noscript>
        </form>
        <script type="text/javascript"><!--

            var threadid = $threadinfo[threadid];
        document.write('<table class="tborder"><tr>');
        document.write('    <td class="alt2">$vbphrase[rating]:</td>');
        document.write('    <td class="alt1"><a href="javascript:void(0);" id="oneclick_vote_one_submit" style="font-size:14pt">1</a></td>');
        document.write('    <td class="alt2"><a href="javascript:void(0);" id="oneclick_vote_two_submit" style="font-size:14pt">2</a></td>');
        document.write('    <td class="alt1"><a href="javascript:void(0);" id="oneclick_vote_three_submit" style="font-size:14pt">3</a></td>');
        document.write('    <td class="alt2"><a href="javascript:void(0);" id="oneclick_vote_four_submit" style="font-size:14pt">4</a></td>');
        document.write('    <td class="alt1"><a href="javascript:void(0);" id="oneclick_vote_five_submit" style="font-size:14pt">5</a></td>');
        document.write('</tr></table>');
        -->
        </script>
        <script type="text/javascript" src="clientscript/vbulletin_ajax_oneclick_threadrate.js?v=$vboptions[simpleversion]"></script>
        <script type="text/javascript">
        <!--
            vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_one');
            vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_two');
            vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_three');
            vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_four');
            vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_five');
        -->
        </script>
        </span>
        <span id="oneclick_threadrating_current"></span>
        <span id="oneclick_threadrating_response"></span>
        </div>
    </if>
</if>

Technical comments:
Uses AJAX but will fall back to submitting the form first, or if that fails it will use <noscript> tags to display submit buttons. The fallback methods are not thoroughly tested so, if you are able, please test them and report any problems you have.

Template comments:
Be careful about moving the HTML block around because it will fail if it becomes nested inside of another form.

Recommendations after installing:
- in vBulletin Options > Poll and Thread Rating Options, set "Allow Thread Rating Vote Changes" to No
- in vBulletin Options > Poll and Thread Rating Options, set "Required Thread Rating Votes to Show Rating" to 1 (this will hopefully encourage the use of thread ratings)
- install the Thread-Ratings on Search mod which was written for 3.5.x but is compatible with 3.6.x. ( https://vborg.vbsupport.ru/showthread.php?t=106853 )
- modify the threadrate_add phrase, In Languages & Phrases under "Search in Phrases," do a search for 'Your vote on this thread has been added' and modify it to say something more friendly/humorous

Are you a designer?
maybe you can make the HTML chunk more asthetically pleasing with images or CSS

changelog:
0.1 - initial release
0.1.1 - define JS threadid which may or may not be defined later in the page


Read this before posting
If you want to tell me what error(s) you receive, please do the following:
1. Make sure you DO NOT put the HTML chunk inside of another form it will not work at all if you do this. Please make sure it is after the $poll variable.
2. If you think the error is JS related and you are using Firefox, click Tools > Console then the Errors tab, clear it out first, then try doing the thread rating, Right-click and copy the errors related that show for your forum.
3. You did not upload the JavaScript file to the proper location

READ THIS: Set "Check Thread Rating" to Yes in vBulletin Options under "Thread Display Options (showthread)"

Mr_Snob 01-11-2007 01:47 AM

heyy you are cool man thanks for this wonderfull hack :D

Jay... 01-11-2007 09:10 AM

is there anyway this can be made to look like the rating system does on the mods section of this site?

Jarllax 01-11-2007 10:47 AM

Great hack, thanks!

fci 01-11-2007 12:05 PM

Quote:

Originally Posted by Jay... (Post 1156105)
is there anyway this can be made to look like the rating system does on the mods section of this site?

you are specifically referring to the radio buttons used at the top? yes, that would be easily possible. that could all be handled on the template side so I will post an example when I have some free time.

complaints on my forum have indicated it may not be such a good idea to put right above the Reply button so until I try finding a better way to integrate it into template, I'd suggested adding some line breaks or placing it near the bottom of threads.

DPSR 01-11-2007 12:08 PM

One i modified for my site (attached preview):p

If anyone want to use it, here it is--

Add this your style CSS (you can change the colors matching with your forum):
PHP Code:

.news{
padding5px;
background#EDF4FA;
border1px solid #D7DEE4;
color#4E4E4C;


Add the code below $poll (not tested anywhere else)

Quote:

<if condition="$show['threadrating']">
<if condition="$show['ratethread']">
<div style="text-align:left; padding-bottom: 5px;">
<span id="oneclick_container">
<noscript>$vbphrase[rating]:</noscript>
<form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_one">
<input type="hidden" name="s" value="$session[dbsessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="pp" value="$perpage" />
<input type="hidden" name="page" value="$pagenumber" />
<input type="hidden" name="vote" value="1" />
<input type="submit" value="1" style="display:none;" />
<noscript><input type="submit" value="1" /></noscript>
</form>
<form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_two">
<input type="hidden" name="s" value="$session[dbsessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="pp" value="$perpage" />
<input type="hidden" name="page" value="$pagenumber" />
<input type="hidden" name="vote" value="2" />
<input type="submit" value="1" style="display:none;" />
<noscript><input type="submit" value="2" /></noscript>
</form>
<form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_three">
<input type="hidden" name="s" value="$session[dbsessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="pp" value="$perpage" />
<input type="hidden" name="page" value="$pagenumber" />
<input type="hidden" name="vote" value="3" />
<input type="submit" value="1" style="display:none;" />
<noscript><input type="submit" value="3" /></noscript>
</form>
<form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_four">
<input type="hidden" name="s" value="$session[dbsessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="pp" value="$perpage" />
<input type="hidden" name="page" value="$pagenumber" />
<input type="hidden" name="vote" value="4" />
<input type="submit" value="1" style="display:none;" />
<noscript><input type="submit" value="4" /></noscript>
</form>
<form action="threadrate.php?t=$threadid" method="post" id="oneclick_vote_five">
<input type="hidden" name="s" value="$session[dbsessionhash]" />
<input type="hidden" name="t" value="$threadid" />
<input type="hidden" name="pp" value="$perpage" />
<input type="hidden" name="page" value="$pagenumber" />
<input type="hidden" name="vote" value="5" />
<input type="submit" value="1" style="display:none;" />
<noscript><input type="submit" value="5" /></noscript>
</form>
<script type="text/javascript"><!--
document.write('<div class="news" style="line-height:12px;vertical-align:middle;"><div align="center" class="smallfont">');
document.write(' <strong>Quick Rate:</strong>');
document.write(' Lousy <input type="radio" name="rating" id="oneclick_vote_one_submit" value="1" onclick="javascript:void(0);" />&nbsp;&nbsp;');
document.write(' Below average <input type="radio" name="rating" id="oneclick_vote_two_submit" value="2" onclick="javascript:void(0);" />&nbsp;&nbsp;');
document.write(' Average <input type="radio" name="rating" id="oneclick_vote_three_submit" value="3" onclick="javascript:void(0);" />&nbsp;&nbsp;');
document.write(' Above average <input type="radio" name="rating" id="oneclick_vote_four_submit" value="4" onclick="javascript:void(0);" />&nbsp;&nbsp;');
document.write(' Stunning <input type="radio" name="rating" id="oneclick_vote_five_submit" value="5" onclick="javascript:void(0);" />&nbsp;&nbsp;');
document.write('</div></div>');
-->
</script>
<script type="text/javascript" src="clientscript/vbulletin_ajax_oneclick_threadrate.js?v=$vboptions[simpleversion]"></script>
<script type="text/javascript">
<!--
vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_on e');
vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_tw o');
vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_th ree');
vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_fo ur');
vB_AJAX_OneClick_ThreadRate_Init('oneclick_vote_fi ve');
-->
</script>
</span>
<span id="oneclick_threadrating_current"></span>
<span id="oneclick_threadrating_response"></span>
</div>
</if>
</if>
Change the options (marked with RED color) in above code the way you want.

Click save and rest followed all instructions provided by fci

BIG thanks to fci for the hack ;)

Mr_Snob 01-11-2007 12:19 PM

@DPSR
very nice i modified too for my site
when i finish, i share it with you :D

abramelin 01-11-2007 01:19 PM

it is not working on me. DPSR i have modified like you said but when i click on the ratio it doesnt do anything?

DPSR 01-11-2007 03:25 PM

For me its not working in Firefox, but in opera and IE 7 its working fine

Please check if you have uploaded the .js file and edited correcty (copy the code from attached txt file)

abramelin 01-11-2007 03:26 PM

i am using firefox too. i think this is a firefox issue :( how can we fix this?


All times are GMT. The time now is 04:29 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01191 seconds
  • Memory Usage 1,801KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (1)bbcode_php_printable
  • (2)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete