2003-07-29 01:15:41 +00:00
< ? php
2006-06-16 23:53:56 +00:00
/**
* This file allows people to rate posts in a thread
**/
2004-02-02 23:34:39 +00:00
require_once ( '../inc/forum.inc' );
2006-06-16 23:53:56 +00:00
require_once ( '../inc/forum_std.inc' );
2006-07-10 17:00:31 +00:00
require_once ( '../inc/util.inc' );
2005-04-20 21:11:20 +00:00
2006-07-10 17:00:31 +00:00
$config = get_config ();
2006-07-10 17:18:42 +00:00
if ( parse_element ( $config , " <no_forum_rating/> " )) {
2006-07-10 17:00:31 +00:00
page_head ( " Rating offline " );
echo " This function is turned off by the project " ;
page_tail ();
exit ( 0 );
2006-12-29 20:57:29 +00:00
}
2006-07-10 17:18:42 +00:00
2004-12-27 03:42:11 +00:00
db_init ();
2003-07-30 00:52:46 +00:00
if ( ! empty ( $_GET [ 'post' ])) {
2005-04-20 22:46:47 +00:00
$postId = get_int ( 'post' );
$choice = post_str ( 'submit' , true );
$rating = post_int ( 'rating' , true );
if ( ! $choice ) $choice = get_str ( 'choice' , true );
2004-10-25 22:04:15 +00:00
if ( $choice == SOLUTION or $choice == " p " ) {
2003-08-13 22:09:50 +00:00
$rating = 1 ;
2006-06-16 23:53:56 +00:00
} else {
2003-08-22 23:44:48 +00:00
$rating = - 1 ;
2003-08-01 20:30:49 +00:00
}
2003-08-22 23:44:48 +00:00
2006-06-16 23:53:56 +00:00
$user = re_get_logged_in_user ( true );
2003-08-01 20:30:49 +00:00
if ( $choice == null && ( $rating == null || $rating > 2 || $rating < - 2 )) {
show_result_page ( false , NULL , $choice );
2003-07-30 00:52:46 +00:00
}
2003-08-22 23:44:48 +00:00
2006-06-16 23:53:56 +00:00
$post = new Post ( $postId );
$thread = $post -> getThread ();
$forum = $thread -> getForum ();
2005-04-28 09:33:07 +00:00
2005-04-20 21:11:20 +00:00
2005-04-28 09:33:07 +00:00
/* Make sure the user has the forum ' s minimum amount of RAC and total credit
* before allowing them to rate a post .
*/
2006-06-16 23:53:56 +00:00
if ( $user -> getTotalCredit () < $forum -> getRateMinTotalCredit () || $user -> getExpavgCredit () < $forum -> getRateMinExpavgCredit ()) {
2005-04-28 09:33:07 +00:00
error_page ( " You need more average or total credit to rate a post. " );
2005-04-20 21:11:20 +00:00
}
2004-10-25 22:04:15 +00:00
2006-06-16 23:53:56 +00:00
if ( $post -> hasRated ( $user )) {
$post_thread = $post -> getThread ();
error_page ( " You have already rated this post once.<br /><br /><a href= \" forum_thread.php?nowrap=true&id= " . $post_thread -> getID () . " # " . $post -> getID () . " \" >Return to thread</a> " );
2004-10-25 22:04:15 +00:00
} else {
2006-06-16 23:53:56 +00:00
$success = $post -> rate ( $user , $rating );
show_result_page ( $success , $post , $choice );
2004-10-25 22:04:15 +00:00
}
2003-07-29 01:15:41 +00:00
}
2003-08-01 20:30:49 +00:00
function show_result_page ( $success , $post , $choice ) {
2005-02-13 06:13:33 +00:00
if ( $success ) {
if ( $choice ) {
page_head ( 'Input Recorded' );
echo " <p>Your input has been successfully recorded. Thank you for your help.</p> " ;
} else {
page_head ( 'Vote Registered' );
2003-08-15 01:01:00 +00:00
echo " <span class= \" title \" >Vote Registered</span> " ;
echo " <p>Your rating has been successfully recorded. Thank you for your input.</p> " ;
2005-02-13 06:13:33 +00:00
}
2006-06-16 23:53:56 +00:00
$post_thread = $post -> getThread ();
echo " <a href= \" forum_thread.php?nowrap=true&id= " , $post_thread -> getID (), " # " , $post -> getID (), " \" >Return to thread</a> " ;
2003-07-29 01:15:41 +00:00
} else {
2005-02-13 06:13:33 +00:00
page_head ( 'Vote Submission Problem' );
2003-07-29 01:15:41 +00:00
echo " <span class= \" title \" >Vote submission failed</span> " ;
if ( $post ) {
echo " <p>There was a problem recording your vote in our database. Please try again later.</p> " ;
2006-06-16 23:53:56 +00:00
$post_thread = $post -> getThread ();
echo " <a href= \" forum_thread.php?id= " , $post_thread -> getID (), " # " , $post -> getID (), " \" >Return to thread</a> " ;
2003-07-29 01:15:41 +00:00
} else {
2003-07-30 00:52:46 +00:00
echo " <p>There post you specified does not exist, or your rating was invalid.</p> " ;
2003-07-29 01:15:41 +00:00
}
}
2003-08-15 01:01:00 +00:00
page_tail ();
2006-06-16 23:53:56 +00:00
exit ;
2003-07-29 01:15:41 +00:00
}
2004-02-02 23:34:39 +00:00
?>