Index: userreview/userreview.module =================================================================== --- userreview/userreview.module (revision 722) +++ userreview/userreview.module (working copy) @@ -37,9 +37,9 @@ function userreview_node_info() { return array( 'userreview' => array( - 'name' => t('review'), + 'name' => t('User review'), 'module' => 'userreview', - 'description' => t('The userreview content type is a node, which is attached to another node. It has a 0 to 10 voting scale. You set a number of configuration options at ') . l('admin/settings/userreview', 'admin/settings/userreview') . t('. Here, you can set which node types are reviewable, how many reviews to display beneath the reviewed node per page, and others.') . '

' . t('This module requires views module and the votingapi module. Using views, it is easy to create blocks or pages which display top rated nodes of a given type, for example.'), + 'description' => 'Enables users to post a review of any node.', ) ); } @@ -68,7 +68,7 @@ * Implementation of hook_perm(). */ function userreview_perm() { - return array('administer user reviews', 'create user reviews', 'edit own user reviews'); + return array('administer user reviews', 'create user reviews', 'edit own user reviews', 'view average vote', 'view user reviews'); } /** @@ -93,7 +93,7 @@ ); $items[] = array( 'path' => 'admin/settings/userreview', - 'title' => t('Userreview'), + 'title' => t('User Review'), 'description' => t('Configure userreview behavior and appearance.'), 'callback' => 'drupal_get_form', 'callback arguments' => array('userreview_admin_settings'), @@ -286,21 +286,25 @@ //set the breadcrumb userreview_set_breadcrumb($node); + + $type = node_get_types('type', $node); - drupal_add_js(drupal_get_path('module', 'userreview') . '/userreview.js'); - $add_elements = array(); - $add_elements['vote_value'] = array( - '#type' => 'select', - '#title' => variable_get('userreview_vote_title',t('Your vote')), - '#description' => variable_get('userreview_vote_description',t('Select a value from 0 (worst) to 10 (best)')), - '#default_value' => ($node->vote_value == null) ? variable_get('userreview_default_vote','') : (string)($node->vote_value), - '#options' => array('0'=>'0', '1'=>'1', '2'=>'2', '3'=>'3', '4'=>'4', '5'=>'5', '6'=>'6', '7'=>'7', '8'=>'8', '9'=>'9', '10'=>'10'), - '#required' => TRUE, - '#weight' => -5 + $add_elements = array(); + $add_elements['#attributes'] = array( + 'class' => 'userreview-form' + ); + $add_elements['vote_value'] = array( + '#type' => 'radios', + '#title' => variable_get('userreview_vote_title', t('How would you rate the usefulness of this content?')), + '#description' => variable_get('userreview_vote_description', ''), + '#options' => array(1 => '1 Poor', 2 => '2', 3 => '3', 4 => '4', 5 => '5', 6 => '6', 7 => '7', 8 => '8', 9 => '9', 10 => '10 Great'), + '#default_value' => ($node->vote_value == null) ? variable_get('userreview_default_vote','') : (string)($node->vote_value), + '#required' => TRUE, + '#weight' => -5 ); $add_elements['title'] = array( '#type' => 'textfield', - '#title' => t('Title'), + '#title' => check_plain($type->title_label), '#size' => 60, '#maxlength' => 128, '#required' => variable_get('userreview_title_required', FALSE), @@ -309,11 +313,10 @@ ); $add_elements['review_text'] = array( '#type' => 'textarea', - '#title' => t('Comments'), + '#title' => check_plain($type->body_label), '#default_value' => $node->review_text, '#required' => variable_get('userreview_review_text_required', FALSE), - '#weight' => -1, - '#description' => t('Please enter your comments.') + '#weight' => -1 ); $add_elements['content_id'] = array('#type' => 'value', '#value' => $node->content_id); $add_elements['content_type'] = array('#type' => 'value', '#value' => $node->content_type); @@ -353,7 +356,7 @@ //get the current user's review for this content node $userreviewnode = get_userreview_node($node, $user->uid); //if a review exists by this user, show it... - if ($userreviewnode) { + if (user_access('view user reviews') && $userreviewnode) { if (variable_get('userreview_show_currentuser_review', true)) { $node->userreview->current_user_review = theme('userreview', $userreviewnode, true, true); $node->content['userreview_current_user_review'] = array( @@ -380,14 +383,14 @@ } //next, show a list of user reviews if any reviews - if ($count_votes->value > 0) { + if (user_access('view user reviews') && $count_votes->value > 0) { $node->userreview->review_list .= theme('userreview_list', $node, variable_get('userreview_list_collapsible', true), variable_get('userreview_list_collapsed', true)); $node->content['userreview_review_list'] = array( '#value' => $node->userreview->review_list, '#weight' => 10, ); } - } else {//teaser + } else if (user_access('view average vote')) {//teaser $node->content['userreview_average'] = array( '#value' => $node->userreview->average_vote, '#weight' => 8, @@ -408,7 +411,8 @@ * * @return Object Count of votes as result object as returned by votingapi_get_voting_result() */ -function _userreview_nodeapi_view_prepare(&$node, $show_average, $show_count) { +function _userreview_nodeapi_view_prepare(&$node, $show_average, $show_count) { + if (!user_access('view average vote')) return; $count_votes = new StdClass(); $count_votes->value = 0; if ($show_average || $show_count) { Index: userreview/userreview.css =================================================================== --- userreview/userreview.css (revision 722) +++ userreview/userreview.css (working copy) @@ -124,4 +124,25 @@ .userreview_byline { font-size: 0.8em -} \ No newline at end of file +} + +/* The Form */ +.userreview-form fieldset { + border:none; padding:0; margin:0; + } +.userreview-form fieldset legend { + } +.userreview-form .form-item { + clear:both; + } +.userreview-form .form-radios .form-item { + clear:none; + float:left; + margin:8px; + padding:0; + text-align:center; + } +.userreview-form .form-item .form-item label { + width:1em; + float:left; + } \ No newline at end of file Index: userreview/userreview.info =================================================================== --- userreview/userreview.info (revision 722) +++ userreview/userreview.info (working copy) @@ -1,5 +1,5 @@ ; $Id: userreview.info,v 1.1.2.1 2007/06/18 23:07:13 dww Exp $ -name = Userreview +name = User Review description = Enables users to post a review of any node. dependencies = views votingapi package = Voting Index: userreview/userreview.js =================================================================== --- userreview/userreview.js (revision 722) +++ userreview/userreview.js (working copy) @@ -1,51 +0,0 @@ -/* $Id: userreview.js,v 1.3 2007/03/15 12:57:39 gerdriesselmann Exp $ */ - -Drupal.Userreview = {}; - -Drupal.Userreview.build_table = function() { - // Hide select box - var html_table = ''; - html_table += ''; - $('#edit-vote-value option').each(function() { - var cls = 'userreview_vote_option'; - if (this.selected) { - cls += ' userreview_vote_selected'; - } - html_table += ''; - }); - html_table += '
'; - html_table += '' + $(this).text() + '' - html_table += ''; - html_table += '
'; - $('#edit-vote-value').css({display:'none'}).parent().append(html_table); -} - -Drupal.Userreview.init_highlight = function() { - $('.userreview_vote_option').hover(function() { - $(this).addClass("userreview_vote_option_hover"); - },function(){ - $(this).removeClass("userreview_vote_option_hover"); - }); -}; - -Drupal.Userreview.init_click = function() { - $('.userreview_vote_option').click(function() { - $('.userreview_vote_option').each(function() { - $(this).removeClass('userreview_vote_selected'); - }); - $(this).addClass('userreview_vote_selected'); - var value = $(this).children('input[@type=hidden]').val(); - $('#edit-vote-value option').each(function() { - this.selected = (this.value == value); - }); - //alert($('#edit-vote-value').get(0).selectedIndex); - }); -}; - -$(window).load(function() { - Drupal.Userreview.build_table(); - Drupal.Userreview.init_highlight(); - Drupal.Userreview.init_click(); -}); - -